lapikit 0.4.11 → 0.4.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,6 +4,17 @@ const lapikitComponents = [
4
4
  'btn',
5
5
  'icon',
6
6
  'avatar',
7
+ 'textfield',
8
+ 'appbar',
9
+ 'btn',
10
+ 'icon',
11
+ 'avatar',
12
+ 'toolbar',
13
+ 'btn',
14
+ 'icon',
15
+ 'avatar',
16
+ 'list',
17
+ 'list-item',
7
18
  'dialog',
8
19
  'modal',
9
20
  'accordion',
@@ -0,0 +1,196 @@
1
+ <script lang="ts">
2
+ import { useClassName, useStyles } from '../../utils/index.js';
3
+ import { makeComponentProps } from '../../compiler/mapped-code.js';
4
+ import type { AppbarProps } from './appbar.types.js';
5
+
6
+ let {
7
+ ref = $bindable(),
8
+ is = 'header',
9
+ children,
10
+ class: className = '',
11
+ style: styleAttr = '',
12
+ 's-class': sClass,
13
+ 's-style': sStyle,
14
+ classContent,
15
+ light = false,
16
+ dark = false,
17
+ variant = 'outline',
18
+ rounded,
19
+ background,
20
+ color,
21
+ density = 'default',
22
+ ...rest
23
+ }: AppbarProps = $props();
24
+
25
+ let safeVariant = $derived(
26
+ typeof variant === 'string' && (variant === 'outline' || variant === 'text')
27
+ ? variant
28
+ : 'outline'
29
+ );
30
+
31
+ let safeDensity = $derived(
32
+ typeof density === 'string' &&
33
+ (density === 'compact' || density === 'comfortable' || density === 'default')
34
+ ? density
35
+ : 'default'
36
+ );
37
+
38
+ let { classProps, styleProps, restProps } = $derived(
39
+ makeComponentProps(rest as Record<string, unknown>)
40
+ );
41
+
42
+ let componentClass = $derived(
43
+ useClassName({
44
+ baseClass: 'kit-appbar',
45
+ className: `${className ?? ''}`.trim(),
46
+ sClass,
47
+ classProps
48
+ })
49
+ );
50
+
51
+ let normalizedClassContent = $derived(
52
+ Array.isArray(classContent) ? classContent.filter(Boolean).join(' ') : classContent
53
+ );
54
+
55
+ let wrapperClass = $derived(
56
+ useClassName({
57
+ baseClass: 'kit-appbar__wrapper',
58
+ className: normalizedClassContent
59
+ })
60
+ );
61
+
62
+ let componentStyle = $derived(
63
+ useStyles({
64
+ styleAttr,
65
+ sStyle,
66
+ styleProps
67
+ })
68
+ );
69
+
70
+ let mergedStyle = $derived(
71
+ [
72
+ componentStyle,
73
+ background ? `--kit-appbar-background:${background}` : '',
74
+ color ? `--kit-appbar-color:${color}` : '',
75
+ typeof rounded === 'string' && rounded.includes('px') ? `--kit-appbar-radius:${rounded}` : ''
76
+ ]
77
+ .filter(Boolean)
78
+ .join('; ')
79
+ );
80
+ </script>
81
+
82
+ <svelte:element
83
+ this={is}
84
+ bind:this={ref}
85
+ class={componentClass}
86
+ style={mergedStyle}
87
+ {...restProps}
88
+ data-variant={safeVariant}
89
+ data-density={safeDensity}
90
+ data-light={light || undefined}
91
+ data-dark={dark || undefined}
92
+ data-rounded={rounded}
93
+ >
94
+ {#if safeVariant === 'outline'}
95
+ <span class="outline"></span>
96
+ {/if}
97
+
98
+ <div class={wrapperClass}>
99
+ {@render children?.()}
100
+ </div>
101
+ </svelte:element>
102
+
103
+ <style>
104
+ .kit-appbar {
105
+ --kit-appbar-background: var(--kit-surface-2);
106
+ --kit-appbar-color: var(--kit-fg);
107
+ --kit-appbar-radius: 1rem;
108
+ --kit-appbar-size: 4rem;
109
+ --kit-appbar-padding-x: 1rem;
110
+ --kit-appbar-padding-wrapper: 0;
111
+ --kit-appbar-border: color-mix(in oklab, var(--kit-appbar-color), transparent 88%);
112
+
113
+ display: flex;
114
+ align-items: center;
115
+ box-sizing: border-box;
116
+ position: relative;
117
+ width: 100%;
118
+ min-height: var(--kit-appbar-size);
119
+ padding-inline: var(--kit-appbar-padding-x);
120
+ border-radius: var(--kit-appbar-radius);
121
+ color: var(--kit-appbar-color);
122
+ background-color: var(--kit-appbar-background);
123
+ overflow: hidden;
124
+ }
125
+
126
+ .kit-appbar[data-variant='text'] {
127
+ --kit-appbar-border: transparent;
128
+ }
129
+
130
+ .kit-appbar[data-density='compact'] {
131
+ --kit-appbar-size: 3.5rem;
132
+ --kit-appbar-padding-x: 0.75rem;
133
+ }
134
+
135
+ .kit-appbar[data-density='default'] {
136
+ --kit-appbar-size: 4rem;
137
+ --kit-appbar-padding-x: 1rem;
138
+ }
139
+
140
+ .kit-appbar[data-density='comfortable'] {
141
+ --kit-appbar-size: 4.5rem;
142
+ --kit-appbar-padding-x: 1.5rem;
143
+ }
144
+
145
+ .kit-appbar[data-light='true'] {
146
+ --kit-appbar-background: color-mix(in oklab, white 88%, var(--kit-surface-1));
147
+ --kit-appbar-color: var(--kit-fg);
148
+ }
149
+
150
+ .kit-appbar[data-dark='true'] {
151
+ --kit-appbar-background: color-mix(in oklab, black 72%, var(--kit-surface-3));
152
+ --kit-appbar-color: white;
153
+ --kit-appbar-border: color-mix(in oklab, white, transparent 78%);
154
+ }
155
+
156
+ .kit-appbar[data-rounded='0'] {
157
+ --kit-appbar-radius: 0;
158
+ }
159
+
160
+ .kit-appbar[data-rounded='xs'] {
161
+ --kit-appbar-radius: 2px;
162
+ }
163
+
164
+ .kit-appbar[data-rounded='sm'] {
165
+ --kit-appbar-radius: 4px;
166
+ }
167
+
168
+ .kit-appbar[data-rounded='md'] {
169
+ --kit-appbar-radius: 8px;
170
+ }
171
+
172
+ .kit-appbar[data-rounded='lg'] {
173
+ --kit-appbar-radius: 16px;
174
+ }
175
+
176
+ .kit-appbar[data-rounded='xl'] {
177
+ --kit-appbar-radius: 99999px;
178
+ }
179
+
180
+ .kit-appbar__wrapper {
181
+ position: relative;
182
+ z-index: 1;
183
+ display: flex;
184
+ align-items: center;
185
+ flex-direction: row;
186
+ gap: 0.75rem;
187
+ width: 100%;
188
+ margin: 0 auto;
189
+ }
190
+
191
+ .kit-appbar .outline {
192
+ --outline-color: var(--kit-appbar-border);
193
+
194
+ pointer-events: none;
195
+ }
196
+ </style>
@@ -0,0 +1,4 @@
1
+ import type { AppbarProps } from './appbar.types.ts';
2
+ declare const Appbar: import("svelte").Component<AppbarProps, {}, "ref">;
3
+ type Appbar = ReturnType<typeof Appbar>;
4
+ export default Appbar;
@@ -0,0 +1,16 @@
1
+ import type { Component, RoundedType } from '../../utils/types/index.js';
2
+ type Density = 'compact' | 'comfortable' | 'default';
3
+ type Variant = 'outline' | 'text';
4
+ export interface AppbarProps extends Component {
5
+ ref?: HTMLElement | null;
6
+ is?: 'div' | 'header' | 'nav';
7
+ variant?: Variant;
8
+ rounded?: RoundedType | string;
9
+ density?: Density | Record<string, Density>;
10
+ dark?: boolean;
11
+ light?: boolean;
12
+ color?: string;
13
+ background?: string;
14
+ classContent?: string | string[] | undefined;
15
+ }
16
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,10 +1,15 @@
1
1
  export { default as KitSheet } from './sheet/sheet.svelte';
2
2
  export { default as KitApp } from './app/app.svelte';
3
+ export { default as KitAppbar } from './appbar/appbar.svelte';
3
4
  export { default as KitBtn } from './btn/btn.svelte';
4
5
  export { default as KitIcon } from './icon/icon.svelte';
5
6
  export { default as KitCard } from './card/card.svelte';
6
7
  export { default as KitChip } from './chip/chip.svelte';
7
8
  export { default as KitAvatar } from './avatar/avatar.svelte';
9
+ export { default as KitTextfield } from './textfield/textfield.svelte';
10
+ export { default as KitToolbar } from './toolbar/toolbar.svelte';
11
+ export { default as KitList } from './list/list.svelte';
12
+ export { default as KitListItem } from './list/modules/list-item.svelte';
8
13
  export { default as KitDialog } from './dialog/dialog.svelte';
9
14
  export { default as KitModal } from './modal/modal.svelte';
10
15
  export { default as KitAccordion } from './accordion/accordion.svelte';
@@ -1,11 +1,16 @@
1
1
  // components
2
2
  export { default as KitSheet } from './sheet/sheet.svelte';
3
3
  export { default as KitApp } from './app/app.svelte';
4
+ export { default as KitAppbar } from './appbar/appbar.svelte';
4
5
  export { default as KitBtn } from './btn/btn.svelte';
5
6
  export { default as KitIcon } from './icon/icon.svelte';
6
7
  export { default as KitCard } from './card/card.svelte';
7
8
  export { default as KitChip } from './chip/chip.svelte';
8
9
  export { default as KitAvatar } from './avatar/avatar.svelte';
10
+ export { default as KitTextfield } from './textfield/textfield.svelte';
11
+ export { default as KitToolbar } from './toolbar/toolbar.svelte';
12
+ export { default as KitList } from './list/list.svelte';
13
+ export { default as KitListItem } from './list/modules/list-item.svelte';
9
14
  export { default as KitDialog } from './dialog/dialog.svelte';
10
15
  export { default as KitModal } from './modal/modal.svelte';
11
16
  export { default as KitAccordion } from './accordion/accordion.svelte';
@@ -0,0 +1,190 @@
1
+ <script lang="ts">
2
+ import { makeComponentProps } from '../../compiler/mapped-code.js';
3
+ import { useClassName, useStyles } from '../../utils/index.js';
4
+ import type { ListDensity, ListProps, ListVariant } from './list.types.js';
5
+
6
+ function resolveVariant(value: ListVariant | undefined): ListVariant {
7
+ return value === 'filled' || value === 'outline' || value === 'text' ? value : 'filled';
8
+ }
9
+
10
+ function resolveDensity(value: ListDensity | undefined): ListDensity {
11
+ return value === 'compact' || value === 'comfortable' || value === 'default'
12
+ ? value
13
+ : 'default';
14
+ }
15
+
16
+ let {
17
+ ref = $bindable(),
18
+ is = 'div',
19
+ children = undefined,
20
+ class: className = '',
21
+ style: styleAttr = '',
22
+ 's-class': sClass,
23
+ 's-style': sStyle,
24
+ size = 'md',
25
+ variant = 'filled',
26
+ density = 'default',
27
+ rounded = 'md',
28
+ nav = false,
29
+ color = undefined,
30
+ background = undefined,
31
+ ...rest
32
+ }: ListProps = $props();
33
+
34
+ let { classProps, styleProps, restProps } = $derived(
35
+ makeComponentProps(rest as Record<string, unknown>)
36
+ );
37
+
38
+ let componentClass = $derived(
39
+ useClassName({
40
+ baseClass: 'kit-list',
41
+ className: `${className ?? ''}`.trim(),
42
+ sClass,
43
+ classProps
44
+ })
45
+ );
46
+
47
+ let componentStyle = $derived(
48
+ useStyles({
49
+ styleAttr,
50
+ sStyle,
51
+ styleProps
52
+ })
53
+ );
54
+
55
+ let safeVariant = $derived(resolveVariant(variant));
56
+ let safeDensity = $derived(resolveDensity(density));
57
+ let safeSize = $derived(
58
+ size === 'default'
59
+ ? 'md'
60
+ : size === 'xs' || size === 'sm' || size === 'md' || size === 'lg' || size === 'xl'
61
+ ? size
62
+ : 'md'
63
+ );
64
+ let mergedStyle = $derived(
65
+ [
66
+ componentStyle,
67
+ color ? `--kit-list-fg:${color}` : '',
68
+ background ? `--kit-list-bg:${background}` : ''
69
+ ]
70
+ .filter(Boolean)
71
+ .join('; ')
72
+ );
73
+ </script>
74
+
75
+ <svelte:element
76
+ this={is}
77
+ bind:this={ref}
78
+ class={componentClass}
79
+ style={mergedStyle}
80
+ data-size={safeSize}
81
+ data-variant={safeVariant}
82
+ data-density={safeDensity}
83
+ data-rounded={rounded}
84
+ data-nav={nav}
85
+ role={nav ? 'navigation' : is === 'ul' ? undefined : 'list'}
86
+ {...restProps}
87
+ >
88
+ {@render children?.()}
89
+ </svelte:element>
90
+
91
+ <style>
92
+ .kit-list {
93
+ --kit-list-bg: var(--kit-surface-1);
94
+ --kit-list-fg: var(--kit-fg);
95
+ --kit-list-bd: var(--kit-border);
96
+ --kit-list-radius: 10px;
97
+ --kit-list-item-h: 2.75rem;
98
+ --kit-list-item-px: 0.875rem;
99
+ --kit-list-item-gap: 0.625rem;
100
+ --kit-list-item-font: 0.9375rem;
101
+
102
+ display: flex;
103
+ flex-direction: column;
104
+ width: 100%;
105
+ padding: 0.25rem;
106
+ gap: 0.125rem;
107
+ color: var(--kit-list-fg);
108
+ background: transparent;
109
+ border-radius: var(--kit-list-radius);
110
+ }
111
+
112
+ .kit-list[data-nav='true'] {
113
+ padding: 0.5rem;
114
+ }
115
+
116
+ .kit-list[data-size='xs'] {
117
+ --kit-list-item-h: 2.125rem;
118
+ --kit-list-item-px: 0.625rem;
119
+ --kit-list-item-gap: 0.5rem;
120
+ --kit-list-item-font: 0.75rem;
121
+ }
122
+
123
+ .kit-list[data-size='sm'] {
124
+ --kit-list-item-h: 2.375rem;
125
+ --kit-list-item-px: 0.75rem;
126
+ --kit-list-item-gap: 0.5rem;
127
+ --kit-list-item-font: 0.875rem;
128
+ }
129
+
130
+ .kit-list[data-size='md'] {
131
+ --kit-list-item-h: 2.75rem;
132
+ --kit-list-item-px: 0.875rem;
133
+ --kit-list-item-gap: 0.625rem;
134
+ --kit-list-item-font: 0.9375rem;
135
+ }
136
+
137
+ .kit-list[data-size='lg'] {
138
+ --kit-list-item-h: 3.125rem;
139
+ --kit-list-item-px: 1rem;
140
+ --kit-list-item-gap: 0.75rem;
141
+ --kit-list-item-font: 1rem;
142
+ }
143
+
144
+ .kit-list[data-size='xl'] {
145
+ --kit-list-item-h: 3.5rem;
146
+ --kit-list-item-px: 1.125rem;
147
+ --kit-list-item-gap: 0.875rem;
148
+ --kit-list-item-font: 1.0625rem;
149
+ }
150
+
151
+ .kit-list[data-density='compact'] {
152
+ --kit-list-item-h: calc(var(--kit-list-item-h) - 0.25rem);
153
+ }
154
+
155
+ .kit-list[data-density='comfortable'] {
156
+ --kit-list-item-h: calc(var(--kit-list-item-h) + 0.25rem);
157
+ }
158
+
159
+ .kit-list[data-rounded='0'] {
160
+ --kit-list-radius: 0;
161
+ }
162
+
163
+ .kit-list[data-rounded='xs'] {
164
+ --kit-list-radius: 2px;
165
+ }
166
+
167
+ .kit-list[data-rounded='sm'] {
168
+ --kit-list-radius: 6px;
169
+ }
170
+
171
+ .kit-list[data-rounded='md'] {
172
+ --kit-list-radius: 10px;
173
+ }
174
+
175
+ .kit-list[data-rounded='lg'] {
176
+ --kit-list-radius: 16px;
177
+ }
178
+
179
+ .kit-list[data-rounded='xl'] {
180
+ --kit-list-radius: 9999px;
181
+ }
182
+
183
+ .kit-list[data-variant='filled'] {
184
+ background: color-mix(in oklab, var(--kit-list-bg), transparent 12%);
185
+ }
186
+
187
+ .kit-list[data-variant='outline'] {
188
+ border: 1px solid var(--kit-list-bd);
189
+ }
190
+ </style>
@@ -0,0 +1,4 @@
1
+ import type { ListProps } from './list.types.ts';
2
+ declare const List: import("svelte").Component<ListProps, {}, "ref">;
3
+ type List = ReturnType<typeof List>;
4
+ export default List;
@@ -0,0 +1,30 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { Component, RoundedType, SizeType } from '../../utils/types/index.js';
3
+ export type ListVariant = 'filled' | 'outline' | 'text';
4
+ export type ListDensity = 'compact' | 'comfortable' | 'default';
5
+ export type ListElement = 'div' | 'nav' | 'ul';
6
+ export type ListItemElement = 'div' | 'a' | 'button' | 'li';
7
+ export interface ListProps extends Component {
8
+ ref?: HTMLElement | null;
9
+ is?: ListElement;
10
+ size?: SizeType;
11
+ variant?: ListVariant;
12
+ density?: ListDensity;
13
+ rounded?: RoundedType;
14
+ nav?: boolean;
15
+ color?: string;
16
+ background?: string;
17
+ }
18
+ export interface ListItemProps extends Component {
19
+ ref?: HTMLElement | null;
20
+ is?: ListItemElement;
21
+ href?: string;
22
+ append?: Snippet;
23
+ prepend?: Snippet;
24
+ color?: string;
25
+ background?: string;
26
+ rounded?: RoundedType;
27
+ active?: boolean;
28
+ disabled?: boolean;
29
+ noRipple?: boolean;
30
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,195 @@
1
+ <script lang="ts">
2
+ import { ripple } from '../../../animations/index.js';
3
+ import { makeComponentProps } from '../../../compiler/mapped-code.js';
4
+ import { useClassName, useStyles } from '../../../utils/index.js';
5
+ import type { ListItemProps } from '../list.types.js';
6
+
7
+ let {
8
+ ref = $bindable(),
9
+ is = 'div',
10
+ children = undefined,
11
+ class: className = '',
12
+ style: styleAttr = '',
13
+ 's-class': sClass,
14
+ 's-style': sStyle,
15
+ append = undefined,
16
+ prepend = undefined,
17
+ href = undefined,
18
+ color = undefined,
19
+ background = undefined,
20
+ rounded = 'sm',
21
+ active = false,
22
+ disabled = false,
23
+ noRipple = false,
24
+ ...rest
25
+ }: ListItemProps = $props();
26
+
27
+ let { classProps, styleProps, restProps } = $derived(
28
+ makeComponentProps(rest as Record<string, unknown>)
29
+ );
30
+
31
+ let tag = $derived(href ? 'a' : is === 'div' && restProps.onclick ? 'button' : is);
32
+ let isInteractive = $derived(tag !== 'div' && tag !== 'li' && !disabled);
33
+
34
+ let componentClass = $derived(
35
+ useClassName({
36
+ baseClass: 'kit-list-item',
37
+ className: `${className ?? ''}`.trim(),
38
+ sClass,
39
+ classProps
40
+ })
41
+ );
42
+
43
+ let componentStyle = $derived(
44
+ useStyles({
45
+ styleAttr,
46
+ sStyle,
47
+ styleProps
48
+ })
49
+ );
50
+
51
+ let mergedStyle = $derived(
52
+ [
53
+ componentStyle,
54
+ color ? `--kit-list-item-fg:${color}` : '',
55
+ background ? `--kit-list-item-bg:${background}` : ''
56
+ ]
57
+ .filter(Boolean)
58
+ .join('; ')
59
+ );
60
+ </script>
61
+
62
+ <svelte:element
63
+ this={tag}
64
+ bind:this={ref}
65
+ class={componentClass}
66
+ style={mergedStyle}
67
+ href={href && !disabled ? href : undefined}
68
+ data-active={active}
69
+ data-disabled={disabled}
70
+ data-rounded={rounded}
71
+ aria-disabled={disabled || undefined}
72
+ disabled={tag === 'button' ? disabled : undefined}
73
+ tabindex={href && disabled ? -1 : undefined}
74
+ role={tag === 'div' ? 'listitem' : undefined}
75
+ use:ripple={{
76
+ component: 'list-item',
77
+ disabled: noRipple || !isInteractive
78
+ }}
79
+ {...restProps}
80
+ >
81
+ {#if prepend}
82
+ <span class="kit-list-item__prepend">
83
+ {@render prepend?.()}
84
+ </span>
85
+ {/if}
86
+
87
+ <span class="kit-list-item__content">
88
+ {@render children?.()}
89
+ </span>
90
+
91
+ {#if append}
92
+ <span class="kit-list-item__append">
93
+ {@render append?.()}
94
+ </span>
95
+ {/if}
96
+ </svelte:element>
97
+
98
+ <style>
99
+ .kit-list-item {
100
+ --kit-list-item-bg: transparent;
101
+ --kit-list-item-fg: inherit;
102
+ --list-item-shape: 8px;
103
+
104
+ position: relative;
105
+ display: grid;
106
+ grid-template-columns: auto minmax(0, 1fr) auto;
107
+ align-items: center;
108
+ gap: var(--kit-list-item-gap, 0.625rem);
109
+ min-height: var(--kit-list-item-h, 2.75rem);
110
+ padding-inline: var(--kit-list-item-px, 0.875rem);
111
+ border: 0;
112
+ border-radius: var(--list-item-shape);
113
+ background: var(--kit-list-item-bg);
114
+ color: var(--kit-list-item-fg);
115
+ text-decoration: none;
116
+ font: inherit;
117
+ font-size: var(--kit-list-item-font, 0.9375rem);
118
+ text-align: left;
119
+ }
120
+
121
+ .kit-list-item[data-rounded='0'] {
122
+ --list-item-shape: 0;
123
+ }
124
+
125
+ .kit-list-item[data-rounded='xs'] {
126
+ --list-item-shape: 2px;
127
+ }
128
+
129
+ .kit-list-item[data-rounded='sm'] {
130
+ --list-item-shape: 8px;
131
+ }
132
+
133
+ .kit-list-item[data-rounded='md'] {
134
+ --list-item-shape: 12px;
135
+ }
136
+
137
+ .kit-list-item[data-rounded='lg'] {
138
+ --list-item-shape: 16px;
139
+ }
140
+
141
+ .kit-list-item[data-rounded='xl'] {
142
+ --list-item-shape: 9999px;
143
+ }
144
+
145
+ .kit-list[data-variant='filled'] .kit-list-item {
146
+ background: var(--kit-list-item-bg, transparent);
147
+ }
148
+
149
+ .kit-list[data-variant='outline'] .kit-list-item::before {
150
+ content: '';
151
+ position: absolute;
152
+ inset: 0;
153
+ border: 1px solid color-mix(in oklab, currentColor 16%, transparent);
154
+ border-radius: inherit;
155
+ pointer-events: none;
156
+ }
157
+
158
+ .kit-list-item[data-active='true'] {
159
+ background: color-mix(in oklab, currentColor 12%, transparent);
160
+ }
161
+
162
+ .kit-list-item[data-disabled='true'] {
163
+ opacity: 0.45;
164
+ pointer-events: none;
165
+ }
166
+
167
+ .kit-list-item:is(button, a) {
168
+ cursor: pointer;
169
+ }
170
+
171
+ .kit-list-item__prepend,
172
+ .kit-list-item__append,
173
+ .kit-list-item__content {
174
+ display: inline-flex;
175
+ align-items: center;
176
+ min-width: 0;
177
+ }
178
+
179
+ .kit-list-item__content {
180
+ overflow: hidden;
181
+ text-overflow: ellipsis;
182
+ white-space: nowrap;
183
+ }
184
+
185
+ .kit-list-item:is(button, a):hover::after,
186
+ .kit-list-item:is(button, a):focus-visible::after {
187
+ content: '';
188
+ position: absolute;
189
+ inset: 0;
190
+ border-radius: inherit;
191
+ background: currentColor;
192
+ opacity: 0.06;
193
+ pointer-events: none;
194
+ }
195
+ </style>
@@ -0,0 +1,4 @@
1
+ import type { ListItemProps } from '../list.types.ts';
2
+ declare const ListItem: import("svelte").Component<ListItemProps, {}, "ref">;
3
+ type ListItem = ReturnType<typeof ListItem>;
4
+ export default ListItem;