diff --git a/src/docs/data/checkbox.ts b/src/docs/data/checkbox.ts new file mode 100644 index 0000000..2a6ec12 --- /dev/null +++ b/src/docs/data/checkbox.ts @@ -0,0 +1,32 @@ +export const checkboxDefault = ` +import { Checkbox } from 'kampsy-ui'; +let value = $state(false); + +option 1`; + +export const checkboxDisabled = ` +import { Checkbox } from 'kampsy-ui'; + +
+ Disabled + Disabled Checked + Disabled Indeterminate +
`; + + +export const checkboxIndeterminate = ` +import { Checkbox } from 'kampsy-ui'; + +option 1`; + +export const checkboxItems = ` +import { Checkbox } from 'kampsy-ui'; + +let items = $state(['avatar', 'choicebox']); + +
+ avatar + button + calendar + choicebox +
`; \ No newline at end of file diff --git a/src/docs/utils/data.ts b/src/docs/utils/data.ts index 8ec7318..d27b9b6 100644 --- a/src/docs/utils/data.ts +++ b/src/docs/utils/data.ts @@ -45,10 +45,14 @@ export const asideData: Array = [ }, { name: 'calendar', - url: '/calendar', + url: '/calendar' + }, + { + name: 'checkbox', + url: '/checkbox', badge: { - name: 'updated', - variant: 'purple' + name: 'new', + variant: 'green' } }, { @@ -69,11 +73,7 @@ export const asideData: Array = [ }, { name: 'input', - url: '/input', - badge: { - name: 'updated', - variant: 'purple' - } + url: '/input' }, { name: 'menu', @@ -81,11 +81,7 @@ export const asideData: Array = [ }, { name: 'modal', - url: '/modal', - badge: { - name: 'new', - variant: 'green' - } + url: '/modal' }, { name: 'note', @@ -133,19 +129,11 @@ export const asideData: Array = [ }, { name: 'text', - url: '/text', - badge: { - name: 'new', - variant: 'green' - } + url: '/text' }, { name: 'textarea', - url: '/textarea', - badge: { - name: 'updated', - variant: 'purple' - } + url: '/textarea' }, { name: 'theme switcher', diff --git a/src/lib/checkbox/checkbox.svelte b/src/lib/checkbox/checkbox.svelte new file mode 100644 index 0000000..8d944ec --- /dev/null +++ b/src/lib/checkbox/checkbox.svelte @@ -0,0 +1,123 @@ + + +
+ +
diff --git a/src/lib/icons/check-square-fill.svelte b/src/lib/icons/check-square-fill.svelte new file mode 100644 index 0000000..2ebaa09 --- /dev/null +++ b/src/lib/icons/check-square-fill.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/icons/index.ts b/src/lib/icons/index.ts index 47afc13..55f9990 100644 --- a/src/lib/icons/index.ts +++ b/src/lib/icons/index.ts @@ -24,6 +24,7 @@ export { default as GridSquare } from './grid-square.svelte' export { default as ListUnordered } from './list-unordered.svelte' export { default as Check } from './check.svelte' export { default as CheckSquare } from './check-square.svelte' +export { default as CheckSquareFill } from './check-square-fill.svelte' export { default as Hook } from './hook.svelte' export { default as Webhook } from './webhook.svelte' export { default as InformationFillSmall } from './information-fill-small.svelte' @@ -51,4 +52,5 @@ export { default as Accessibility } from './accessibility.svelte' export { default as MenuAlt } from './menu-alt.svelte' export { default as Cross } from './cross.svelte' export { default as Star } from './star.svelte' -export { default as StarFill } from './star-fill.svelte' \ No newline at end of file +export { default as StarFill } from './star-fill.svelte' +export { default as Minus } from './minus.svelte' \ No newline at end of file diff --git a/src/lib/icons/minus.svelte b/src/lib/icons/minus.svelte new file mode 100644 index 0000000..55fe37d --- /dev/null +++ b/src/lib/icons/minus.svelte @@ -0,0 +1,14 @@ + diff --git a/src/lib/index.ts b/src/lib/index.ts index 7856c05..279a465 100644 --- a/src/lib/index.ts +++ b/src/lib/index.ts @@ -15,6 +15,9 @@ export { default as Button } from './button/button.svelte'; // Calendar export { default as Calendar } from './calendar/calendar.svelte' +// Checkbox +export {default as Checkbox} from './checkbox/checkbox.svelte' + // Choicebox export * as Choicebox from './choicebox/index.js' diff --git a/src/routes/checkbox/+page.svelte b/src/routes/checkbox/+page.svelte new file mode 100644 index 0000000..93b97b1 --- /dev/null +++ b/src/routes/checkbox/+page.svelte @@ -0,0 +1,157 @@ + + + + Checkbox + + +{#snippet checkbox()} + +

+ Checkbox +

+

+ A control that toggles between two options, checked or unchecked. +

+
+{/snippet} + +{#snippet demoAndCode(demo: Snippet, code: string)} +
+
+
+ {@render demo()} +
+
+
+ +
+
+{/snippet} + +{#snippet defaultCheckbox()} + +

+ default +

+
+ {#snippet demo()} +
+ option 1 +
+ {/snippet} + {@render demoAndCode(demo, checkboxDefault)} +
+
+{/snippet} + +{#snippet disabledCheckbox()} + +

+ Disabled +

+
+ {#snippet demo()} +
+ Disabled + Disabled Checked + Disabled Indeterminate +
+ {/snippet} + {@render demoAndCode(demo, checkboxDisabled)} +
+
+{/snippet} + +{#snippet indeterminate()} + +

+ Indeterminate +

+
+ {#snippet demo()} +
+ option 1 +
+ {/snippet} + {@render demoAndCode(demo, checkboxIndeterminate)} +
+
+{/snippet} + +{#snippet itemsSnip()} + +

+ Selected items +

+
+ {#snippet demo()} +
+ avatar + button + calendar + choicebox +
+ {/snippet} + {@render demoAndCode(demo, checkboxItems)} +
+
+{/snippet} + +{#snippet prevAndNext()} + + + +{/snippet} + +{#snippet cont()} + {@render checkbox()} + {@render defaultCheckbox()} + {@render disabledCheckbox()} + {@render indeterminate()} + {@render itemsSnip()} + {@render prevAndNext()} +{/snippet} + +{#snippet aside()} +