mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-15 02:11:05 +00:00
Align v10.37 (#697)
* chore(deps-dev): upgrade carbon-components to v10.27.1 * fix(toolbar-search): omit size prop * feat(progress-bar): add ProgressBar * refactor(text-input): use class directive * chore(deps-dev): rebuild yarn.lock * fix(notification): omit iconDescription from NotificationIcon #672 Fixes #672
This commit is contained in:
parent
2f5d01d0c0
commit
fb5c7553ac
19 changed files with 294 additions and 22 deletions
60
src/ProgressBar/ProgressBar.svelte
Normal file
60
src/ProgressBar/ProgressBar.svelte
Normal file
|
@ -0,0 +1,60 @@
|
|||
<script>
|
||||
/**
|
||||
* Specify the current value
|
||||
* @type {number}
|
||||
*/
|
||||
export let value = undefined;
|
||||
|
||||
/** Specify the maximum value */
|
||||
export let max = 100;
|
||||
|
||||
/** Specify the label text */
|
||||
export let labelText = "";
|
||||
|
||||
/** Set to `true` to visually hide the label text */
|
||||
export let hideLabel = false;
|
||||
|
||||
/** Specify the helper text */
|
||||
export let helperText = "";
|
||||
|
||||
let id = "ccs-" + Math.random().toString(36);
|
||||
let helperId = "ccs-" + Math.random().toString(36);
|
||||
|
||||
$: indeterminate = value === undefined;
|
||||
$: capped = value > max ? max : value < 0 ? 0 : value;
|
||||
</script>
|
||||
|
||||
<div
|
||||
class:bx--progress-bar="{true}"
|
||||
class:bx--progress-bar--indeterminate="{indeterminate}"
|
||||
{...$$restProps}
|
||||
>
|
||||
<label
|
||||
for="{id}"
|
||||
class:bx--progress-bar__label="{true}"
|
||||
class:bx--visually-hidden="{hideLabel}"
|
||||
>
|
||||
<slot name="labelText">
|
||||
{labelText}
|
||||
</slot>
|
||||
</label>
|
||||
<div
|
||||
role="progressbar"
|
||||
id="{id}"
|
||||
class:bx--progress-bar__track="{true}"
|
||||
aria-valuemin="{indeterminate ? undefined : 0}"
|
||||
aria-valuemax="{indeterminate ? undefined : max}"
|
||||
aria-valuenow="{indeterminate ? undefined : capped}"
|
||||
aria-describedby="{helperText ? helperId : null}"
|
||||
>
|
||||
<div
|
||||
class:bx--progress-bar__bar="{true}"
|
||||
style="transform: scaleX({capped / max})"
|
||||
></div>
|
||||
</div>
|
||||
{#if helperText}
|
||||
<div id="{helperId}" class:bx--progress-bar__helper-text="{true}">
|
||||
{helperText}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
1
src/ProgressBar/index.js
Normal file
1
src/ProgressBar/index.js
Normal file
|
@ -0,0 +1 @@
|
|||
export { default as ProgressBar } from "./ProgressBar.svelte";
|
Loading…
Add table
Add a link
Reference in a new issue