From a568d8754ad56969a196111a0e06509c601bbc31 Mon Sep 17 00:00:00 2001 From: Micheal Parks <103450731+micheal-parks@users.noreply.github.com> Date: Thu, 18 Apr 2024 12:35:30 -0400 Subject: [PATCH] Add loading process indicator option to button (#508) --- packages/core/package.json | 2 +- packages/core/src/lib/button/button.svelte | 15 +++++++++- packages/core/src/lib/button/progress.svelte | 28 +++++++++++++++++++ packages/core/src/routes/+page.svelte | 2 ++ packages/storybook/src/stories/button.mdx | 4 +++ .../src/stories/button.stories.svelte | 4 +++ 6 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 packages/core/src/lib/button/progress.svelte diff --git a/packages/core/package.json b/packages/core/package.json index 42175a79..c9fb0cc9 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@viamrobotics/prime-core", - "version": "0.0.110", + "version": "0.0.111", "publishConfig": { "access": "public" }, diff --git a/packages/core/src/lib/button/button.svelte b/packages/core/src/lib/button/button.svelte index 0ca77042..8f6e8796 100644 --- a/packages/core/src/lib/button/button.svelte +++ b/packages/core/src/lib/button/button.svelte @@ -13,6 +13,7 @@ For user triggered actions. import cx from 'classnames'; import { Icon, type IconName } from '$lib'; import { preventHandler } from '$lib/prevent-handler'; +import Progress from './progress.svelte'; /** Whether or not the button accepts clicks. */ export let disabled = false; @@ -40,6 +41,9 @@ export let icon: IconName | undefined = undefined; /** The width of the button. */ export let width: 'full' | 'default' = 'default'; +/** Shows progress indicator. Determinite progress is a @TODO */ +export let progress: 'indeterminate' | number | undefined = undefined; + /** Additional CSS classes to pass to the button. */ let extraClasses: cx.Argument = ''; export { extraClasses as cx }; @@ -79,7 +83,16 @@ $: handleDisabled = preventHandler(disabled); on:click on:click|capture={handleDisabled} > - {#if icon} + {#if progress} + + + + {:else if icon} +
+ {#each { length: 8 } as _, index} +
+ {/each} +
+ + diff --git a/packages/core/src/routes/+page.svelte b/packages/core/src/routes/+page.svelte index 5b7448b3..b1508a9f 100644 --- a/packages/core/src/routes/+page.svelte +++ b/packages/core/src/routes/+page.svelte @@ -559,6 +559,8 @@ const onHoverDelayMsInput = (event: Event) => { Disabled + + + + + + diff --git a/packages/storybook/src/stories/button.stories.svelte b/packages/storybook/src/stories/button.stories.svelte index 8fa6e3c6..79e7b337 100644 --- a/packages/storybook/src/stories/button.stories.svelte +++ b/packages/storybook/src/stories/button.stories.svelte @@ -65,3 +65,7 @@ import { Button } from '@viamrobotics/prime-core'; Delete component + + + +