lapikit 0.7.3 → 0.7.5

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.
Files changed (71) hide show
  1. package/dist/@types/components.d.ts +1 -7
  2. package/dist/@types/dom.d.ts +4 -3
  3. package/dist/@types/props.d.ts +3 -3
  4. package/dist/animations/ripple.js +8 -2
  5. package/dist/components/accordion/accordion.svelte +192 -228
  6. package/dist/components/accordion/accordion.types.d.ts +5 -7
  7. package/dist/components/accordion/modules/accordion-item.svelte +144 -140
  8. package/dist/components/alert/alert.svelte +246 -293
  9. package/dist/components/alert/alert.types.d.ts +5 -5
  10. package/dist/components/app/app.svelte +25 -43
  11. package/dist/components/appbar/appbar.svelte +205 -190
  12. package/dist/components/appbar/appbar.types.d.ts +6 -6
  13. package/dist/components/aspect-ratio/aspect-ratio.svelte +43 -63
  14. package/dist/components/avatar/avatar.svelte +169 -161
  15. package/dist/components/avatar/avatar.types.d.ts +3 -4
  16. package/dist/components/btn/btn.svelte +432 -466
  17. package/dist/components/btn/btn.types.d.ts +5 -6
  18. package/dist/components/card/card.svelte +24 -23
  19. package/dist/components/card/card.types.d.ts +2 -2
  20. package/dist/components/card/modules/card-content.svelte +4 -1
  21. package/dist/components/card/modules/card-title.svelte +4 -1
  22. package/dist/components/chip/chip.svelte +416 -464
  23. package/dist/components/chip/chip.types.d.ts +5 -5
  24. package/dist/components/dialog/dialog.svelte +184 -175
  25. package/dist/components/dialog/dialog.types.d.ts +6 -6
  26. package/dist/components/dropdown/dropdown.svelte +149 -144
  27. package/dist/components/dropdown/dropdown.types.d.ts +4 -11
  28. package/dist/components/field/field.svelte +474 -0
  29. package/dist/components/field/field.svelte.d.ts +4 -0
  30. package/dist/components/field/field.types.d.ts +46 -0
  31. package/dist/components/field/field.types.js +1 -0
  32. package/dist/components/icon/icon.svelte +67 -96
  33. package/dist/components/icon/icon.types.d.ts +2 -1
  34. package/dist/components/index.d.ts +2 -0
  35. package/dist/components/index.js +1 -0
  36. package/dist/components/list/list.svelte +193 -194
  37. package/dist/components/list/list.types.d.ts +5 -7
  38. package/dist/components/list/modules/list-item.svelte +134 -147
  39. package/dist/components/modal/modal.js +9 -9
  40. package/dist/components/modal/modal.svelte +239 -222
  41. package/dist/components/modal/modal.types.d.ts +6 -6
  42. package/dist/components/popover/popover.svelte +125 -127
  43. package/dist/components/popover/popover.types.d.ts +4 -11
  44. package/dist/components/separator/separator.svelte +56 -87
  45. package/dist/components/separator/separator.types.d.ts +1 -1
  46. package/dist/components/spacer/spacer.svelte +6 -25
  47. package/dist/components/textfield/textfield.svelte +94 -543
  48. package/dist/components/textfield/textfield.types.d.ts +13 -33
  49. package/dist/components/toolbar/toolbar.svelte +216 -211
  50. package/dist/components/toolbar/toolbar.types.d.ts +8 -9
  51. package/dist/components/tooltip/tooltip.svelte +201 -266
  52. package/dist/components/tooltip/tooltip.types.d.ts +3 -10
  53. package/dist/constants.js +1 -0
  54. package/dist/escaping.js +0 -1
  55. package/dist/html-mapped.d.ts +1 -15
  56. package/dist/html-mapped.js +0 -19
  57. package/dist/labs/sheet/sheet.svelte +27 -22
  58. package/dist/utils/color.d.ts +2 -2
  59. package/dist/utils/color.js +2 -1
  60. package/dist/utils/components.d.ts +10 -10
  61. package/dist/utils/components.js +16 -75
  62. package/dist/utils/floating.d.ts +58 -0
  63. package/dist/utils/floating.js +131 -0
  64. package/dist/utils/index.d.ts +1 -0
  65. package/dist/utils/index.js +1 -0
  66. package/dist/utils/outside.d.ts +3 -1
  67. package/dist/utils/outside.js +15 -3
  68. package/package.json +6 -3
  69. package/dist/components/dropdown/dropdown.svelte.js +0 -148
  70. package/dist/components/popover/popover.svelte.js +0 -134
  71. package/dist/components/tooltip/tooltip.svelte.js +0 -131
