Skip to content

Commit

Permalink
feat: renamed fishtank accordion large to fishtank accordion
Browse files Browse the repository at this point in the history
  • Loading branch information
Amirah Chamble authored and Amirah Chamble committed Jan 30, 2019
1 parent 89fc054 commit 92534ad
Show file tree
Hide file tree
Showing 4 changed files with 256 additions and 24 deletions.
41 changes: 18 additions & 23 deletions dev/views/Accordions.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,61 +2,56 @@
<div>
<h1>Single Accordions ( Large ) </h1>

<FishTankAccordionLarge
<FishTankAccordion
heading="Section Heading"
>
<FishTankLoaderContent theme="AlertList"/>
</FishTankAccordionLarge>
</FishTankAccordion>

<FishTankAccordionLarge
heading="Section Heading"
subheading="Sub-heading"
>
<FishTankLoaderContent theme="AlertList"/>
</FishTankAccordionLarge>

<FishTankAccordionLarge
<FishTankAccordion
heading="Another Section Heading"
subheading="Another Sub-heading"
subheading="A Sub-heading"
>
<FishTankLoaderContent theme="MembersOfCongressList"/>
</FishTankAccordionLarge>
</FishTankAccordion>

<FishTankAccordionLarge
<FishTankAccordion
heading="Disabled Section Heading"
subheading="Disabled Sub-heading"
:disabled="disabledAccordion"
>
<FishTankLoaderContent theme="AlertList"/>
</FishTankAccordionLarge>
</FishTankAccordion>

<br/>

<h1>Accordion Group ( Large ) </h1>

<br/>

<FishTankAccordionGroup>
<FishTankAccordionGroup
:single="true"
>

<FishTankAccordionLarge
<FishTankAccordion
heading="Group Section Heading"
subheading="Group Sub-heading"
>
<FishTankLoaderContent theme="AlertList"/>
</FishTankAccordionLarge>
<FishTankAccordionLarge
</FishTankAccordion>
<FishTankAccordion
heading="Another Group Section Heading"
subheading="Another Group Sub-heading"
>
<FishTankLoaderContent theme="MembersOfCongressList"/>
</FishTankAccordionLarge>
</FishTankAccordion>

<FishTankAccordionLarge
<FishTankAccordion
heading="Yet Another Group Section Heading"
subheading="Yet Another Group Sub-heading"
>
<FishTankLoaderContent theme="AlertList"/>
</FishTankAccordionLarge>
</FishTankAccordion>

</FishTankAccordionGroup>

