Docs Components Commerce

WishlistButton

React example follows below.
ts
const wishlistButtonFixture = {
id: "wishlist-button",
defaultPressed: true,
largeSize: "lg",
} satisfies {
id: string;
defaultPressed: boolean;
largeSize: "sm" | "md" | "lg";
};
import { WishlistButton } from "@grassroot/ui-react";
export default function WishlistButtonDemo() {
return (
<div>
<WishlistButton defaultPressed={wishlistButtonFixture.defaultPressed} />
<WishlistButton size={wishlistButtonFixture.largeSize} />
</div>
);
}
ts
<script setup lang="ts">
import { ref } from "vue";
const wishlistButtonFixture = {
id: "wishlist-button",
defaultPressed: true,
largeSize: "lg",
} satisfies {
id: string;
defaultPressed: boolean;
largeSize: "sm" | "md" | "lg";
};
import { WishlistButton } from "@grassroot/ui-vue";
const pressed = ref(wishlistButtonFixture.defaultPressed);
</script>
<template>
<div>
<WishlistButton v-model:pressed="pressed" />
<WishlistButton :size="wishlistButtonFixture.largeSize" />
</div>
</template>
ts
import { Component, signal } from "@angular/core";
const wishlistButtonFixture = {
id: "wishlist-button",
defaultPressed: true,
largeSize: "lg",
} satisfies {
id: string;
defaultPressed: boolean;
largeSize: "sm" | "md" | "lg";
};
import { GrassrootWishlistButton } from "@grassroot/ui-angular";
@Component({
selector: "app-wishlist-button-demo",
standalone: true,
imports: [GrassrootWishlistButton],
template: `
<div>
<grassroot-wishlist-button [pressed]="pressed()" (pressedChange)="pressed.set($event)" />
<grassroot-wishlist-button [size]="fixture.largeSize" />
</div>
`,
})
export class WishlistButtonDemoComponent {
protected readonly fixture = wishlistButtonFixture;
readonly pressed = signal(wishlistButtonFixture.defaultPressed);
}
export default WishlistButtonDemoComponent;
ts
<script lang="ts">
import { WishlistButton } from "@grassroot/ui-svelte";
const wishlistButtonFixture = {
id: "wishlist-button",
defaultPressed: true,
largeSize: "lg",
} satisfies {
id: string;
defaultPressed: boolean;
largeSize: "sm" | "md" | "lg";
};
</script>
<div>
<WishlistButton defaultPressed={wishlistButtonFixture.defaultPressed} /><WishlistButton
size={wishlistButtonFixture.largeSize}
/>
</div>
ts
/** @jsxImportSource solid-js */
import { WishlistButton } from "@grassroot/ui-solid";
const wishlistButtonFixture = {
id: "wishlist-button",
defaultPressed: true,
largeSize: "lg",
} satisfies {
id: string;
defaultPressed: boolean;
largeSize: "sm" | "md" | "lg";
};
export default function WishlistButtonDemo() {
return (
<div>
<WishlistButton defaultPressed={wishlistButtonFixture.defaultPressed} />
<WishlistButton size={wishlistButtonFixture.largeSize} />
</div>
);
}

Installation

API Reference

Import

import { WishlistButton } from "@grassroot/ui-react";

Props

Prop
Type
Default
Requirement
pressed
boolean | undefined
optional
defaultPressed
boolean | undefined
optional
onPressedChange
((pressed: boolean) => void) | undefined
optional
size
"sm" | "md" | "lg" | undefined
"md"
optional
Prop
pressed
Type
boolean | undefined
Default
Requirement
optional
Prop
defaultPressed
Type
boolean | undefined
Default
Requirement
optional
Prop
onPressedChange
Type
((pressed: boolean) => void) | undefined
Default
Requirement
optional
Prop
size
Type
"sm" | "md" | "lg" | undefined
Default
"md"
Requirement
optional

Events

EventPayload
onPressedChange((pressed: boolean) => void) | undefined

Native attributes

Standard DOM and ARIA attributes not listed above spread onto the root element.

Import

import { ref } from "vue";
import { WishlistButton } from "@grassroot/ui-vue";

Props

Prop
Type
Default
Requirement
pressed
boolean | undefined
optional
size
"sm" | "md" | "lg" | undefined
"md"
optional
Prop
pressed
Type
boolean | undefined
Default
Requirement
optional
Prop
size
Type
"sm" | "md" | "lg" | undefined
Default
"md"
Requirement
optional

Events

EventPayload
update:pressed[pressed: boolean]

Import

import { Component, signal } from "@angular/core";
import { GrassrootWishlistButton } from "@grassroot/ui-angular";

Props

Prop
Type
Default
Requirement
pressed
boolean
false
optional
size
"sm" | "md" | "lg"
"md"
optional
Prop
pressed
Type
boolean
Default
false
Requirement
optional
Prop
size
Type
"sm" | "md" | "lg"
Default
"md"
Requirement
optional

Events

EventPayload
pressedChangeboolean

Import

import { WishlistButton } from "@grassroot/ui-svelte";

Props

Prop
Type
Default
Requirement
pressed
boolean
optional
defaultPressed
boolean
false
optional
disabled
boolean
optional
size
"sm" | "md" | "lg"
"md"
optional
onPressedChange
(pressed: boolean) => void
optional
className
string
optional
Prop
pressed
Type
boolean
Default
Requirement
optional
Prop
defaultPressed
Type
boolean
Default
false
Requirement
optional
Prop
disabled
Type
boolean
Default
Requirement
optional
Prop
size
Type
"sm" | "md" | "lg"
Default
"md"
Requirement
optional
Prop
onPressedChange
Type
(pressed: boolean) => void
Default
Requirement
optional
Prop
className
Type
string
Default
Requirement
optional

Events

EventPayload
onPressedChange(pressed: boolean) => void

Import

import { WishlistButton } from "@grassroot/ui-solid";

Props

Prop
Type
Default
Requirement
pressed
boolean
optional
defaultPressed
boolean
optional
disabled
boolean
optional
onPressedChange
(pressed: boolean) => void
optional
size
"sm" | "md" | "lg"
"md"
optional
className
string
optional
Prop
pressed
Type
boolean
Default
Requirement
optional
Prop
defaultPressed
Type
boolean
Default
Requirement
optional
Prop
disabled
Type
boolean
Default
Requirement
optional
Prop
onPressedChange
Type
(pressed: boolean) => void
Default
Requirement
optional
Prop
size
Type
"sm" | "md" | "lg"
Default
"md"
Requirement
optional
Prop
className
Type
string
Default
Requirement
optional

Events

EventPayload
onPressedChange(pressed: boolean) => void