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