Expand All @@ -70,14 +65,14 @@
<script>
import{
FishTankAccordionLarge,
FishTankAccordion,
FishTankLoaderContent,
FishTankAccordionGroup
}from '@/index'
export default {
components: {
FishTankAccordionLarge,
FishTankAccordion,
FishTankLoaderContent,
FishTankAccordionGroup
},
Expand Down
229 changes: 229 additions & 0 deletions src/components/FishTankAccordion.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,229 @@
<template>
<div
:class="[disabled ? 'accordion-container-gray' : 'accordion-container']"
:id="( id !==null? id: labelId )"
tabindex="0"
role="accordion"
>
<div
class="accordion-wrapper-lg"
@click="toggle"
@keyup.enter="toggle"
>
<div class="accordion-heading-wrapper">
<p
class="accordion-heading"
role="heading"
aria-level="3"
>
{{ heading }}
</p>
<p
class="accordion-sub-heading"
v-if="subheading"
role="heading"
aria-level="4"
> {{ subheading }} </p>
</div>
<ChevronUp24
:class="[ visible ? 'accordion-svg-down' : 'accordion-svg-up' ]"
aria-label="collapse / expand content"
/>
</div>
<div
class="accordion-panel"
v-show="visible"
>
<slot/>
</div>
</div>
</template>

<script lang="ts">
import {
ChevronUp24
} from "@fishtank/icons-vue"
interface AccordionComponentGroup {
register(cmp:any):void,
unregister(cmp:any):void
}
export default {
components: {
ChevronUp24
},
data: function(){
return{
visible: false
}
},
props:{
heading: {
type: String,
required: true
},
subheading: {
type: String,
required: false
},
disabled:{
type: Boolean,
required: false,
default: false
},
id:{
type: String,
default: null,
required: false
},
fishtankAccordionGroupShared: {
type: Object as () => AccordionComponentGroup,
}
},
inject:{
fishtankAccordionGroupShared: {
default: {
register(){},
unregister(){}
}
}
},
mounted(){
this.fishtankAccordionGroupShared.register(this)
},
destroyed(){
this.fishtankAccordionGroupShared.unregister(this)
},
methods:{
toggle(){
if( !this.disabled ){
if( this.visible ){
this.visible = false
}else{
this.visible = true
}
}
}
},
computed:{
labelId(): string{
return `accordion-${(this as any)._uid}`
}
}
}
</script>

<style lang="scss">
@import "../../node_modules/@fishtank/colors/dist/index";
@import "../../node_modules/@fishtank/type/dist/index";
*{
margin: 0px;
}
.accordion-container{
display: flex;
flex-direction: column;
margin: 12px;
}
.accordion-wrapper-lg{
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 12px;
border-bottom: 1px solid $color-gray-lighter;
}
.accordion-container .accordion-wrapper-lg{
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 12px;
border-bottom: 1px solid $color-gray-lighter;
&:hover{
.accordion-heading-wrapper{
.ft-accordion-heading{
color: $color-black;
}
.accordion-sub-heading{
color: $color-black;
}
}
svg{
color: $color-black;
}
}
}
.accordion-heading-wrapper{
display: flex;
flex-direction: column;
justify-content: flex-start;
}
.accordion-heading{
color: $color-gray-dark;
font-size: $fontsize-base-lg;
font-weight: $fontweight-regular;
line-height: $lineheight-base-lg;
letter-spacing: $letterspacing-base-lg;
}
.accordion-sub-heading{
color: $color-gray;
font-size: $fontsize-base-sm;
font-weight: $fontweight-regular;
line-height: $lineheight-base-sm;
letter-spacing: $letterspacing-small;
}
svg{
color: $color-gray;
}
.accordion-panel{
padding: 0px
}
.accordion-container-gray{
display: flex;
flex-direction: column;
margin: 12px;
}
.accordion-container-gray .accordion-heading{
color: $color-gray-lighter;
}
.accordion-container-gray .accordion-sub-heading{
color: $color-gray-lighter;
}
.accordion-container-gray svg{
color: $color-gray-lighter;
}
.accordion-svg-up{
transition: 0.3s ease-in-out;
transform: rotate(180deg);
}
.accordion-svg-down{
transition: 0.3s ease-in-out;
transform: rotate(0deg);
}
</style>

8 changes: 8 additions & 0 deletions src/components/FishTankAccordionGroup.vue
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@
type: String,
default: null,
required: false
},
single:{
type: Boolean,
default: false,
required: true
}
},
provide: function(){
Expand All @@ -43,6 +48,9 @@
if(index > -1){
(this as any).registeredChildren.splice(index, 1);
}
},
singleToggle(){
// for( ){}
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ export { default as FishTankButtonGroup } from "./components/FishTankButtonGroup
export { default as FishTankButtonGroupButton } from "./components/FishTankButtonGroupButton.vue"
export { default as FishTankLoaderContent } from "./components/FishTankLoaderContent.vue"
export { default as FishTankText } from "./components/FishTankText.vue"
export { default as FishTankAccordionLarge } from "./components/FishTankAccordionLarge.vue"
export { default as FishTankAccordion } from "./components/FishTankAccordion.vue"
export { default as FishTankAccordionGroup } from "./components/FishTankAccordionGroup.vue"
export { default as FishTankBox } from "./components/FishTankBox.vue"

Expand Down

0 comments on commit 92534ad

Please sign in to comment.