Skip to content

Commit 7bc56a1

Browse files
authored
Merge pull request #2519 from skeletonlabs/dev
Merge for release - Feb 27, 2024
2 parents c6a4ddc + b78a3b4 commit 7bc56a1

File tree

9 files changed

+26
-12
lines changed

9 files changed

+26
-12
lines changed

.changeset/giant-tomatoes-kick.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@skeletonlabs/skeleton": minor
3+
---
4+
5+
feat: Added `disabled` prop to ListBox and ListBoxItem components.

packages/skeleton/src/lib/components/ListBox/ListBox.svelte

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
// Props
88
/** Enable selection of multiple items. */
99
export let multiple = false;
10+
/** Disables selection of items. */
11+
export let disabled = false;
1012
1113
// Props (styles)
1214
/** Provide class to set the vertical spacing style. */
@@ -35,6 +37,7 @@
3537
export let labelledby = '';
3638
3739
// Context
40+
setContext('disabled', disabled);
3841
setContext('multiple', multiple);
3942
setContext('rounded', rounded);
4043
setContext('active', active);

packages/skeleton/src/lib/components/ListBox/ListBoxItem.svelte

+7-4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
export let value: any;
2020
2121
// Context
22+
export let disabled: boolean = getContext('disabled');
2223
export let multiple: string = getContext('multiple');
2324
export let rounded: CssClasses = getContext('rounded');
2425
export let active: CssClasses = getContext('active');
@@ -30,6 +31,7 @@
3031
3132
// Classes
3233
const cBase = 'cursor-pointer -outline-offset-[3px]';
34+
const cDisabled = 'opacity-50 !cursor-default';
3335
const cLabel = 'flex items-center space-x-4';
3436
3537
// Local
@@ -95,8 +97,9 @@
9597
9698
// Reactive
9799
$: selected = multiple ? group.some((groupVal: unknown) => areDeeplyEqual(value, groupVal)) : areDeeplyEqual(group, value);
98-
$: classesActive = selected ? active : hover;
99-
$: classesBase = `${cBase} ${rounded} ${padding} ${classesActive} ${$$props.class ?? ''}`;
100+
$: classesActive = selected ? active : !disabled ? hover : '';
101+
$: classesDisabled = disabled ? cDisabled : '';
102+
$: classesBase = `${cBase} ${classesDisabled} ${rounded} ${padding} ${classesActive} ${$$props.class ?? ''}`;
100103
$: classesLabel = `${cLabel}`;
101104
$: classesRegionLead = `${cRegionLead} ${regionLead}`;
102105
$: classesRegionDefault = `${cRegionDefault} ${regionDefault}`;
@@ -119,9 +122,9 @@
119122
<!-- NOTE: Don't use `hidden` as it prevents `required` from operating -->
120123
<div class="h-0 w-0 overflow-hidden">
121124
{#if multiple}
122-
<input bind:this={elemInput} type="checkbox" {name} {value} bind:checked tabindex="-1" on:click on:change />
125+
<input {disabled} bind:this={elemInput} type="checkbox" {name} {value} bind:checked tabindex="-1" on:click on:change />
123126
{:else}
124-
<input bind:this={elemInput} type="radio" bind:group {name} {value} tabindex="-1" on:click on:change />
127+
<input {disabled} bind:this={elemInput} type="radio" bind:group {name} {value} tabindex="-1" on:click on:change />
125128
{/if}
126129
</div>
127130
<!-- <slot /> -->

sites/skeleton.dev/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# skeleton.dev source code

sites/skeleton.dev/src/lib/components/DocsSidebar/DocsSidebar.svelte

-5
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,6 @@
4141
<span>Home</span>
4242
</AppRailAnchor>
4343
<!-- prettier-ignore -->
44-
<AppRailAnchor href="https://store.skeleton.dev" target="_blank" class="lg:hidden" on:click={() => { onClickAnchor() }}>
45-
<svelte:fragment slot="lead"><i class="fa-solid fa-cart-shopping text-2xl" /></svelte:fragment>
46-
<span>Store</span>
47-
</AppRailAnchor>
48-
<!-- prettier-ignore -->
4944
<AppRailAnchor href="/blog" class="lg:hidden" on:click={() => { onClickAnchor() }}>
5045
<svelte:fragment slot="lead"><i class="fa-solid fa-bullhorn text-2xl" /></svelte:fragment>
5146
<span>Blog</span>

sites/skeleton.dev/src/routes/(inner)/components/listboxes/+page.svelte

+7
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
// Local
3131
let valueSingle = 'books';
3232
let valueMultiple = ['books', 'movies'];
33+
let valueDisabled = ['books', 'movies'];
3334
</script>
3435

3536
<DocsShell {settings}>
@@ -119,6 +120,12 @@
119120
</svelte:fragment>
120121
</DocsPreview>
121122
</section>
123+
<section class="space-y-4">
124+
<h2 class="h2">Disabled</h2>
125+
<p>Use the <code class="code">disabled</code> property to disable the entire listbox or each item.</p>
126+
<CodeBlock language="html" code={`<ListBox ... disabled>...</ListBox>`} />
127+
<CodeBlock language="html" code={`<ListBoxItem ... disabled>...</ListBoxItem>`} />
128+
</section>
122129
<section class="space-y-4">
123130
<h2 class="h2">Lead and Trail Slots</h2>
124131
<p>

sites/skeleton.dev/src/routes/(inner)/docs/ssd/+page.svelte

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
<!-- Getting Started -->
8080
<section class="space-y-4">
8181
<h2 class="h2">Getting Started</h2>
82-
<h3 class="h3">Install Depedencies</h3>
82+
<h3 class="h3">Install Dependencies</h3>
8383
<p>Add Svelte Simple Datables to your Skeleton project by running the following command.</p>
8484
<CodeBlock
8585
language="shell"

sites/skeleton.dev/src/routes/(inner)/docs/ssd/ClientSSD.svelte

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export default [
2929
<section class="space-y-4">
3030
<h3 class="h3" data-toc-ignore>2. The Datatable Component</h3>
3131
<p>
32-
Create the new Datatable component in <code class="code">/src/lib/comonents/Datatable.svelte</code>, import your custom dataset, as
32+
Create the new Datatable component in <code class="code">/src/lib/components/Datatable.svelte</code>, import your custom dataset, as
3333
well as the
3434
<code class="code">DataHandler</code> from Svelte Simple Datatables. Then, intialize the <code class="code">handler</code> and
3535
<code class="code">rows</code>.

sites/skeleton.dev/src/routes/(inner)/docs/ssd/ServerSSD.svelte

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ const getParams = (state: State) => {
100100
<h3 class="h3" data-toc-ignore>2. The Datatable Component</h3>
101101

102102
<p>
103-
Create the new Datatable component in <code class="code">/src/lib/comonents/Datatable.svelte</code>. Import
103+
Create the new Datatable component in <code class="code">/src/lib/components/Datatable.svelte</code>. Import
104104
<code class="code">reload</code>
105105
from <code class="code">api.ts</code>. Then import <code class="code">DataHandler</code> and the
106106
<code class="code">State</code>

0 commit comments

Comments
 (0)