@mhmo91/schmancy 0.2.200 → 0.2.202
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/boat.md +118 -0
- package/ai/chips.md +89 -123
- package/dist/ai/boat.md +118 -0
- package/dist/ai/chips.md +89 -123
- package/dist/{animated-text-BZWvzqEZ.js → animated-text-BYS4ollO.js} +3 -3
- package/dist/{animated-text-BZWvzqEZ.js.map → animated-text-BYS4ollO.js.map} +1 -1
- package/dist/{animated-text-BgLktXr-.cjs → animated-text-jb8xtsKZ.cjs} +2 -2
- package/dist/{animated-text-BgLktXr-.cjs.map → animated-text-jb8xtsKZ.cjs.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-zvrF1R-P.js → area.component-DxNRxMvF.js} +4 -4
- package/dist/area.component-DxNRxMvF.js.map +1 -0
- package/dist/{area.component-CqKoQRDp.cjs → area.component-VivYGPFY.cjs} +3 -3
- package/dist/area.component-VivYGPFY.cjs.map +1 -0
- package/dist/area.js +1 -1
- package/dist/{autocomplete-CpYDECg0.js → autocomplete-Bau2LIoa.js} +3 -3
- package/dist/{autocomplete-CpYDECg0.js.map → autocomplete-Bau2LIoa.js.map} +1 -1
- package/dist/{autocomplete-BCE9oBkO.cjs → autocomplete-CfpLrL2J.cjs} +2 -2
- package/dist/{autocomplete-BCE9oBkO.cjs.map → autocomplete-CfpLrL2J.cjs.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-B_y2vLrR.cjs → avatar-CUD4cs6U.cjs} +2 -2
- package/dist/{avatar-B_y2vLrR.cjs.map → avatar-CUD4cs6U.cjs.map} +1 -1
- package/dist/{avatar-B_BubJYb.js → avatar-CsMJfDiv.js} +47 -46
- package/dist/{avatar-B_BubJYb.js.map → avatar-CsMJfDiv.js.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/boat-BH_EwwX-.cjs +64 -0
- package/dist/boat-BH_EwwX-.cjs.map +1 -0
- package/dist/boat-CqW5lpYZ.js +95 -0
- package/dist/boat-CqW5lpYZ.js.map +1 -0
- package/dist/boat.cjs +2 -0
- package/dist/boat.cjs.map +1 -0
- package/dist/boat.js +5 -0
- package/dist/boat.js.map +1 -0
- 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/{checkbox-DATn1US_.cjs → checkbox-BPaB8gjl.cjs} +2 -2
- package/dist/{checkbox-DATn1US_.cjs.map → checkbox-BPaB8gjl.cjs.map} +1 -1
- package/dist/{checkbox-CJ6x-G_b.js → checkbox-DWzhuPa4.js} +6 -6
- package/dist/{checkbox-CJ6x-G_b.js.map → checkbox-DWzhuPa4.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-BbWIMKDU.cjs → chips-B_JKvtqB.cjs} +2 -2
- package/dist/{chips-BbWIMKDU.cjs.map → chips-B_JKvtqB.cjs.map} +1 -1
- package/dist/{chips-CcT1N7--.js → chips-K6z9BIbc.js} +9 -9
- package/dist/{chips-CcT1N7--.js.map → chips-K6z9BIbc.js.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +1 -1
- package/dist/{circular-progress-JGc2_9ef.cjs → circular-progress-BG_EnVTn.cjs} +2 -2
- package/dist/{circular-progress-JGc2_9ef.cjs.map → circular-progress-BG_EnVTn.cjs.map} +1 -1
- package/dist/{circular-progress-Cs3G6PHo.js → circular-progress-irMd5G3E.js} +3 -3
- package/dist/{circular-progress-Cs3G6PHo.js.map → circular-progress-irMd5G3E.js.map} +1 -1
- package/dist/circular-progress.cjs +1 -1
- package/dist/circular-progress.js +1 -1
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/{code-preview-DXf_SN2X.cjs → code-preview-BDi-9C_7.cjs} +14 -9
- package/dist/{code-preview-DXf_SN2X.cjs.map → code-preview-BDi-9C_7.cjs.map} +1 -1
- package/dist/{code-preview-BZ-uk6y1.js → code-preview-D_QJybDt.js} +129 -124
- package/dist/{code-preview-BZ-uk6y1.js.map → code-preview-D_QJybDt.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/{date-range-D85imfq-.cjs → date-range--jCSlkf3.cjs} +2 -2
- package/dist/{date-range-D85imfq-.cjs.map → date-range--jCSlkf3.cjs.map} +1 -1
- package/dist/{date-range-Dt9V5MyB.js → date-range-B9UeIzcl.js} +3 -3
- package/dist/{date-range-Dt9V5MyB.js.map → date-range-B9UeIzcl.js.map} +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-CE3iPMYG.js → delay-CCOKwDX3.js} +2 -2
- package/dist/{delay-CE3iPMYG.js.map → delay-CCOKwDX3.js.map} +1 -1
- package/dist/{delay-BH-y0tJg.cjs → delay-OOtwG41o.cjs} +2 -2
- package/dist/{delay-BH-y0tJg.cjs.map → delay-OOtwG41o.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{dialog-content-BQN75NSZ.cjs → dialog-content-B3kd79fM.cjs} +2 -2
- package/dist/{dialog-content-BQN75NSZ.cjs.map → dialog-content-B3kd79fM.cjs.map} +1 -1
- package/dist/{dialog-content-E5R1XfK5.js → dialog-content-BpvJPGA8.js} +3 -3
- package/dist/{dialog-content-E5R1XfK5.js.map → dialog-content-BpvJPGA8.js.map} +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.js +1 -1
- package/dist/{divider-BEtL0P-_.cjs → divider-Bf9Slnvo.cjs} +2 -2
- package/dist/{divider-BEtL0P-_.cjs.map → divider-Bf9Slnvo.cjs.map} +1 -1
- package/dist/{divider-BlSi0WWi.js → divider-CmpZyxZz.js} +3 -3
- package/dist/{divider-BlSi0WWi.js.map → divider-CmpZyxZz.js.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-DkKciM_R.js → dropdown-content-CU1cly-s.js} +3 -3
- package/dist/{dropdown-content-DkKciM_R.js.map → dropdown-content-CU1cly-s.js.map} +1 -1
- package/dist/{dropdown-content-HRI7Jkak.cjs → dropdown-content-DBk4DHeT.cjs} +2 -2
- package/dist/{dropdown-content-HRI7Jkak.cjs.map → dropdown-content-DBk4DHeT.cjs.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-DHA02Mfw.js → flex-CujhhojR.js} +2 -2
- package/dist/{flex-DHA02Mfw.js.map → flex-CujhhojR.js.map} +1 -1
- package/dist/{flex-CwTn3AfA.cjs → flex-W05LrmiY.cjs} +2 -2
- package/dist/{flex-CwTn3AfA.cjs.map → flex-W05LrmiY.cjs.map} +1 -1
- package/dist/{form-DsprWndI.js → form-BHEhndln.js} +2 -2
- package/dist/{form-DsprWndI.js.map → form-BHEhndln.js.map} +1 -1
- package/dist/{form-C9llOgOw.cjs → form-D99IyIWZ.cjs} +2 -2
- package/dist/{form-C9llOgOw.cjs.map → form-D99IyIWZ.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{icon-D967cxey.js → icon-C200ch2d.js} +2 -2
- package/dist/{icon-D967cxey.js.map → icon-C200ch2d.js.map} +1 -1
- package/dist/{icon-B1vaqlkD.cjs → icon-DwMgmWET.cjs} +2 -2
- package/dist/{icon-B1vaqlkD.cjs.map → icon-DwMgmWET.cjs.map} +1 -1
- package/dist/{icon-button-C_OqjQfc.js → icon-button-CpaZ6Sl4.js} +3 -3
- package/dist/{icon-button-C_OqjQfc.js.map → icon-button-CpaZ6Sl4.js.map} +1 -1
- package/dist/{icon-button-D6RzSEQb.cjs → icon-button-DjdXn0i9.cjs} +2 -2
- package/dist/{icon-button-D6RzSEQb.cjs.map → icon-button-DjdXn0i9.cjs.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +157 -155
- package/dist/index.js.map +1 -1
- package/dist/{input-DschQCBp.cjs → input-BeOn-cgH.cjs} +2 -2
- package/dist/{input-DschQCBp.cjs.map → input-BeOn-cgH.cjs.map} +1 -1
- package/dist/{input-4heVsnGw.js → input-oJU4j5gv.js} +2 -2
- package/dist/{input-4heVsnGw.js.map → input-oJU4j5gv.js.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{list-B1bxSmd5.cjs → list-77ofKN4f.cjs} +2 -2
- package/dist/{list-B1bxSmd5.cjs.map → list-77ofKN4f.cjs.map} +1 -1
- package/dist/{list-DE1otSG3.js → list-DA5qfp5T.js} +2 -2
- package/dist/{list-DE1otSG3.js.map → list-DA5qfp5T.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-1-y-wwQg.js → litElement.mixin-BWl8md6o.js} +2 -2
- package/dist/{litElement.mixin-1-y-wwQg.js.map → litElement.mixin-BWl8md6o.js.map} +1 -1
- package/dist/{litElement.mixin-CB6DWbFn.cjs → litElement.mixin-DWxMKydc.cjs} +2 -2
- package/dist/{litElement.mixin-CB6DWbFn.cjs.map → litElement.mixin-DWxMKydc.cjs.map} +1 -1
- package/dist/{menu-TDH53RmV.cjs → menu-Bo6lczzN.cjs} +2 -2
- package/dist/{menu-TDH53RmV.cjs.map → menu-Bo6lczzN.cjs.map} +1 -1
- package/dist/{menu-B1qPlV2t.js → menu-DHJGkSYp.js} +3 -3
- package/dist/{menu-B1qPlV2t.js.map → menu-DHJGkSYp.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/{notification-service-D2pgTqTS.js → notification-service-DzLqQyQY.js} +3 -3
- package/dist/{notification-service-D2pgTqTS.js.map → notification-service-DzLqQyQY.js.map} +1 -1
- package/dist/{notification-service-BKSRwonz.cjs → notification-service-WLfJOHGg.cjs} +2 -2
- package/dist/{notification-service-BKSRwonz.cjs.map → notification-service-WLfJOHGg.cjs.map} +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-Q6l-t3es.cjs → option-D7kpmdEM.cjs} +2 -2
- package/dist/{option-Q6l-t3es.cjs.map → option-D7kpmdEM.cjs.map} +1 -1
- package/dist/{option-CLY6hO5V.js → option-DQpRizvO.js} +2 -2
- package/dist/{option-CLY6hO5V.js.map → option-DQpRizvO.js.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{payment-card-form-BpaCnjrt.js → payment-card-form-BZLHY7HJ.js} +3 -3
- package/dist/{payment-card-form-BpaCnjrt.js.map → payment-card-form-BZLHY7HJ.js.map} +1 -1
- package/dist/{payment-card-form-V5eIamA9.cjs → payment-card-form-DfgGRWy8.cjs} +2 -2
- package/dist/{payment-card-form-V5eIamA9.cjs.map → payment-card-form-DfgGRWy8.cjs.map} +1 -1
- package/dist/{radio-button-CuTpkLr8.js → radio-button-BNpFaQX8.js} +2 -2
- package/dist/{radio-button-CuTpkLr8.js.map → radio-button-BNpFaQX8.js.map} +1 -1
- package/dist/{radio-button-Dm2I9Ic4.cjs → radio-button-BiHHYFbP.cjs} +2 -2
- package/dist/{radio-button-Dm2I9Ic4.cjs.map → radio-button-BiHHYFbP.cjs.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{schmancy-steps-container-DO4tx0KH.cjs → schmancy-steps-container-DhJWC3Lf.cjs} +2 -2
- package/dist/{schmancy-steps-container-DO4tx0KH.cjs.map → schmancy-steps-container-DhJWC3Lf.cjs.map} +1 -1
- package/dist/{schmancy-steps-container-SrnYbTe-.js → schmancy-steps-container-idw6M7gT.js} +2 -2
- package/dist/{schmancy-steps-container-SrnYbTe-.js.map → schmancy-steps-container-idw6M7gT.js.map} +1 -1
- package/dist/{select-BJdRm5US.cjs → select-BQVRqkgK.cjs} +2 -2
- package/dist/{select-BJdRm5US.cjs.map → select-BQVRqkgK.cjs.map} +1 -1
- package/dist/{select-DfemPf0w.js → select-DV_tG6Z1.js} +3 -3
- package/dist/{select-DfemPf0w.js.map → select-DV_tG6Z1.js.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-Bvj7tapP.js → sheet-DGaUsOLM.js} +3 -3
- package/dist/{sheet-Bvj7tapP.js.map → sheet-DGaUsOLM.js.map} +1 -1
- package/dist/{sheet-BtaT1eui.cjs → sheet-Ds_huwa_.cjs} +2 -2
- package/dist/{sheet-BtaT1eui.cjs.map → sheet-Ds_huwa_.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-AQvRuZ-m.cjs → slider-CJINpiTK.cjs} +2 -2
- package/dist/{slider-AQvRuZ-m.cjs.map → slider-CJINpiTK.cjs.map} +1 -1
- package/dist/{slider-DAwHA6Az.js → slider-Cl30H-Ky.js} +3 -3
- package/dist/{slider-DAwHA6Az.js.map → slider-Cl30H-Ky.js.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-DrZuae0L.js → spinner-Dpo3W3c-.js} +3 -3
- package/dist/{spinner-DrZuae0L.js.map → spinner-Dpo3W3c-.js.map} +1 -1
- package/dist/{spinner-BLy3-lqb.cjs → spinner-uO1siKhB.cjs} +2 -2
- package/dist/{spinner-BLy3-lqb.cjs.map → spinner-uO1siKhB.cjs.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface-CAlEVfSs.js → surface-C6Krb1lv.js} +3 -3
- package/dist/{surface-CAlEVfSs.js.map → surface-C6Krb1lv.js.map} +1 -1
- package/dist/{surface-BOerTano.cjs → surface-JsTE_chE.cjs} +3 -3
- package/dist/{surface-BOerTano.cjs.map → surface-JsTE_chE.cjs.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-hjsAGpRq.js → table-Dbf_6MHf.js} +2 -2
- package/dist/{table-hjsAGpRq.js.map → table-Dbf_6MHf.js.map} +1 -1
- package/dist/{table-B3VrNQUV.cjs → table-ZmivCJrn.cjs} +2 -2
- package/dist/{table-B3VrNQUV.cjs.map → table-ZmivCJrn.cjs.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-D9ajXdXz.js → tabs-compatibility-CDMklQAm.js} +2 -2
- package/dist/{tabs-compatibility-D9ajXdXz.js.map → tabs-compatibility-CDMklQAm.js.map} +1 -1
- package/dist/{tabs-compatibility-DdXO8DcF.cjs → tabs-compatibility-CTswDDwq.cjs} +2 -2
- package/dist/{tabs-compatibility-DdXO8DcF.cjs.map → tabs-compatibility-CTswDDwq.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-B1NF3tDz.cjs +2 -0
- package/dist/{tailwind.mixin-mxyACxyp.cjs.map → tailwind.mixin-B1NF3tDz.cjs.map} +1 -1
- package/dist/tailwind.mixin-DRbXmwPy.js +43 -0
- package/dist/{tailwind.mixin-DPUboU_5.js.map → tailwind.mixin-DRbXmwPy.js.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-C16vg4ME.cjs → textarea-B5NhHUmB.cjs} +2 -2
- package/dist/{textarea-C16vg4ME.cjs.map → textarea-B5NhHUmB.cjs.map} +1 -1
- package/dist/{textarea-DqFx1pM1.js → textarea-BgIcOe2_.js} +2 -2
- package/dist/{textarea-DqFx1pM1.js.map → textarea-BgIcOe2_.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-CgZ5qc7_.cjs → theme-button-ByTuVI2m.cjs} +2 -2
- package/dist/{theme-button-CgZ5qc7_.cjs.map → theme-button-ByTuVI2m.cjs.map} +1 -1
- package/dist/{theme-button-D5fnf2QD.js → theme-button-CHfJgh_S.js} +2 -2
- package/dist/{theme-button-D5fnf2QD.js.map → theme-button-CHfJgh_S.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.component-BOnjDUB3.js → theme.component-BOA_RlkP.js} +2 -2
- package/dist/{theme.component-BOnjDUB3.js.map → theme.component-BOA_RlkP.js.map} +1 -1
- package/dist/{theme.component-B5uMqEbH.cjs → theme.component-Dqb12V2Y.cjs} +2 -2
- package/dist/{theme.component-B5uMqEbH.cjs.map → theme.component-Dqb12V2Y.cjs.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-CdAu8QsM.cjs → timezone-CeArJOdv.cjs} +2 -2
- package/dist/{timezone-CdAu8QsM.cjs.map → timezone-CeArJOdv.cjs.map} +1 -1
- package/dist/{timezone-DwU-YCRw.js → timezone-EnguJE1R.js} +3 -3
- package/dist/{timezone-DwU-YCRw.js.map → timezone-EnguJE1R.js.map} +1 -1
- package/dist/{tooltip-Bn-UWxd4.js → tooltip-beiWb2qf.js} +2 -2
- package/dist/{tooltip-Bn-UWxd4.js.map → tooltip-beiWb2qf.js.map} +1 -1
- package/dist/{tooltip-CyI3NYzI.cjs → tooltip-swpV3EIO.cjs} +2 -2
- package/dist/{tooltip-CyI3NYzI.cjs.map → tooltip-swpV3EIO.cjs.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-D2g2zq2B.js → tree-BJfdIGMP.js} +2 -2
- package/dist/{tree-D2g2zq2B.js.map → tree-BJfdIGMP.js.map} +1 -1
- package/dist/{tree-DdXcAF6S.cjs → tree-CwNbvxdt.cjs} +2 -2
- package/dist/{tree-DdXcAF6S.cjs.map → tree-CwNbvxdt.cjs.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-3w_PiJFo.js → typewriter-BAfCN_JJ.js} +4 -4
- package/dist/{typewriter-3w_PiJFo.js.map → typewriter-BAfCN_JJ.js.map} +1 -1
- package/dist/{typewriter-RVqJuWSv.cjs → typewriter-CQePZbSj.cjs} +2 -2
- package/dist/{typewriter-RVqJuWSv.cjs.map → typewriter-CQePZbSj.cjs.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/typography-CUv4DPU-.js +342 -0
- package/dist/typography-CUv4DPU-.js.map +1 -0
- package/dist/typography-DrDWI6Bh.cjs +318 -0
- package/dist/typography-DrDWI6Bh.cjs.map +1 -0
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +15 -15
- package/types/src/area/area.component.d.ts +1 -1
- package/types/src/area/router.types.d.ts +1 -1
- package/types/src/boat/boat.d.ts +12 -0
- package/types/src/boat/index.d.ts +1 -0
- package/types/src/index.d.ts +1 -0
- package/types/src/surface/surface.d.ts +1 -1
- package/types/src/typography/typography.d.ts +6 -5
- package/dist/area.component-CqKoQRDp.cjs.map +0 -1
- package/dist/area.component-zvrF1R-P.js.map +0 -1
- package/dist/tailwind.mixin-DPUboU_5.js +0 -43
- package/dist/tailwind.mixin-mxyACxyp.cjs +0 -2
- package/dist/typography-BLJPXhuT.cjs +0 -10
- package/dist/typography-BLJPXhuT.cjs.map +0 -1
- package/dist/typography-izBBu-t8.js +0 -37
- package/dist/typography-izBBu-t8.js.map +0 -1
package/ai/boat.md
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Boat Component
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
The boat component is a bottom sheet that slides up from the bottom of the screen. It can be in one of three states: hidden, minimized, or expanded. This component is perfect for displaying additional content or actions while keeping the main interface accessible.
|
|
5
|
+
|
|
6
|
+
## Properties
|
|
7
|
+
|
|
8
|
+
| Property | Type | Default | Description |
|
|
9
|
+
|----------|------|---------|-------------|
|
|
10
|
+
| `state` | `'hidden' \| 'minimized' \| 'expanded'` | `'hidden'` | The current state of the boat component |
|
|
11
|
+
|
|
12
|
+
## Events
|
|
13
|
+
|
|
14
|
+
| Event | Detail | Description |
|
|
15
|
+
|-------|--------|-------------|
|
|
16
|
+
| `change` | `'hidden' \| 'minimized' \| 'expanded'` | Fired when the state changes |
|
|
17
|
+
|
|
18
|
+
## Slots
|
|
19
|
+
|
|
20
|
+
| Slot | Description |
|
|
21
|
+
|------|-------------|
|
|
22
|
+
| `header` | Content to display in the header area (visible in both minimized and expanded states) |
|
|
23
|
+
| Default | Main content displayed when the boat is expanded |
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
### Basic Example
|
|
28
|
+
```html
|
|
29
|
+
<schmancy-boat state="minimized">
|
|
30
|
+
<schmancy-typography slot="header" variant="title">
|
|
31
|
+
Boat Title
|
|
32
|
+
</schmancy-typography>
|
|
33
|
+
|
|
34
|
+
<schmancy-flex direction="column" gap="md" class="p-4">
|
|
35
|
+
<schmancy-typography>
|
|
36
|
+
This is the main content of the boat component.
|
|
37
|
+
</schmancy-typography>
|
|
38
|
+
</schmancy-flex>
|
|
39
|
+
</schmancy-boat>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### With Icon in Header
|
|
43
|
+
```html
|
|
44
|
+
<schmancy-boat state="minimized" @change="${(e) => console.log(e.detail)}">
|
|
45
|
+
<schmancy-flex slot="header" gap="sm" content="center">
|
|
46
|
+
<schmancy-icon>info</schmancy-icon>
|
|
47
|
+
<schmancy-typography variant="title">Settings</schmancy-typography>
|
|
48
|
+
</schmancy-flex>
|
|
49
|
+
|
|
50
|
+
<schmancy-flex direction="column" gap="md" class="p-4">
|
|
51
|
+
<!-- Settings content -->
|
|
52
|
+
</schmancy-flex>
|
|
53
|
+
</schmancy-boat>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Controlling State
|
|
57
|
+
```typescript
|
|
58
|
+
// Get reference to boat
|
|
59
|
+
const boat = document.querySelector('schmancy-boat');
|
|
60
|
+
|
|
61
|
+
// Show minimized
|
|
62
|
+
boat.state = 'minimized';
|
|
63
|
+
|
|
64
|
+
// Show expanded
|
|
65
|
+
boat.state = 'expanded';
|
|
66
|
+
|
|
67
|
+
// Hide
|
|
68
|
+
boat.state = 'hidden';
|
|
69
|
+
|
|
70
|
+
// Listen for state changes
|
|
71
|
+
boat.addEventListener('change', (e) => {
|
|
72
|
+
console.log('New state:', e.detail);
|
|
73
|
+
});
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Features
|
|
77
|
+
|
|
78
|
+
- **Three States**: Hidden (completely off-screen), minimized (shows only header), and expanded (shows all content)
|
|
79
|
+
- **Smooth Transitions**: Animated transitions between states using CSS transforms
|
|
80
|
+
- **Responsive Design**: Different widths on various screen sizes:
|
|
81
|
+
- Mobile: 100% width
|
|
82
|
+
- Tablet: 70% width
|
|
83
|
+
- Desktop: 60% width
|
|
84
|
+
- Large screens: 40% width
|
|
85
|
+
- **Fixed Positioning**: Always appears at the bottom-right of the viewport
|
|
86
|
+
- **Overflow Handling**: Content scrolls when it exceeds 80vh max height
|
|
87
|
+
- **Sticky Header**: Header remains visible when scrolling through content
|
|
88
|
+
|
|
89
|
+
## CSS Classes
|
|
90
|
+
|
|
91
|
+
The component uses internal CSS classes for styling:
|
|
92
|
+
- `.translate-y-full`: Positions the boat completely off-screen (hidden state)
|
|
93
|
+
- `.translate-y-full-minus-64`: Shows only the header (minimized state)
|
|
94
|
+
- `.translate-y-0`: Shows the entire boat (expanded state)
|
|
95
|
+
|
|
96
|
+
## Use Cases
|
|
97
|
+
|
|
98
|
+
- **Chat Interfaces**: Keep a chat window accessible while browsing
|
|
99
|
+
- **Media Players**: Minimize music/video controls while using other features
|
|
100
|
+
- **Quick Settings**: Provide easy access to frequently used settings
|
|
101
|
+
- **Notifications**: Show important information that users can minimize
|
|
102
|
+
- **Form Wizards**: Multi-step forms that can be minimized during the process
|
|
103
|
+
- **Help/Support**: Keep help documentation accessible while working
|
|
104
|
+
|
|
105
|
+
## Accessibility
|
|
106
|
+
|
|
107
|
+
- The component uses semantic HTML structure
|
|
108
|
+
- State changes are announced via events
|
|
109
|
+
- Keyboard navigation is supported through the button controls
|
|
110
|
+
- Focus management is handled automatically
|
|
111
|
+
|
|
112
|
+
## Best Practices
|
|
113
|
+
|
|
114
|
+
1. **Header Content**: Keep header content concise and descriptive
|
|
115
|
+
2. **State Management**: Store the boat state in your application state if persistence is needed
|
|
116
|
+
3. **Content Height**: Design content to work well within the max-height constraint
|
|
117
|
+
4. **Mobile Considerations**: Test thoroughly on mobile devices where the boat takes full width
|
|
118
|
+
5. **Z-Index**: The component uses `z-[100]` - ensure this works with your app's z-index hierarchy
|
package/ai/chips.md
CHANGED
|
@@ -3,178 +3,144 @@
|
|
|
3
3
|
```js
|
|
4
4
|
// Single Chip
|
|
5
5
|
<schmancy-chip
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
value="chip-value"
|
|
7
|
+
selected?
|
|
8
|
+
icon="emoji-icon"
|
|
9
|
+
readOnly?
|
|
10
10
|
disabled?
|
|
11
|
-
@
|
|
11
|
+
@change=${handleChange}
|
|
12
12
|
@click=${handleClick}>
|
|
13
|
+
Chip Text
|
|
13
14
|
</schmancy-chip>
|
|
14
15
|
|
|
15
16
|
// Chip with icon
|
|
16
|
-
<schmancy-chip
|
|
17
|
-
|
|
17
|
+
<schmancy-chip icon="📝" value="javascript">
|
|
18
|
+
JavaScript
|
|
18
19
|
</schmancy-chip>
|
|
19
20
|
|
|
20
|
-
//
|
|
21
|
-
<schmancy-chip text="John Doe">
|
|
22
|
-
<schmancy-avatar slot="prefix" src="path/to/avatar.jpg" size="small"></schmancy-avatar>
|
|
23
|
-
</schmancy-chip>
|
|
24
|
-
|
|
25
|
-
// Chips Container
|
|
21
|
+
// Chips Container - Single Selection
|
|
26
22
|
<schmancy-chips
|
|
23
|
+
.value=${selectedValue}
|
|
27
24
|
@change=${handleSelectionChange}>
|
|
28
|
-
<schmancy-chip
|
|
29
|
-
<schmancy-chip
|
|
30
|
-
<schmancy-chip
|
|
25
|
+
<schmancy-chip value="1">Option 1</schmancy-chip>
|
|
26
|
+
<schmancy-chip value="2">Option 2</schmancy-chip>
|
|
27
|
+
<schmancy-chip value="3">Option 3</schmancy-chip>
|
|
31
28
|
</schmancy-chips>
|
|
32
29
|
|
|
33
|
-
// Chips Container
|
|
30
|
+
// Chips Container - Multiple Selection
|
|
34
31
|
<schmancy-chips
|
|
35
|
-
|
|
36
|
-
.
|
|
32
|
+
multi
|
|
33
|
+
.values=${selectedValues}
|
|
37
34
|
@change=${handleSelectionChange}>
|
|
38
|
-
<schmancy-chip
|
|
39
|
-
<schmancy-chip
|
|
40
|
-
<schmancy-chip
|
|
35
|
+
<schmancy-chip value="red">Red</schmancy-chip>
|
|
36
|
+
<schmancy-chip value="green">Green</schmancy-chip>
|
|
37
|
+
<schmancy-chip value="blue">Blue</schmancy-chip>
|
|
41
38
|
</schmancy-chips>
|
|
42
39
|
|
|
43
|
-
//
|
|
44
|
-
<schmancy-chips
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<schmancy-chip
|
|
50
|
-
<schmancy-chip text="Vue" closable></schmancy-chip>
|
|
51
|
-
<schmancy-chip text="Angular" closable></schmancy-chip>
|
|
40
|
+
// Horizontal scrolling chips
|
|
41
|
+
<schmancy-chips wrap="false">
|
|
42
|
+
<schmancy-chip value="mon">Monday</schmancy-chip>
|
|
43
|
+
<schmancy-chip value="tue">Tuesday</schmancy-chip>
|
|
44
|
+
<schmancy-chip value="wed">Wednesday</schmancy-chip>
|
|
45
|
+
<schmancy-chip value="thu">Thursday</schmancy-chip>
|
|
46
|
+
<schmancy-chip value="fri">Friday</schmancy-chip>
|
|
52
47
|
</schmancy-chips>
|
|
53
48
|
|
|
54
49
|
// Chip Properties
|
|
55
|
-
text: string // Text content of the chip
|
|
56
50
|
value: string // Value for selection purposes
|
|
57
|
-
variant: string // Visual style: "default", "primary", "secondary", etc.
|
|
58
|
-
size: string // Size: "small", "medium", "large"
|
|
59
|
-
closable: boolean // Show close button
|
|
60
|
-
disabled: boolean // Disable the chip
|
|
61
51
|
selected: boolean // Whether the chip is selected
|
|
52
|
+
icon: string // Emoji icon to display
|
|
53
|
+
readOnly: boolean // Makes chip non-interactive
|
|
54
|
+
disabled: boolean // Disable the chip
|
|
62
55
|
|
|
63
56
|
// Chips Container Properties
|
|
64
|
-
|
|
65
|
-
value: string
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
max: number // Maximum number of chips allowed
|
|
69
|
-
disabled: boolean // Disable the entire container
|
|
57
|
+
multi: boolean // Enable multiple selection mode
|
|
58
|
+
value: string // Selected value (single selection)
|
|
59
|
+
values: string[] // Selected values (multiple selection)
|
|
60
|
+
wrap: boolean // Whether chips wrap to new lines (default: true)
|
|
70
61
|
|
|
71
62
|
// Chip Events
|
|
72
63
|
@click // Fires when chip is clicked
|
|
73
|
-
@
|
|
74
|
-
@keydown // Fires on keydown events
|
|
64
|
+
@change // Fires when selection changes, with { detail: { value: string, selected: boolean } }
|
|
75
65
|
|
|
76
66
|
// Chips Container Events
|
|
77
|
-
@change // Fires when selection changes, with
|
|
78
|
-
@add // Fires when a chip is added, with { detail: { text, value } }
|
|
79
|
-
@remove // Fires when a chip is removed, with { detail: { text, value } }
|
|
67
|
+
@change // Fires when selection changes, with detail being string (single) or string[] (multi)
|
|
80
68
|
|
|
81
69
|
// Examples
|
|
82
70
|
// Basic chips
|
|
83
71
|
<div>
|
|
84
|
-
<schmancy-chip
|
|
85
|
-
<schmancy-chip
|
|
86
|
-
<schmancy-chip
|
|
87
|
-
<schmancy-chip
|
|
88
|
-
<schmancy-chip
|
|
89
|
-
</div>
|
|
90
|
-
|
|
91
|
-
// Closable chips
|
|
92
|
-
<div>
|
|
93
|
-
<schmancy-chip
|
|
94
|
-
text="JavaScript"
|
|
95
|
-
closable
|
|
96
|
-
@close=${() => removeTag('javascript')}>
|
|
97
|
-
<schmancy-icon slot="prefix" icon="code"></schmancy-icon>
|
|
98
|
-
</schmancy-chip>
|
|
99
|
-
|
|
100
|
-
<schmancy-chip
|
|
101
|
-
text="TypeScript"
|
|
102
|
-
closable
|
|
103
|
-
@close=${() => removeTag('typescript')}>
|
|
104
|
-
<schmancy-icon slot="prefix" icon="code"></schmancy-icon>
|
|
105
|
-
</schmancy-chip>
|
|
72
|
+
<schmancy-chip value="basic">Basic</schmancy-chip>
|
|
73
|
+
<schmancy-chip value="javascript" icon="📝">JavaScript</schmancy-chip>
|
|
74
|
+
<schmancy-chip value="react" icon="⚛️">React</schmancy-chip>
|
|
75
|
+
<schmancy-chip value="vue" icon="💚">Vue</schmancy-chip>
|
|
76
|
+
<schmancy-chip value="angular" icon="🅰️">Angular</schmancy-chip>
|
|
106
77
|
</div>
|
|
107
78
|
|
|
108
79
|
// Single selection chips
|
|
109
80
|
<schmancy-chips
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
<schmancy-chip
|
|
114
|
-
<schmancy-chip
|
|
115
|
-
<schmancy-chip text="Large" value="lg"></schmancy-chip>
|
|
81
|
+
.value=${selectedSize}
|
|
82
|
+
@change=${(e) => selectedSize = e.detail}>
|
|
83
|
+
<schmancy-chip value="sm">Small</schmancy-chip>
|
|
84
|
+
<schmancy-chip value="md">Medium</schmancy-chip>
|
|
85
|
+
<schmancy-chip value="lg">Large</schmancy-chip>
|
|
116
86
|
</schmancy-chips>
|
|
117
87
|
|
|
118
88
|
// Multiple selection chips
|
|
119
89
|
<schmancy-chips
|
|
120
|
-
|
|
121
|
-
.
|
|
122
|
-
@change=${(e) => selectedToppings = e.detail
|
|
123
|
-
<schmancy-chip
|
|
124
|
-
<schmancy-chip
|
|
125
|
-
<schmancy-chip
|
|
126
|
-
<schmancy-chip
|
|
127
|
-
<schmancy-chip
|
|
90
|
+
multi
|
|
91
|
+
.values=${selectedToppings}
|
|
92
|
+
@change=${(e) => selectedToppings = e.detail}>
|
|
93
|
+
<schmancy-chip value="cheese">Cheese</schmancy-chip>
|
|
94
|
+
<schmancy-chip value="pepperoni">Pepperoni</schmancy-chip>
|
|
95
|
+
<schmancy-chip value="mushrooms">Mushrooms</schmancy-chip>
|
|
96
|
+
<schmancy-chip value="onions">Onions</schmancy-chip>
|
|
97
|
+
<schmancy-chip value="peppers">Peppers</schmancy-chip>
|
|
128
98
|
</schmancy-chips>
|
|
129
99
|
|
|
130
|
-
//
|
|
100
|
+
// Date selector with horizontal scrolling
|
|
131
101
|
<schmancy-chips
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
@
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
102
|
+
wrap="false"
|
|
103
|
+
.value=${selectedDate}
|
|
104
|
+
@change=${(e) => selectedDate = e.detail}>
|
|
105
|
+
<schmancy-chip value="2024-01-15">Mon 15</schmancy-chip>
|
|
106
|
+
<schmancy-chip value="2024-01-16">Tue 16</schmancy-chip>
|
|
107
|
+
<schmancy-chip value="2024-01-17">Wed 17</schmancy-chip>
|
|
108
|
+
<schmancy-chip value="2024-01-18">Thu 18</schmancy-chip>
|
|
109
|
+
<schmancy-chip value="2024-01-19">Fri 19</schmancy-chip>
|
|
110
|
+
<schmancy-chip value="2024-01-20">Sat 20</schmancy-chip>
|
|
111
|
+
<schmancy-chip value="2024-01-21">Sun 21</schmancy-chip>
|
|
112
|
+
</schmancy-chips>
|
|
113
|
+
|
|
114
|
+
// Category filters
|
|
115
|
+
<schmancy-chips
|
|
116
|
+
multi
|
|
117
|
+
.values=${selectedCategories}
|
|
118
|
+
@change=${(e) => selectedCategories = e.detail}>
|
|
119
|
+
<schmancy-chip value="electronics" icon="💻">Electronics</schmancy-chip>
|
|
120
|
+
<schmancy-chip value="clothing" icon="👕">Clothing</schmancy-chip>
|
|
121
|
+
<schmancy-chip value="books" icon="📚">Books</schmancy-chip>
|
|
122
|
+
<schmancy-chip value="home" icon="🏠">Home & Garden</schmancy-chip>
|
|
123
|
+
<schmancy-chip value="sports" icon="⚽">Sports</schmancy-chip>
|
|
142
124
|
</schmancy-chips>
|
|
143
125
|
|
|
144
|
-
//
|
|
126
|
+
// Skills/Tags selection
|
|
145
127
|
<schmancy-chips
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
@
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
src=${recipient.avatar}
|
|
155
|
-
size="small">
|
|
156
|
-
</schmancy-avatar>
|
|
128
|
+
multi
|
|
129
|
+
.values=${selectedSkills}
|
|
130
|
+
@change=${(e) => selectedSkills = e.detail}>
|
|
131
|
+
${availableSkills.map(skill => html`
|
|
132
|
+
<schmancy-chip
|
|
133
|
+
value=${skill.id}
|
|
134
|
+
icon=${skill.icon}>
|
|
135
|
+
${skill.name}
|
|
157
136
|
</schmancy-chip>
|
|
158
137
|
`)}
|
|
159
138
|
</schmancy-chips>
|
|
160
139
|
|
|
161
|
-
//
|
|
140
|
+
// Read-only chips display
|
|
162
141
|
<div>
|
|
163
|
-
<
|
|
164
|
-
<schmancy-
|
|
165
|
-
|
|
166
|
-
<schmancy-chip
|
|
167
|
-
text=${filter.label}
|
|
168
|
-
closable
|
|
169
|
-
@close=${() => removeFilter(filter.id)}>
|
|
170
|
-
</schmancy-chip>
|
|
171
|
-
`)}
|
|
172
|
-
|
|
173
|
-
<schmancy-chip
|
|
174
|
-
text="Add Filter"
|
|
175
|
-
@click=${openFilterDialog}>
|
|
176
|
-
<schmancy-icon slot="prefix" icon="add"></schmancy-icon>
|
|
177
|
-
</schmancy-chip>
|
|
178
|
-
</schmancy-chips>
|
|
142
|
+
<schmancy-chip value="completed" icon="✅" readOnly>Completed</schmancy-chip>
|
|
143
|
+
<schmancy-chip value="pending" icon="⏳" readOnly>Pending</schmancy-chip>
|
|
144
|
+
<schmancy-chip value="cancelled" icon="❌" readOnly>Cancelled</schmancy-chip>
|
|
179
145
|
</div>
|
|
180
146
|
```
|
package/dist/ai/boat.md
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Boat Component
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
The boat component is a bottom sheet that slides up from the bottom of the screen. It can be in one of three states: hidden, minimized, or expanded. This component is perfect for displaying additional content or actions while keeping the main interface accessible.
|
|
5
|
+
|
|
6
|
+
## Properties
|
|
7
|
+
|
|
8
|
+
| Property | Type | Default | Description |
|
|
9
|
+
|----------|------|---------|-------------|
|
|
10
|
+
| `state` | `'hidden' \| 'minimized' \| 'expanded'` | `'hidden'` | The current state of the boat component |
|
|
11
|
+
|
|
12
|
+
## Events
|
|
13
|
+
|
|
14
|
+
| Event | Detail | Description |
|
|
15
|
+
|-------|--------|-------------|
|
|
16
|
+
| `change` | `'hidden' \| 'minimized' \| 'expanded'` | Fired when the state changes |
|
|
17
|
+
|
|
18
|
+
## Slots
|
|
19
|
+
|
|
20
|
+
| Slot | Description |
|
|
21
|
+
|------|-------------|
|
|
22
|
+
| `header` | Content to display in the header area (visible in both minimized and expanded states) |
|
|
23
|
+
| Default | Main content displayed when the boat is expanded |
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
### Basic Example
|
|
28
|
+
```html
|
|
29
|
+
<schmancy-boat state="minimized">
|
|
30
|
+
<schmancy-typography slot="header" variant="title">
|
|
31
|
+
Boat Title
|
|
32
|
+
</schmancy-typography>
|
|
33
|
+
|
|
34
|
+
<schmancy-flex direction="column" gap="md" class="p-4">
|
|
35
|
+
<schmancy-typography>
|
|
36
|
+
This is the main content of the boat component.
|
|
37
|
+
</schmancy-typography>
|
|
38
|
+
</schmancy-flex>
|
|
39
|
+
</schmancy-boat>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### With Icon in Header
|
|
43
|
+
```html
|
|
44
|
+
<schmancy-boat state="minimized" @change="${(e) => console.log(e.detail)}">
|
|
45
|
+
<schmancy-flex slot="header" gap="sm" content="center">
|
|
46
|
+
<schmancy-icon>info</schmancy-icon>
|
|
47
|
+
<schmancy-typography variant="title">Settings</schmancy-typography>
|
|
48
|
+
</schmancy-flex>
|
|
49
|
+
|
|
50
|
+
<schmancy-flex direction="column" gap="md" class="p-4">
|
|
51
|
+
<!-- Settings content -->
|
|
52
|
+
</schmancy-flex>
|
|
53
|
+
</schmancy-boat>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Controlling State
|
|
57
|
+
```typescript
|
|
58
|
+
// Get reference to boat
|
|
59
|
+
const boat = document.querySelector('schmancy-boat');
|
|
60
|
+
|
|
61
|
+
// Show minimized
|
|
62
|
+
boat.state = 'minimized';
|
|
63
|
+
|
|
64
|
+
// Show expanded
|
|
65
|
+
boat.state = 'expanded';
|
|
66
|
+
|
|
67
|
+
// Hide
|
|
68
|
+
boat.state = 'hidden';
|
|
69
|
+
|
|
70
|
+
// Listen for state changes
|
|
71
|
+
boat.addEventListener('change', (e) => {
|
|
72
|
+
console.log('New state:', e.detail);
|
|
73
|
+
});
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Features
|
|
77
|
+
|
|
78
|
+
- **Three States**: Hidden (completely off-screen), minimized (shows only header), and expanded (shows all content)
|
|
79
|
+
- **Smooth Transitions**: Animated transitions between states using CSS transforms
|
|
80
|
+
- **Responsive Design**: Different widths on various screen sizes:
|
|
81
|
+
- Mobile: 100% width
|
|
82
|
+
- Tablet: 70% width
|
|
83
|
+
- Desktop: 60% width
|
|
84
|
+
- Large screens: 40% width
|
|
85
|
+
- **Fixed Positioning**: Always appears at the bottom-right of the viewport
|
|
86
|
+
- **Overflow Handling**: Content scrolls when it exceeds 80vh max height
|
|
87
|
+
- **Sticky Header**: Header remains visible when scrolling through content
|
|
88
|
+
|
|
89
|
+
## CSS Classes
|
|
90
|
+
|
|
91
|
+
The component uses internal CSS classes for styling:
|
|
92
|
+
- `.translate-y-full`: Positions the boat completely off-screen (hidden state)
|
|
93
|
+
- `.translate-y-full-minus-64`: Shows only the header (minimized state)
|
|
94
|
+
- `.translate-y-0`: Shows the entire boat (expanded state)
|
|
95
|
+
|
|
96
|
+
## Use Cases
|
|
97
|
+
|
|
98
|
+
- **Chat Interfaces**: Keep a chat window accessible while browsing
|
|
99
|
+
- **Media Players**: Minimize music/video controls while using other features
|
|
100
|
+
- **Quick Settings**: Provide easy access to frequently used settings
|
|
101
|
+
- **Notifications**: Show important information that users can minimize
|
|
102
|
+
- **Form Wizards**: Multi-step forms that can be minimized during the process
|
|
103
|
+
- **Help/Support**: Keep help documentation accessible while working
|
|
104
|
+
|
|
105
|
+
## Accessibility
|
|
106
|
+
|
|
107
|
+
- The component uses semantic HTML structure
|
|
108
|
+
- State changes are announced via events
|
|
109
|
+
- Keyboard navigation is supported through the button controls
|
|
110
|
+
- Focus management is handled automatically
|
|
111
|
+
|
|
112
|
+
## Best Practices
|
|
113
|
+
|
|
114
|
+
1. **Header Content**: Keep header content concise and descriptive
|
|
115
|
+
2. **State Management**: Store the boat state in your application state if persistence is needed
|
|
116
|
+
3. **Content Height**: Design content to work well within the max-height constraint
|
|
117
|
+
4. **Mobile Considerations**: Test thoroughly on mobile devices where the boat takes full width
|
|
118
|
+
5. **Z-Index**: The component uses `z-[100]` - ensure this works with your app's z-index hierarchy
|