@@ -1,43 +1,27 @@
1
1
  <script lang="ts">
2
- import { makeComponentProps } from '../../html-mapped';
3
- import { useClassName, useStyles } from '../../utils';
2
+ import { useComponentAttrs } from '../../utils';
4
3
  import type { AppProps } from './app.types';
5
4
 
6
5
  let {
7
6
  ref = $bindable(),
8
7
  children,
9
- class: className = '',
10
- style: styleAttr = '',
8
+ class: className,
9
+ style: styleAttr,
11
10
  's-class': sClass,
12
11
  's-style': sStyle,
13
12
  ...rest
14
13
  }: AppProps = $props();
15
14
 
16
- let { classProps, styleProps, restProps } = $derived(makeComponentProps(rest));
17
-
18
- let componentClass = $derived(
19
- useClassName({
20
- baseClass: 'kit-application',
21
- className: `${className ?? ''}`.trim(),
22
- sClass,
23
- classProps
24
- })
25
- );
26
-
27
- let componentStyle = $derived(
28
- useStyles({
29
- styleAttr,
30
- sStyle,
31
- styleProps
32
- })
15
+ let attrs = $derived(
16
+ useComponentAttrs('kit-application', { className, sClass, styleAttr, sStyle }, rest)
33
17
  );
34
18
  </script>
35
19
 
36
- <div id="kit-app" bind:this={ref} class={componentClass} style={componentStyle} {...restProps}>
20
+ <div id="kit-app" bind:this={ref} class={attrs.class} style={attrs.style} {...attrs.rest}>
37
21
  {@render children?.()}
38
22
  </div>
39
23
 
40
- <style>:root {
24
+ <style>:global :where(:root) {
41
25
  --kit-shape-none: 0;
42
26
  --kit-shape-xs: 0.25rem;
43
27
  --kit-shape-sm: 0.375rem;
@@ -48,21 +32,20 @@
48
32
  --kit-animation-component: 150ms;
49
33
  --kit-outline-weight: 1px;
50
34
  }
51
-
52
- :global html {
53
- --kit-font-xs: 13px;
54
- --kit-font-sm: 14px;
55
- --kit-font-md: 15px;
56
- --kit-font-lg: 16px;
57
- --kit-font-xl: 17px;
58
- --kit-space-compact: 2px;
59
- --kit-space-default: 4px;
60
- --kit-space-comfortable: 6px;
61
- --kit-density-dense: -8px;
62
- --kit-density-compact: -4px;
63
- --kit-density-default: 0px;
64
- --kit-density-comfortable: 4px;
65
- --kit-density-spacious: 8px;
35
+ :global :where(html) {
36
+ --kit-font-xs: 0.8125rem;
37
+ --kit-font-sm: 0.875rem;
38
+ --kit-font-md: 0.9375rem;
39
+ --kit-font-lg: 1rem;
40
+ --kit-font-xl: 1.0625rem;
41
+ --kit-space-compact: 0.125rem;
42
+ --kit-space-default: 0.25rem;
43
+ --kit-space-comfortable: 0.375rem;
44
+ --kit-density-dense: -0.5rem;
45
+ --kit-density-compact: -0.25rem;
46
+ --kit-density-default: 0rem;
47
+ --kit-density-comfortable: 0.25rem;
48
+ --kit-density-spacious: 0.5rem;
66
49
  --kit-shadow-opacity: 30%;
67
50
  --kit-shadow-ambient-opacity: 15%;
68
51
  --kit-disabled-opacity: 0.55;
@@ -71,8 +54,7 @@
71
54
  'Segoe UI Symbol', 'Noto Color Emoji';
72
55
  --kit-color-transparent: transparent;
73
56
  }
74
- :global html:not([data-kit-theme]),
75
- :global [data-kit-theme=light] {
57
+ :global :where(html:not([data-kit-theme]), [data-kit-theme=light]) {
76
58
  color-scheme: light;
77
59
  --kit-color-surface: hsl(0 0% 100%);
78
60
  --kit-color-surface-1: hsl(240 15% 96.5%);
@@ -99,7 +81,7 @@
99
81
  --kit-color-on-info: hsl(0 0% 100%);
100
82
  --kit-color-focus: hsl(35 90% 56%);
101
83
  }
102
- :global [data-kit-theme=dark] {
84
+ :global :where([data-kit-theme=dark]) {
103
85
  color-scheme: dark;
104
86
  --kit-color-surface: hsl(240 3% 11%);
105
87
  --kit-color-surface-1: hsl(240 2% 17.5%);
@@ -127,7 +109,7 @@
127
109
  --kit-color-focus: hsl(35 90% 62%);
128
110
  }
129
111
  @media (prefers-color-scheme: light) {
130
- :global [data-kit-theme=system] {
112
+ :global :where([data-kit-theme=system]) {
131
113
  color-scheme: light;
132
114
  --kit-color-surface: hsl(0 0% 100%);
133
115
  --kit-color-surface-1: hsl(240 15% 96.5%);
@@ -156,7 +138,7 @@
156
138
  }
157
139
  }
158
140
  @media (prefers-color-scheme: dark) {
159
- :global [data-kit-theme=system] {
141
+ :global :where([data-kit-theme=system]) {
160
142
  color-scheme: dark;
161
143
  --kit-color-surface: hsl(240 3% 11%);
162
144
  --kit-color-surface-1: hsl(240 2% 17.5%);
@@ -1,77 +1,37 @@
1
1
  <script lang="ts">
2
- import { useClassName, useElevation, useStyles } from '../../utils';
3
- import { makeComponentProps } from '../../html-mapped';
2
+ import { useComponentAttrs, useElevation } from '../../utils';
4
3
  import type { AppbarProps } from './appbar.types.js';
5
4
 
6
5
  let {
7
6
  ref = $bindable(),
8
7
  is = 'header',
9
8
  children,
10
- class: className = '',
11
- style: styleAttr = '',
9
+ class: className,
10
+ style: styleAttr,
12
11
  's-class': sClass,
13
12
  's-style': sStyle,
14
13
  classContent,
15
14
  size = 'md',
16
15
  variant = 'filled',
17
16
  rounded = 0,
18
- background,
19
17
  color,
20
18
  density = 'default',
21
19
  elevation,
22
20
  ...rest
23
21
  }: AppbarProps = $props();
24
22
 
25
- let { classProps, styleProps, restProps } = $derived(
26
- makeComponentProps(rest as Record<string, unknown>)
23
+ let attrs = $derived(
24
+ useComponentAttrs('kit-appbar', { className, sClass, styleAttr, sStyle, color }, rest)
27
25
  );
28
-
29
26
  let elevationState = $derived(useElevation(elevation));
30
-
31
- let componentClass = $derived(
32
- useClassName({
33
- baseClass: 'kit-appbar',
34
- className: `${className ?? ''}`.trim(),
35
- sClass,
36
- classProps
37
- })
38
- );
39
-
40
- let normalizedClassContent = $derived(
41
- Array.isArray(classContent) ? classContent.filter(Boolean).join(' ') : classContent
42
- );
43
-
44
- let wrapperClass = $derived(
45
- useClassName({
46
- baseClass: 'kit-appbar__wrapper',
47
- className: normalizedClassContent
48
- })
49
- );
50
-
51
- let componentStyle = $derived(
52
- useStyles({
53
- styleAttr,
54
- sStyle,
55
- styleProps
56
- })
57
- );
58
-
59
- let resolvedStyle = $derived(
60
- [
61
- componentStyle,
62
- color ? `--kit-appbar-fg:${color && `var(--kit-color-${color})`}` : '',
63
- background ? `--kit-appbar-bg:${background && `var(--kit-color-${background})`}` : ''
64
- ]
65
- .filter(Boolean)
66
- .join('; ')
67
- );
27
+ let hasOutline = $derived(variant === 'outline' || variant === 'surface');
68
28
  </script>
69
29
 
70
30
  <svelte:element
71
31
  this={is}
72
32
  bind:this={ref}
73
- class={componentClass}
74
- style={resolvedStyle}
33
+ class={attrs.class}
34
+ style={attrs.style}
75
35
  data-size={size}
76
36
  data-variant={variant}
77
37
  data-density={density}
@@ -79,153 +39,208 @@
79
39
  data-elevation={elevationState.base}
80
40
  data-elevation-hover={elevationState.hover}
81
41
  data-elevation-active={elevationState.active}
82
- {...restProps}
42
+ {...attrs.rest}
83
43
  >
84
- {#if variant === 'outline'}
44
+ {#if hasOutline}
85
45
  <span class="outline"></span>
86
46
  {/if}
87
47
 
88
- <div class={wrapperClass}>
48
+ <div class={['kit-appbar__wrapper', classContent]}>
89
49
  {@render children?.()}
90
50
  </div>
91
51
  </svelte:element>
92
52
 
93
- <style>
94
- .kit-appbar {
95
- display: flex;
96
- align-items: center;
97
- box-sizing: border-box;
98
- position: relative;
99
- width: 100%;
100
- gap: var(--kit-appbar-gap);
101
- min-height: calc(var(--kit-appbar-h) + var(--kit-appbar-density-offset) / 2);
102
- padding: calc(var(--kit-appbar-p) + var(--kit-appbar-density-offset) / 2);
103
- border-radius: var(--kit-appbar-radius);
104
- color: var(--kit-appbar-fg);
105
- background-color: var(--kit-appbar-bg);
106
- overflow: hidden;
107
- font-size: var(--kit-appbar-font);
108
- transition:
109
- background 140ms ease,
110
- color 140ms ease,
111
- box-shadow 140ms ease,
112
- translate 140ms ease;
113
- }
114
-
115
- /**
116
- * rounded
117
- * @link ...
118
- */
119
- .kit-appbar[data-rounded='0'] {
120
- --kit-appbar-radius: var(--kit-shape-none);
121
- }
122
- .kit-appbar[data-rounded='xs'] {
123
- --kit-appbar-radius: var(--kit-shape-xs);
124
- }
125
- .kit-appbar[data-rounded='sm'] {
126
- --kit-appbar-radius: var(--kit-shape-sm);
127
- }
128
- .kit-appbar[data-rounded='md'] {
129
- --kit-appbar-radius: var(--kit-shape-md);
130
- }
131
- .kit-appbar[data-rounded='lg'] {
132
- --kit-appbar-radius: var(--kit-shape-lg);
133
- }
134
- .kit-appbar[data-rounded='xl'] {
135
- --kit-appbar-radius: var(--kit-shape-xl);
136
- }
137
- .kit-appbar[data-rounded='full'] {
138
- --kit-appbar-radius: var(--kit-shape-full);
139
- }
140
-
141
- /**
142
- * density
143
- * @link no links
144
- */
145
- .kit-appbar[data-density='compact'] {
146
- --kit-appbar-density-offset: var(--kit-density-compact);
147
- }
148
- .kit-appbar[data-density='default'] {
149
- --kit-appbar-density-offset: var(--kit-density-default);
150
- }
151
- .kit-appbar[data-density='comfortable'] {
152
- --kit-appbar-density-offset: var(--kit-density-comfortable);
153
- }
154
-
155
- /**
156
- * variant
157
- * @link no links...
158
- */
159
- .kit-appbar[data-variant='filled'] {
160
- --kit-appbar-bg: var(--kit-color-surface-1);
161
- --kit-appbar-fg: var(--kit-color-text);
162
-
163
- --kit-appbar-hover-bg: color-mix(in oklab, var(--kit-appbar-bg), black 10%);
164
- --kit-appbar-active-bg: color-mix(in oklab, var(--kit-appbar-bg), black 16%);
165
- }
166
- .kit-appbar[data-variant='outline'] {
167
- --kit-appbar-bg: transparent;
168
- --kit-appbar-fg: var(--kit-color-text);
169
- --kit-appbar-bd: var(--kit-appbar-fg);
170
-
171
- --kit-appbar-hover-bg: color-mix(in oklab, var(--kit-appbar-fg), transparent 80%);
172
- --kit-appbar-active-bg: color-mix(in oklab, var(--kit-appbar-fg), transparent 92%);
173
- }
174
- .kit-appbar[data-variant='text'] {
175
- --kit-appbar-bg: transparent;
176
- --kit-appbar-fg: var(--kit-color-text);
177
-
178
- --kit-appbar-hover-bg: color-mix(in oklab, var(--kit-appbar-fg), transparent 80%);
179
- --kit-appbar-active-bg: color-mix(in oklab, var(--kit-appbar-fg), transparent 92%);
180
- }
181
-
182
- /**
183
- * size
184
- * @link nothing...
185
- */
186
- .kit-appbar[data-size='xs'] {
187
- --kit-appbar-h: 32px;
188
- --kit-appbar-p: 8px;
189
- --kit-appbar-gap: var(--kit-space-compact);
190
- --kit-appbar-font: var(--kit-font-xs);
191
- }
192
- .kit-appbar[data-size='sm'] {
193
- --kit-appbar-h: 40px;
194
- --kit-appbar-p: 10px;
195
- --kit-appbar-gap: var(--kit-space-default);
196
- --kit-appbar-font: var(--kit-font-sm);
197
- }
198
- .kit-appbar[data-size='md'] {
199
- --kit-appbar-h: 48px;
200
- --kit-appbar-p: 12px;
201
- --kit-appbar-gap: var(--kit-space-default);
202
- --kit-appbar-font: var(--kit-font-md);
203
- }
204
- .kit-appbar[data-size='lg'] {
205
- --kit-appbar-h: 56px;
206
- --kit-appbar-p: 16px;
207
- --kit-appbar-gap: var(--kit-space-default);
208
- --kit-appbar-font: var(--kit-font-lg);
209
- }
210
- .kit-appbar[data-size='xl'] {
211
- --kit-appbar-h: 64px;
212
- --kit-appbar-p: 20px;
213
- --kit-appbar-gap: var(--kit-space-comfortable);
214
- --kit-appbar-font: var(--kit-font-xl);
215
- }
216
-
217
- .kit-appbar__wrapper {
218
- position: relative;
219
- z-index: 1;
220
- display: flex;
221
- align-items: center;
222
- flex-direction: row;
223
- gap: var(--kit-appbar-gap);
224
- width: 100%;
225
- margin: 0 auto;
226
- }
227
-
228
- .kit-appbar .outline {
229
- --outline-color: var(--kit-appbar-bd);
230
- }
231
- </style>
53
+ <style>:where(.kit-appbar) {
54
+ --kit-appbar-color: initial;
55
+ --kit-appbar-on-color: initial;
56
+ --kit-appbar-active-fg: initial;
57
+ --kit-appbar-active-shade: initial;
58
+ --kit-appbar-hover-fg: initial;
59
+ --kit-appbar-pressed-fg: initial;
60
+ --kit-appbar-bg: var(--kit-appbar-color, var(--kit-color-surface-1));
61
+ --kit-appbar-fg: var(--kit-appbar-on-color, var(--kit-appbar-contrast, var(--kit-color-text)));
62
+ --kit-appbar-ink: var(--kit-appbar-color, var(--kit-color-text));
63
+ --kit-appbar-hover: color-mix(in oklab, var(--kit-appbar-bg), var(--kit-appbar-fg) 8%);
64
+ --kit-appbar-pressed: color-mix(in oklab, var(--kit-appbar-bg), var(--kit-appbar-fg) 14%);
65
+ --kit-appbar-soft: color-mix(in oklab, var(--kit-appbar-bg) 16%, transparent);
66
+ --kit-appbar-border: color-mix(in oklab, var(--kit-appbar-bg), var(--kit-appbar-fg) 20%);
67
+ --kit-appbar-active: color-mix(
68
+ in oklab,
69
+ var(--kit-appbar-color),
70
+ var(--kit-appbar-fg) var(--kit-appbar-active-shade, 14%)
71
+ );
72
+ }
73
+ @supports (color: color(from red srgb-linear r g b)) {
74
+ :where(.kit-appbar) {
75
+ --kit-appbar-contrast: color(from var(--kit-appbar-color) srgb-linear clamp(0, (0.1791 - (0.2126 * r + 0.7152 * g + 0.0722 * b)) * 100000, 1) clamp(0, (0.1791 - (0.2126 * r + 0.7152 * g + 0.0722 * b)) * 100000, 1) clamp(0, (0.1791 - (0.2126 * r + 0.7152 * g + 0.0722 * b)) * 100000, 1)/1);
76
+ }
77
+ }
78
+
79
+ .kit-appbar {
80
+ position: relative;
81
+ display: flex;
82
+ align-items: center;
83
+ gap: var(--kit-appbar-gap);
84
+ box-sizing: border-box;
85
+ width: 100%;
86
+ min-height: calc(var(--kit-appbar-h) + var(--kit-appbar-density-offset) / 2);
87
+ padding: calc(var(--kit-appbar-p) + var(--kit-appbar-density-offset) / 2);
88
+ overflow: hidden;
89
+ border-radius: var(--kit-appbar-radius);
90
+ background-color: var(--kit-appbar-bg);
91
+ color: var(--kit-appbar-fg);
92
+ font-size: var(--kit-appbar-font);
93
+ transition-property: background-color, color, border-color, box-shadow;
94
+ transition-duration: var(--kit-animation-component);
95
+ transition-timing-function: ease;
96
+ }
97
+ @media (prefers-reduced-motion: reduce) {
98
+ .kit-appbar {
99
+ transition: none;
100
+ }
101
+ }
102
+ .kit-appbar__wrapper {
103
+ position: relative;
104
+ z-index: 1;
105
+ display: flex;
106
+ flex-direction: row;
107
+ align-items: center;
108
+ gap: var(--kit-appbar-gap);
109
+ width: 100%;
110
+ margin: 0 auto;
111
+ }
112
+
113
+ /**
114
+ * size
115
+ * @link https://lapikit.dev/docs/components/appbar#size
116
+ */
117
+ :where(.kit-appbar[data-size=xs]) {
118
+ --kit-appbar-h: 2rem;
119
+ --kit-appbar-p: 0.5rem;
120
+ --kit-appbar-gap: 0.125rem;
121
+ --kit-appbar-font: var(--kit-font-xs);
122
+ }
123
+
124
+ :where(.kit-appbar[data-size=sm]) {
125
+ --kit-appbar-h: 2.5rem;
126
+ --kit-appbar-p: 0.625rem;
127
+ --kit-appbar-gap: 0.25rem;
128
+ --kit-appbar-font: var(--kit-font-sm);
129
+ }
130
+
131
+ :where(.kit-appbar[data-size=md]) {
132
+ --kit-appbar-h: 3rem;
133
+ --kit-appbar-p: 0.75rem;
134
+ --kit-appbar-gap: 0.25rem;
135
+ --kit-appbar-font: var(--kit-font-md);
136
+ }
137
+
138
+ :where(.kit-appbar[data-size=lg]) {
139
+ --kit-appbar-h: 3.5rem;
140
+ --kit-appbar-p: 1rem;
141
+ --kit-appbar-gap: 0.25rem;
142
+ --kit-appbar-font: var(--kit-font-lg);
143
+ }
144
+
145
+ :where(.kit-appbar[data-size=xl]) {
146
+ --kit-appbar-h: 4rem;
147
+ --kit-appbar-p: 1.25rem;
148
+ --kit-appbar-gap: 0.375rem;
149
+ --kit-appbar-font: var(--kit-font-xl);
150
+ }
151
+
152
+ /**
153
+ * variant
154
+ * @link https://lapikit.dev/docs/components/appbar#variants
155
+ */
156
+ :where(.kit-appbar[data-variant=tonal]) {
157
+ --kit-appbar-bg: color-mix(in oklab, var(--kit-appbar-ink) 16%, transparent);
158
+ --kit-appbar-fg: var(--kit-appbar-ink);
159
+ --kit-appbar-border: transparent;
160
+ --kit-appbar-active: color-mix(in oklab, var(--kit-appbar-ink) 28%, transparent);
161
+ --kit-appbar-active-fg: var(--kit-appbar-ink);
162
+ }
163
+
164
+ :where(.kit-appbar[data-variant=outline]) {
165
+ --kit-appbar-bg: transparent;
166
+ --kit-appbar-fg: var(--kit-appbar-ink);
167
+ --kit-appbar-border: var(--kit-appbar-color, var(--kit-color-border));
168
+ --kit-appbar-active: color-mix(in oklab, var(--kit-appbar-ink) 14%, transparent);
169
+ --kit-appbar-active-fg: var(--kit-appbar-ink);
170
+ }
171
+
172
+ :where(.kit-appbar[data-variant=surface]) {
173
+ --kit-appbar-bg: color-mix(in oklab, var(--kit-appbar-ink) 8%, transparent);
174
+ --kit-appbar-fg: var(--kit-appbar-ink);
175
+ --kit-appbar-border: color-mix(in oklab, var(--kit-appbar-ink) 35%, transparent);
176
+ --kit-appbar-active: color-mix(in oklab, var(--kit-appbar-ink) 18%, transparent);
177
+ --kit-appbar-active-fg: var(--kit-appbar-ink);
178
+ }
179
+
180
+ :where(.kit-appbar[data-variant=text]) {
181
+ --kit-appbar-bg: transparent;
182
+ --kit-appbar-fg: var(--kit-appbar-ink);
183
+ --kit-appbar-border: transparent;
184
+ --kit-appbar-active: color-mix(in oklab, var(--kit-appbar-ink) 14%, transparent);
185
+ --kit-appbar-active-fg: var(--kit-appbar-ink);
186
+ }
187
+
188
+ :where(.kit-appbar .outline) {
189
+ --outline-color: var(--kit-appbar-border);
190
+ }
191
+
192
+ /**
193
+ * rounded
194
+ * @link https://lapikit.dev/docs/customize
195
+ */
196
+ :where(.kit-appbar[data-rounded="0"]) {
197
+ --kit-appbar-radius: var(--kit-shape-none);
198
+ }
199
+
200
+ :where(.kit-appbar[data-rounded=xs]) {
201
+ --kit-appbar-radius: var(--kit-shape-xs);
202
+ }
203
+
204
+ :where(.kit-appbar[data-rounded=sm]) {
205
+ --kit-appbar-radius: var(--kit-shape-sm);
206
+ }
207
+
208
+ :where(.kit-appbar[data-rounded=md]) {
209
+ --kit-appbar-radius: var(--kit-shape-md);
210
+ }
211
+
212
+ :where(.kit-appbar[data-rounded=lg]) {
213
+ --kit-appbar-radius: var(--kit-shape-lg);
214
+ }
215
+
216
+ :where(.kit-appbar[data-rounded=xl]) {
217
+ --kit-appbar-radius: var(--kit-shape-xl);
218
+ }
219
+
220
+ :where(.kit-appbar[data-rounded=full]) {
221
+ --kit-appbar-radius: var(--kit-shape-full);
222
+ }
223
+
224
+ /**
225
+ * density
226
+ * @link https://lapikit.dev/docs/components/appbar#density
227
+ */
228
+ :where(.kit-appbar[data-density=dense]) {
229
+ --kit-appbar-density-offset: var(--kit-density-dense);
230
+ }
231
+
232
+ :where(.kit-appbar[data-density=compact]) {
233
+ --kit-appbar-density-offset: var(--kit-density-compact);
234
+ }
235
+
236
+ :where(.kit-appbar[data-density=default]) {
237
+ --kit-appbar-density-offset: var(--kit-density-default);
238
+ }
239
+
240
+ :where(.kit-appbar[data-density=comfortable]) {
241
+ --kit-appbar-density-offset: var(--kit-density-comfortable);
242
+ }
243
+
244
+ :where(.kit-appbar[data-density=spacious]) {
245
+ --kit-appbar-density-offset: var(--kit-density-spacious);
246
+ }</style>
@@ -1,15 +1,15 @@
1
- import type { Component, DensityType, ElevationProps, RoundedType, SizeType } from '../../@types';
2
- type Variant = 'filled' | 'outline' | 'text';
1
+ import type { ClassValue } from 'svelte/elements';
2
+ import type { ColorProps, Component, ElevationProps, RoundedType, SizeType } from '../../@types';
3
+ type Variant = 'filled' | 'tonal' | 'outline' | 'surface' | 'text';
3
4
  export interface AppbarProps extends Component {
4
5
  ref?: HTMLElement | null;
5
6
  is?: 'div' | 'header' | 'nav';
6
7
  variant?: Variant;
7
8
  rounded?: RoundedType | 'full';
8
- density?: DensityType;
9
+ density?: 'dense' | 'compact' | 'default' | 'comfortable' | 'spacious';
9
10
  size?: SizeType;
10
- color?: string;
11
- background?: string;
12
- classContent?: string | string[] | undefined;
11
+ color?: ColorProps;
12
+ classContent?: ClassValue;
13
13
  elevation?: ElevationProps;
14
14
  }
15
15
  export {};