lapikit 0.6.1 → 0.6.3

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.
@@ -1,17 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { makeComponentProps } from '../../html-mapped';
3
3
  import { useClassName, useStyles } from '../../utils';
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
- }
4
+ import type { ListProps } from './list.types.js';
15
5
 
16
6
  let {
17
7
  ref = $bindable(),
@@ -26,8 +16,8 @@
26
16
  density = 'default',
27
17
  rounded = 'md',
28
18
  nav = false,
29
- color = undefined,
30
- background = undefined,
19
+ color,
20
+ background,
31
21
  ...rest
32
22
  }: ListProps = $props();
33
23
 
@@ -52,24 +42,7 @@
52
42
  })
53
43
  );
54
44
 
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
- );
45
+ let mergedStyle = $derived([componentStyle].filter(Boolean).join('; '));
73
46
  </script>
74
47
 
75
48
  <svelte:element
@@ -77,12 +50,14 @@
77
50
  bind:this={ref}
78
51
  class={componentClass}
79
52
  style={mergedStyle}
80
- data-size={safeSize}
81
- data-variant={safeVariant}
82
- data-density={safeDensity}
53
+ data-size={size}
54
+ data-variant={variant}
55
+ data-density={density}
83
56
  data-rounded={rounded}
84
57
  data-nav={nav}
85
58
  role={nav ? 'navigation' : is === 'ul' ? undefined : 'list'}
59
+ style:--kit-list-item-fg={color && `var(--kit-color-${color})`}
60
+ style:--kit-list-item-bg={background && `var(--kit-color-${background})`}
86
61
  {...restProps}
87
62
  >
88
63
  {@render children?.()}
@@ -90,87 +65,145 @@
90
65
 
91
66
  <style>
92
67
  .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-xs: 2.125rem;
98
- --kit-list-item-h-sm: 2.375rem;
99
- --kit-list-item-h-md: 2.75rem;
100
- --kit-list-item-h-lg: 3.125rem;
101
- --kit-list-item-h-xl: 3.5rem;
102
- --kit-list-item-px-xs: 0.625rem;
103
- --kit-list-item-px-sm: 0.75rem;
104
- --kit-list-item-px-md: 0.875rem;
105
- --kit-list-item-px-lg: 1rem;
106
- --kit-list-item-px-xl: 1.125rem;
107
- --kit-list-item-gap-xs: 0.5rem;
108
- --kit-list-item-gap-sm: 0.5rem;
109
- --kit-list-item-gap-md: 0.625rem;
110
- --kit-list-item-gap-lg: 0.75rem;
111
- --kit-list-item-gap-xl: 0.875rem;
112
- --kit-list-item-font-xs: 0.75rem;
113
- --kit-list-item-font-sm: 0.875rem;
114
- --kit-list-item-font-md: 0.9375rem;
115
- --kit-list-item-font-lg: 1rem;
116
- --kit-list-item-font-xl: 1.0625rem;
117
- --kit-list-item-h: var(--kit-list-item-h-md);
118
- --kit-list-item-px: var(--kit-list-item-px-md);
119
- --kit-list-item-gap: var(--kit-list-item-gap-md);
120
- --kit-list-item-font: var(--kit-list-item-font-md);
121
- --kit-list-density-offset: 0rem;
122
-
68
+ width: 100%;
123
69
  display: flex;
70
+ position: relative;
124
71
  flex-direction: column;
125
- width: 100%;
126
- padding: 0.25rem;
127
- gap: 0.125rem;
128
- color: var(--kit-list-fg);
129
- background: transparent;
130
- border-radius: var(--kit-list-radius);
72
+ gap: 0;
73
+ border: 0;
74
+ box-sizing: border-box;
75
+ transition:
76
+ background 140ms ease,
77
+ color 140ms ease,
78
+ box-shadow 140ms ease,
79
+ translate 140ms ease;
131
80
  }
132
81
 
133
- .kit-list[data-nav='true'] {
134
- padding: 0.5rem;
82
+ .kit-list[data-variant='text']
83
+ :global(.kit-list-item[data-interactive='true'][data-active='true'][data-disabled='false']),
84
+ .kit-list[data-variant='text']
85
+ :global(.kit-list-item[data-interactive='true'][data-disabled='false']:active) {
86
+ background: var(--kit-list-item-active-bg);
135
87
  }
136
88
 
89
+ /**
90
+ * density
91
+ * @link https://lapikit.dev/docs/components/list#density
92
+ */
93
+ .kit-list[data-density='none'] {
94
+ --kit-list-density-scale: 0;
95
+ --kit-list-density-h-scale: 0;
96
+ }
137
97
  .kit-list[data-density='compact'] {
138
- --kit-list-density-offset: -0.25rem;
98
+ --kit-list-density-scale: 0.9;
99
+ --kit-list-density-h-scale: 0.92;
100
+ }
101
+ .kit-list[data-density='default'] {
102
+ --kit-list-density-scale: 1;
103
+ --kit-list-density-h-scale: 1;
139
104
  }
140
-
141
105
  .kit-list[data-density='comfortable'] {
142
- --kit-list-density-offset: 0.25rem;
106
+ --kit-list-density-scale: 1.1;
107
+ --kit-list-density-h-scale: 1.15;
143
108
  }
144
109
 
145
- .kit-list[data-rounded='0'] {
146
- --kit-list-radius: 0;
110
+ /**
111
+ * rounded
112
+ * @link ...
113
+ */
114
+ .kit-list[data-rounded='0'] :global(.kit-list-item) {
115
+ --kit-list-item-radius: var(--kit-shape-none);
147
116
  }
148
-
149
- .kit-list[data-rounded='xs'] {
150
- --kit-list-radius: 2px;
117
+ .kit-list[data-rounded='xs'] :global(.kit-list-item) {
118
+ --kit-list-item-radius: var(--kit-shape-xs);
151
119
  }
152
-
153
- .kit-list[data-rounded='sm'] {
154
- --kit-list-radius: 6px;
120
+ .kit-list[data-rounded='sm'] :global(.kit-list-item) {
121
+ --kit-list-item-radius: var(--kit-shape-sm);
122
+ }
123
+ .kit-list[data-rounded='md'] :global(.kit-list-item) {
124
+ --kit-list-item-radius: var(--kit-shape-md);
125
+ }
126
+ .kit-list[data-rounded='lg'] :global(.kit-list-item) {
127
+ --kit-list-item-radius: var(--kit-shape-lg);
155
128
  }
129
+ .kit-list[data-rounded='xl'] :global(.kit-list-item) {
130
+ --kit-list-item-radius: var(--kit-shape-xl);
131
+ }
132
+ .kit-list[data-rounded='full'] :global(.kit-list-item) {
133
+ --kit-list-item-radius: var(--kit-shape-full);
134
+ }
135
+
136
+ /**
137
+ * variant
138
+ * @link https://lapikit.dev/docs/components/list#variants
139
+ */
140
+ .kit-list[data-variant='filled'] :global(.kit-list-item) {
141
+ --kit-list-item-bg: var(--kit-color-surface-2);
142
+ --kit-list-item-fg: var(--kit-color-text);
156
143
 
157
- .kit-list[data-rounded='md'] {
158
- --kit-list-radius: 10px;
144
+ --kit-list-item-hover-bg: color-mix(in oklab, var(---kit-list-item-bg), black 10%);
145
+ --kit-list-item-active-bg: color-mix(in oklab, var(--kit-list-item-bg), black 16%);
159
146
  }
147
+ .kit-list[data-variant='outline'] :global(.kit-list-item) {
148
+ --kit-list-item-bg: transparent;
149
+ --kit-list-item-fg: var(--kit-color-text);
150
+ --kit-list-item-bd: var(--kit-list-item-fg);
160
151
 
161
- .kit-list[data-rounded='lg'] {
162
- --kit-list-radius: 16px;
152
+ --kit-list-item-hover-bg: color-mix(in oklab, var(--kit-list-item-fg), transparent 80%);
153
+ --kit-list-item-active-bg: color-mix(in oklab, var(--kit-list-item-fg), transparent 92%);
163
154
  }
155
+ .kit-list[data-variant='text'] :global(.kit-list-item) {
156
+ --kit-list-item-bg: transparent;
157
+ --kit-list-item-fg: var(--kit-color-text);
164
158
 
165
- .kit-list[data-rounded='xl'] {
166
- --kit-list-radius: 9999px;
159
+ --kit-list-item-hover-bg: color-mix(in oklab, var(--kit-list-item-fg), transparent 80%);
160
+ --kit-list-item-active-bg: color-mix(in oklab, var(--kit-list-item-fg), transparent 92%);
161
+ }
162
+ .kit-list[data-variant='text'] :global(.kit-list-item .outline),
163
+ .kit-list[data-variant='filled'] :global(.kit-list-item .outline) {
164
+ display: none;
167
165
  }
168
166
 
169
- .kit-list[data-variant='filled'] {
170
- background: color-mix(in oklab, var(--kit-list-bg), transparent 12%);
167
+ /**
168
+ * nav
169
+ * @link https://lapikit.dev/docs/components/list#nav
170
+ */
171
+ .kit-list[data-nav='true'] {
172
+ padding: 0.5rem;
171
173
  }
172
174
 
173
- .kit-list[data-variant='outline'] {
174
- border: 1px solid var(--kit-list-bd);
175
+ /**
176
+ * size
177
+ * @link nothing...
178
+ */
179
+ .kit-list[data-size='xs'] :global(.kit-list-item) {
180
+ --kit-list-item-h: 28px;
181
+ --kit-list-item-px: 10px;
182
+ --kit-list-item-gap: 4px;
183
+ --kit-list-item-font: 0.75rem;
184
+ }
185
+ .kit-list[data-size='sm'] :global(.kit-list-item) {
186
+ --kit-list-item-h: 32px;
187
+ --kit-list-item-px: 12px;
188
+ --kit-list-item-gap: 6px;
189
+ --kit-list-item-font: 0.875rem;
190
+ }
191
+ .kit-list[data-size='md'] :global(.kit-list-item) {
192
+ --kit-list-item-h: 40px;
193
+ --kit-list-item-px: 16px;
194
+ --kit-list-item-gap: 8px;
195
+ --kit-list-item-font: 1rem;
196
+ }
197
+ .kit-list[data-size='lg'] :global(.kit-list-item) {
198
+ --kit-list-item-h: 48px;
199
+ --kit-list-item-px: 20px;
200
+ --kit-list-item-gap: 10px;
201
+ --kit-list-item-font: 1.125rem;
202
+ }
203
+ .kit-list[data-size='xl'] :global(.kit-list-item) {
204
+ --kit-list-item-h: 56px;
205
+ --kit-list-item-px: 24px;
206
+ --kit-list-item-gap: 12px;
207
+ --kit-list-item-font: 1.25rem;
175
208
  }
176
209
  </style>
@@ -1,7 +1,6 @@
1
1
  import type { Snippet } from 'svelte';
2
- import type { Component, RoundedType, SizeType } from '../../@types';
2
+ import type { Component, DensityType, RoundedType, SizeType } from '../../@types';
3
3
  export type ListVariant = 'filled' | 'outline' | 'text';
4
- export type ListDensity = 'compact' | 'comfortable' | 'default';
5
4
  export type ListElement = 'div' | 'nav' | 'ul';
6
5
  export type ListItemElement = 'div' | 'a' | 'button' | 'li';
7
6
  export interface ListProps extends Component {
@@ -9,8 +8,8 @@ export interface ListProps extends Component {
9
8
  is?: ListElement;
10
9
  size?: SizeType;
11
10
  variant?: ListVariant;
12
- density?: ListDensity;
13
- rounded?: RoundedType;
11
+ density?: DensityType;
12
+ rounded?: RoundedType | 'full';
14
13
  nav?: boolean;
15
14
  color?: string;
16
15
  background?: string;
@@ -23,7 +22,7 @@ export interface ListItemProps extends Component {
23
22
  prepend?: Snippet;
24
23
  color?: string;
25
24
  background?: string;
26
- rounded?: RoundedType;
25
+ interactive?: boolean;
27
26
  active?: boolean;
28
27
  disabled?: boolean;
29
28
  noRipple?: boolean;
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { ripple } from '../../../animations';
3
3
  import { makeComponentProps } from '../../../html-mapped';
4
- import { useClassName, useStyles } from '../../../utils';
4
+ import { useClassName, useIsInteractive, useStyles } from '../../../utils';
5
5
  import type { ListItemProps } from '../list.types.js';
6
6
 
7
7
  let {
@@ -17,7 +17,7 @@
17
17
  href = undefined,
18
18
  color = undefined,
19
19
  background = undefined,
20
- rounded = 'sm',
20
+ interactive = false,
21
21
  active = false,
22
22
  disabled = false,
23
23
  noRipple = false,
@@ -29,7 +29,8 @@
29
29
  );
30
30
 
31
31
  let tag = $derived(href ? 'a' : is === 'div' && restProps.onclick ? 'button' : is);
32
- let isInteractive = $derived(tag !== 'div' && tag !== 'li' && !disabled);
32
+ // let isInteractive = $derived(tag !== 'div' && tag !== 'li' && !disabled);
33
+ let isInteractive = $derived(useIsInteractive(rest, tag, ['a', 'button'], interactive));
33
34
 
34
35
  let componentClass = $derived(
35
36
  useClassName({
@@ -48,15 +49,7 @@
48
49
  })
49
50
  );
50
51
 
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
- );
52
+ let mergedStyle = $derived([componentStyle].filter(Boolean).join('; '));
60
53
  </script>
61
54
 
62
55
  <svelte:element
@@ -67,17 +60,22 @@
67
60
  href={href && !disabled ? href : undefined}
68
61
  data-active={active}
69
62
  data-disabled={disabled}
70
- data-rounded={rounded}
71
63
  aria-disabled={disabled || undefined}
72
64
  disabled={tag === 'button' ? disabled : undefined}
73
65
  tabindex={href && disabled ? -1 : undefined}
74
66
  role={tag === 'div' ? 'listitem' : undefined}
67
+ data-append={append && true}
68
+ data-prepend={prepend && true}
69
+ data-interactive={isInteractive}
70
+ style:--kit-list-item-fg={color && `var(--kit-color-${color})`}
71
+ style:--kit-list-item-bg={background && `var(--kit-color-${background})`}
75
72
  use:ripple={{
76
73
  component: 'list-item',
77
74
  disabled: noRipple || !isInteractive
78
75
  }}
79
76
  {...restProps}
80
77
  >
78
+ <span class="outline"></span>
81
79
  {#if prepend}
82
80
  <span class="kit-list-item__prepend">
83
81
  {@render prepend?.()}
@@ -97,104 +95,144 @@
97
95
 
98
96
  <style>
99
97
  .kit-list-item {
100
- --kit-list-item-bg: transparent;
101
- --kit-list-item-fg: inherit;
102
- --kit-list-item-radius: 8px;
103
-
98
+ width: 100%;
99
+ min-height: calc(var(--kit-list-item-h) * var(--kit-list-density-h-scale));
104
100
  position: relative;
105
101
  display: grid;
106
- grid-template-columns: auto minmax(0, 1fr) auto;
102
+ grid-template-columns: 1fr;
107
103
  align-items: center;
108
- gap: var(--kit-list-item-gap, 0.625rem);
109
- min-height: calc(var(--kit-list-item-h, 2.75rem) + var(--kit-list-density-offset, 0rem));
110
- padding-inline: var(--kit-list-item-px, 0.875rem);
111
- border: 0;
104
+ gap: var(--kit-list-item-gap);
112
105
  border-radius: var(--kit-list-item-radius);
106
+ border: 0;
113
107
  background: var(--kit-list-item-bg);
114
108
  color: var(--kit-list-item-fg);
115
109
  text-decoration: none;
110
+ font-size: var(--kit-list-item-font);
111
+ }
112
+
113
+ .kit-list-item .kit-list-item__prepend,
114
+ .kit-list-item:not([data-prepend='true']) .kit-list-item__content {
115
+ margin-left: calc(var(--kit-list-item-px) * var(--kit-list-density-scale));
116
+ }
117
+ .kit-list-item .kit-list-item__append,
118
+ .kit-list-item:not([data-append='true']) .kit-list-item__content {
119
+ margin-right: calc(var(--kit-list-item-px) * var(--kit-list-density-scale));
120
+ }
121
+ .kit-list-item:not([data-prepend='true']):not([data-append='true']) .kit-list-item__content {
122
+ margin-left: calc(var(--kit-list-item-px) * var(--kit-list-density-scale));
123
+ margin-right: calc(var(--kit-list-item-px) * var(--kit-list-density-scale));
124
+ }
125
+
126
+ .kit-list-item[data-prepend='true']:not([data-append='true']) {
127
+ grid-template-columns: auto minmax(0, 1fr);
128
+ }
129
+ .kit-list-item[data-append='true']:not([data-prepend='true']) {
130
+ grid-template-columns: minmax(0, 1fr) auto;
131
+ }
132
+ .kit-list-item[data-append='true'][data-prepend='true'] {
133
+ grid-template-columns: auto minmax(0, 1fr) auto;
134
+ }
135
+
136
+ a.kit-list-item {
137
+ text-decoration: none;
138
+ }
139
+
140
+ button.kit-list-item {
141
+ appearance: none;
142
+ border: 0;
116
143
  font: inherit;
117
- font-size: var(--kit-list-item-font, 0.9375rem);
118
- text-align: left;
144
+ text-align: inherit;
145
+ }
146
+
147
+ .kit-list-item[data-interactive='true'][data-disabled='false'] {
148
+ cursor: pointer;
149
+ }
150
+
151
+ .kit-list-item[data-interactive='true'][data-disabled='false']:hover {
152
+ translate: 0 -1px;
153
+ background: var(--kit-list-item-hover-bg);
154
+ }
155
+ .kit-list-item[data-active='true'][data-disabled='false'] {
156
+ translate: 0 0;
157
+ background: var(--kit-list-item-active-bg);
158
+ }
159
+ .kit-list-item[data-interactive='true'][data-disabled='false']:active {
160
+ translate: 0 0;
161
+ background: var(--kit-list-item-active-bg);
119
162
  }
120
163
 
121
- :global(.kit-list[data-size='xs']) .kit-list-item {
122
- --kit-list-item-h: var(--kit-list-item-h-xs, 2.125rem);
123
- --kit-list-item-px: var(--kit-list-item-px-xs, 0.625rem);
124
- --kit-list-item-gap: var(--kit-list-item-gap-xs, 0.5rem);
125
- --kit-list-item-font: var(--kit-list-item-font-xs, 0.75rem);
164
+ .kit-list-item[data-interactive='true'][data-disabled='false']:focus-visible {
165
+ outline: 2px solid var(--kit-focus);
166
+ outline-offset: 2px;
126
167
  }
127
168
 
128
- :global(.kit-list[data-size='sm']) .kit-list-item {
129
- --kit-list-item-h: var(--kit-list-item-h-sm, 2.375rem);
130
- --kit-list-item-px: var(--kit-list-item-px-sm, 0.75rem);
131
- --kit-list-item-gap: var(--kit-list-item-gap-sm, 0.5rem);
132
- --kit-list-item-font: var(--kit-list-item-font-sm, 0.875rem);
169
+ .kit-list-item[data-disabled='true'] {
170
+ opacity: var(--kit-disabled-opacity, 0.55);
171
+ pointer-events: none;
133
172
  }
134
173
 
135
- :global(.kit-list[data-size='md']) .kit-list-item {
136
- --kit-list-item-h: var(--kit-list-item-h-md, 2.75rem);
137
- --kit-list-item-px: var(--kit-list-item-px-md, 0.875rem);
138
- --kit-list-item-gap: var(--kit-list-item-gap-md, 0.625rem);
139
- --kit-list-item-font: var(--kit-list-item-font-md, 0.9375rem);
174
+ .kit-list-item__prepend,
175
+ .kit-list-item__append,
176
+ .kit-list-item__content {
177
+ display: inline-flex;
178
+ align-items: center;
179
+ min-width: 0;
140
180
  }
141
181
 
142
- :global(.kit-list[data-size='lg']) .kit-list-item {
143
- --kit-list-item-h: var(--kit-list-item-h-lg, 3.125rem);
144
- --kit-list-item-px: var(--kit-list-item-px-lg, 1rem);
145
- --kit-list-item-gap: var(--kit-list-item-gap-lg, 0.75rem);
146
- --kit-list-item-font: var(--kit-list-item-font-lg, 1rem);
182
+ .kit-list-item__content {
183
+ overflow: hidden;
184
+ text-overflow: ellipsis;
185
+ white-space: nowrap;
147
186
  }
148
187
 
149
- :global(.kit-list[data-size='xl']) .kit-list-item {
150
- --kit-list-item-h: var(--kit-list-item-h-xl, 3.5rem);
151
- --kit-list-item-px: var(--kit-list-item-px-xl, 1.125rem);
152
- --kit-list-item-gap: var(--kit-list-item-gap-xl, 0.875rem);
153
- --kit-list-item-font: var(--kit-list-item-font-xl, 1.0625rem);
188
+ .kit-list-item .outline {
189
+ --outline-color: var(--kit-list-item-bd);
154
190
  }
155
191
 
192
+ /**
193
+ * rounded
194
+ * @link ...
195
+ */
156
196
  .kit-list-item[data-rounded='0'] {
157
- --kit-list-item-radius: 0;
197
+ --kit-list-item-radius: var(--kit-shape-none);
158
198
  }
159
-
160
199
  .kit-list-item[data-rounded='xs'] {
161
- --kit-list-item-radius: 2px;
200
+ --kit-list-item-radius: var(--kit-shape-xs);
162
201
  }
163
-
164
202
  .kit-list-item[data-rounded='sm'] {
165
- --kit-list-item-radius: 8px;
203
+ --kit-list-item-radius: var(--kit-shape-sm);
166
204
  }
167
-
168
205
  .kit-list-item[data-rounded='md'] {
169
- --kit-list-item-radius: 12px;
206
+ --kit-list-item-radius: var(--kit-shape-md);
170
207
  }
171
-
172
208
  .kit-list-item[data-rounded='lg'] {
173
- --kit-list-item-radius: 16px;
209
+ --kit-list-item-radius: var(--kit-shape-lg);
174
210
  }
175
-
176
211
  .kit-list-item[data-rounded='xl'] {
177
- --kit-list-item-radius: 9999px;
212
+ --kit-list-item-radius: var(--kit-shape-xl);
213
+ }
214
+ .kit-list-item[data-rounded='full'] {
215
+ --kit-list-item-radius: var(--kit-shape-full);
178
216
  }
179
217
 
180
- :global(.kit-list[data-variant='filled']) .kit-list-item {
218
+ /* :global(.kit-list[data-variant='filled']) .kit-list-item {
181
219
  background: var(--kit-list-item-bg, transparent);
182
220
  }
183
221
 
184
222
  :global(.kit-list[data-variant='filled']) .kit-list-item[data-active='true'] {
185
223
  background: color-mix(in oklab, currentColor 12%, transparent);
186
- }
224
+ } */
187
225
 
188
- :global(.kit-list[data-variant='outline']) .kit-list-item::before {
226
+ /* :global(.kit-list[data-variant='outline']) .kit-list-item::before {
189
227
  content: '';
190
228
  position: absolute;
191
229
  inset: 0;
192
230
  border: 1px solid color-mix(in oklab, currentColor 16%, transparent);
193
231
  border-radius: inherit;
194
232
  pointer-events: none;
195
- }
233
+ } */
196
234
 
197
- .kit-list-item[data-active='true'] {
235
+ /* .kit-list-item[data-active='true'] {
198
236
  background: color-mix(in oklab, currentColor 12%, transparent);
199
237
  }
200
238
 
@@ -230,5 +268,5 @@
230
268
  background: currentColor;
231
269
  opacity: 0.06;
232
270
  pointer-events: none;
233
- }
271
+ } */
234
272
  </style>
@@ -1,4 +1,4 @@
1
1
  import type { TextfieldProps } from './textfield.types.ts';
2
- declare const Textfield: import("svelte").Component<TextfieldProps, {}, "value" | "ref">;
2
+ declare const Textfield: import("svelte").Component<TextfieldProps, {}, "ref" | "value">;
3
3
  type Textfield = ReturnType<typeof Textfield>;
4
4
  export default Textfield;
@@ -0,0 +1,2 @@
1
+ export * from './themes.svelte.js';
2
+ export * from '../components/accordion/accordion.svelte.js';
@@ -0,0 +1,2 @@
1
+ export * from './themes.svelte.js';
2
+ export * from '../components/accordion/accordion.svelte.js';
@@ -0,0 +1,12 @@
1
+ import type { ThemeOptions, ThemeAction } from '../@types';
2
+ export declare const useTheme: (name: string) => void;
3
+ export declare function createGlobalTheme(params?: ThemeOptions): {
4
+ readonly active: string;
5
+ };
6
+ export declare function createTheme(): ThemeAction;
7
+ /** LEGACY CODE
8
+ * NEED UPDATE documentation with new theme system before removing this legacy code. The new theme system is designed to be more flexible and easier to use, allowing for better integration with Svelte's reactivity and component structure. It also provides a more consistent API for managing themes across different components and contexts.
9
+ * TODO: Remove this legacy code once the new theme system is fully implemented and tested. This code is kept for backward compatibility with existing components that rely on the old theme system.
10
+ */
11
+ import { type Writable } from 'svelte/store';
12
+ export declare const theme: Writable<string>;