@x33025/sveltely 0.1.2 → 0.1.4

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 (76) hide show
  1. package/dist/components/Library/AnimatedNumber/AnimatedNumber.demo.svelte +1 -1
  2. package/dist/components/Library/AsyncButton/AsyncButton.svelte +42 -16
  3. package/dist/components/Library/Button/Button.svelte +21 -13
  4. package/dist/components/Library/Calendar/Calendar.svelte +16 -16
  5. package/dist/components/Library/Checkbox/Checkbox.svelte +13 -14
  6. package/dist/components/Library/ChipInput/ChipInput.demo.svelte +1 -1
  7. package/dist/components/Library/ChipInput/ChipInput.svelte +7 -4
  8. package/dist/components/Library/Dropdown/Action.svelte +60 -0
  9. package/dist/components/Library/Dropdown/Action.svelte.d.ts +11 -0
  10. package/dist/components/Library/Dropdown/Divider.svelte +5 -0
  11. package/dist/components/Library/Dropdown/Divider.svelte.d.ts +19 -0
  12. package/dist/components/Library/Dropdown/Dropdown.demo.svelte +182 -72
  13. package/dist/components/Library/Dropdown/Dropdown.demo.svelte.d.ts +2 -1
  14. package/dist/components/Library/Dropdown/Dropdown.svelte +78 -267
  15. package/dist/components/Library/Dropdown/Dropdown.svelte.d.ts +17 -16
  16. package/dist/components/Library/Dropdown/Item.svelte +73 -0
  17. package/dist/components/Library/Dropdown/Item.svelte.d.ts +31 -0
  18. package/dist/components/Library/Dropdown/Section.svelte +34 -0
  19. package/dist/components/Library/Dropdown/Section.svelte.d.ts +8 -0
  20. package/dist/components/Library/Dropdown/context.d.ts +34 -0
  21. package/dist/components/Library/Dropdown/context.js +6 -0
  22. package/dist/components/Library/Dropdown/index.d.ts +13 -2
  23. package/dist/components/Library/Dropdown/index.js +11 -1
  24. package/dist/components/Library/Floating/Floating.svelte +10 -7
  25. package/dist/components/Library/ImageMask/BrushPreview.svelte +6 -6
  26. package/dist/components/Library/ImageMask/ImageMask.demo.svelte +7 -7
  27. package/dist/components/Library/ImageMask/MaskLayer.svelte +3 -3
  28. package/dist/components/Library/Label/Label.svelte +2 -4
  29. package/dist/components/Library/NavigationStack/NavigationStack.svelte +17 -7
  30. package/dist/components/Library/NavigationStack/Toolbar.svelte +7 -2
  31. package/dist/components/Library/NumberField/NumberField.svelte +14 -9
  32. package/dist/components/Library/Pagination/Pagination.svelte +16 -20
  33. package/dist/components/Library/Popover/Popover.demo.svelte +2 -2
  34. package/dist/components/Library/Popover/Popover.svelte +7 -4
  35. package/dist/components/Library/ScrollView/ScrollView.svelte +140 -3
  36. package/dist/components/Library/ScrollView/ScrollView.svelte.d.ts +28 -0
  37. package/dist/components/Library/ScrollView/index.d.ts +1 -0
  38. package/dist/components/Library/{SearchInput/SearchInput.demo.svelte → SearchField/SearchField.demo.svelte} +4 -4
  39. package/dist/components/Library/SearchField/SearchField.demo.svelte.d.ts +8 -0
  40. package/dist/components/Library/{SearchInput/SearchInput.svelte → SearchField/SearchField.svelte} +26 -30
  41. package/dist/components/Library/{SearchInput/SearchInput.svelte.d.ts → SearchField/SearchField.svelte.d.ts} +3 -3
  42. package/dist/components/Library/SearchField/index.d.ts +1 -0
  43. package/dist/components/Library/SearchField/index.js +1 -0
  44. package/dist/components/Library/SegmentedPicker/SegmentedPicker.demo.svelte +1 -1
  45. package/dist/components/Library/SegmentedPicker/SegmentedPicker.svelte +9 -9
  46. package/dist/components/Library/Sheet/Sheet.demo.svelte +1 -1
  47. package/dist/components/Library/Sheet/Sheet.svelte +8 -5
  48. package/dist/components/Library/Slider/Slider.demo.svelte +1 -1
  49. package/dist/components/Library/Slider/Slider.svelte +11 -10
  50. package/dist/components/Library/Spinner/Spinner.demo.svelte +1 -1
  51. package/dist/components/Library/Switch/Switch.svelte +6 -11
  52. package/dist/components/Library/TextField/TextField.svelte +14 -9
  53. package/dist/components/Library/{TokenSearchInput/TokenSearchInput.demo.svelte → TokenSearchField/TokenSearchField.demo.svelte} +4 -4
  54. package/dist/components/Library/TokenSearchField/TokenSearchField.demo.svelte.d.ts +9 -0
  55. package/dist/components/Library/{TokenSearchInput/TokenSearchInput.svelte → TokenSearchField/TokenSearchField.svelte} +70 -66
  56. package/dist/components/Library/{TokenSearchInput/TokenSearchInput.svelte.d.ts → TokenSearchField/TokenSearchField.svelte.d.ts} +3 -3
  57. package/dist/components/Library/TokenSearchField/index.d.ts +1 -0
  58. package/dist/components/Library/TokenSearchField/index.js +1 -0
  59. package/dist/components/Library/WheelPicker/WheelColumn.svelte +4 -10
  60. package/dist/components/Library/WheelPicker/WheelPicker.svelte +5 -9
  61. package/dist/components/Local/HeroCard.svelte +5 -3
  62. package/dist/components/Local/StyleControls.svelte +58 -27
  63. package/dist/components/Local/StyleControls.svelte.d.ts +3 -1
  64. package/dist/index.d.ts +3 -2
  65. package/dist/index.js +2 -2
  66. package/dist/style/index.css +9 -5
  67. package/dist/style.css +60 -29
  68. package/package.json +1 -1
  69. package/dist/components/Library/Dropdown/types.d.ts +0 -30
  70. package/dist/components/Library/Dropdown/types.js +0 -1
  71. package/dist/components/Library/SearchInput/SearchInput.demo.svelte.d.ts +0 -8
  72. package/dist/components/Library/SearchInput/index.d.ts +0 -1
  73. package/dist/components/Library/SearchInput/index.js +0 -1
  74. package/dist/components/Library/TokenSearchInput/TokenSearchInput.demo.svelte.d.ts +0 -9
  75. package/dist/components/Library/TokenSearchInput/index.d.ts +0 -1
  76. package/dist/components/Library/TokenSearchInput/index.js +0 -1
@@ -1,11 +1,39 @@
1
1
  import type { Snippet } from 'svelte';
2
2
  import { type StyleProps } from '../../../style/surface';
3
3
  import type { ScrollAxis } from '../../../style/scroll';
4
+ export type ScrollGeometry = {
5
+ axis: ScrollAxis;
6
+ offset: {
7
+ x: number;
8
+ y: number;
9
+ };
10
+ viewport: {
11
+ width: number;
12
+ height: number;
13
+ };
14
+ content: {
15
+ width: number;
16
+ height: number;
17
+ };
18
+ remaining: {
19
+ top: number;
20
+ right: number;
21
+ bottom: number;
22
+ left: number;
23
+ };
24
+ progress: {
25
+ x: number;
26
+ y: number;
27
+ };
28
+ };
4
29
  type Props = {
5
30
  children: Snippet;
6
31
  viewport?: HTMLElement | null;
7
32
  axis?: ScrollAxis;
8
33
  contentStyles?: StyleProps;
34
+ onScroll?: (geometry: ScrollGeometry) => void;
35
+ scrollGradient?: boolean;
36
+ scrollGradientSize?: number | string;
9
37
  } & StyleProps;
10
38
  declare const ScrollView: import("svelte").Component<Props, {}, "viewport">;
11
39
  type ScrollView = ReturnType<typeof ScrollView>;
@@ -1 +1,2 @@
1
1
  export { default } from './ScrollView.svelte';
2
+ export type { ScrollGeometry } from './ScrollView.svelte';
@@ -1,17 +1,17 @@
1
1
  <script module lang="ts">
2
2
  export const demo = {
3
- name: 'SearchInput',
3
+ name: 'SearchField',
4
4
  description: 'Search field with icon, input, and optional confirmation hint.'
5
5
  };
6
6
  </script>
7
7
 
8
8
  <script lang="ts">
9
- import SearchInput from './SearchInput.svelte';
9
+ import SearchField from './SearchField.svelte';
10
10
 
11
11
  let value = $state('');
12
12
  </script>
13
13
 
14
14
  <div class="vstack w-full max-w-sm gap-2">
15
- <SearchInput bind:value placeholder="Search components..." />
16
- <p class="text-xs text-zinc-500">Value: {value || 'empty'}</p>
15
+ <SearchField bind:value placeholder="Search components..." />
16
+ <p class="text-xs text-[var(--sveltely-secondary-color)]">Value: {value || 'empty'}</p>
17
17
  </div>
@@ -0,0 +1,8 @@
1
+ export declare const demo: {
2
+ name: string;
3
+ description: string;
4
+ };
5
+ import SearchField from './SearchField.svelte';
6
+ declare const SearchField: import("svelte").Component<Record<string, never>, {}, "">;
7
+ type SearchField = ReturnType<typeof SearchField>;
8
+ export default SearchField;
@@ -6,7 +6,8 @@
6
6
  type Props = {
7
7
  value?: string;
8
8
  radiusSource?: boolean;
9
- } & StyleProps & Omit<HTMLInputAttributes, 'children' | 'type' | 'value' | 'class' | 'style'>;
9
+ } & StyleProps &
10
+ Omit<HTMLInputAttributes, 'children' | 'type' | 'value' | 'class' | 'style'>;
10
11
 
11
12
  let {
12
13
  value = $bindable(''),
@@ -19,70 +20,65 @@
19
20
  const extractedStyleProps = $derived.by(() => extractStyleProps(restProps));
20
21
  const styleProps = $derived(extractedStyleProps.styleProps);
21
22
  const props = $derived(extractedStyleProps.restProps);
22
- const rootStyle = $derived.by(() => surfaceStyle(styleProps, 'search-input'));
23
+ const rootStyle = $derived.by(() => surfaceStyle(styleProps, 'search-field'));
23
24
  </script>
24
25
 
25
26
  <label
26
- class="search-input"
27
+ class="search-field"
27
28
  style={rootStyle}
28
29
  data-disabled={disabled ? 'true' : 'false'}
29
30
  data-popover-radius-source={radiusSource ? 'true' : undefined}
30
31
  >
31
- <span class="search-input-icon" aria-hidden="true">
32
+ <span class="search-field-icon" aria-hidden="true">
32
33
  <SearchIcon class="size-4" />
33
34
  </span>
34
- <input
35
- type="search"
36
- bind:value
37
- {disabled}
38
- {placeholder}
39
- class="search-input-field"
40
- {...props}
41
- />
35
+ <input type="search" bind:value {disabled} {placeholder} class="search-field-input" {...props} />
42
36
  </label>
43
37
 
44
38
  <style>
45
- .search-input {
39
+ .search-field {
46
40
  display: inline-flex;
47
41
  width: 100%;
48
42
  align-items: center;
49
43
  border: 1px solid var(--sveltely-border-color);
50
44
  border-radius: var(--sveltely-border-radius);
51
- background: white;
52
- color: var(--color-zinc-900);
53
- gap: var(--search-input-gap, calc(var(--sveltely-padding-x) * 0.67));
54
- padding:
55
- var(--search-input-padding-y, calc(var(--sveltely-padding-y) * 0.67))
56
- var(--search-input-padding-x, var(--sveltely-padding-x))
57
- var(--search-input-padding-y, calc(var(--sveltely-padding-y) * 0.67))
58
- var(--search-input-padding-leading, calc(var(--sveltely-padding-y) * 0.67));
59
- font-size: var(--search-input-font-size, 0.875rem);
45
+ background: var(--sveltely-background-color);
46
+ color: var(--sveltely-primary-color);
47
+ gap: var(--search-field-gap, calc(var(--sveltely-padding-x) * 0.67));
48
+ padding: var(--search-field-padding-y, calc(var(--sveltely-padding-y) * 0.67))
49
+ var(--search-field-padding-x, var(--sveltely-padding-x))
50
+ var(--search-field-padding-y, calc(var(--sveltely-padding-y) * 0.67))
51
+ var(--search-field-padding-leading, calc(var(--sveltely-padding-y) * 0.67));
52
+ font-size: var(--search-field-font-size, 0.875rem);
60
53
  line-height: 1.25rem;
61
- transition: color 150ms, border-color 150ms, background-color 150ms;
54
+ transition:
55
+ color 150ms,
56
+ border-color 150ms,
57
+ background-color 150ms;
62
58
  }
63
59
 
64
- .search-input:focus-within {
65
- border-color: color-mix(in oklab, var(--sveltely-primary-color) 50%, white);
60
+ .search-field:focus-within {
61
+ border-color: color-mix(in oklab, var(--sveltely-active-color) 50%, white);
66
62
  }
67
63
 
68
- .search-input[data-disabled='true'] {
64
+ .search-field[data-disabled='true'] {
69
65
  cursor: not-allowed;
70
66
  opacity: 0.6;
71
67
  }
72
68
 
73
- .search-input-icon {
69
+ .search-field-icon {
74
70
  flex-shrink: 0;
75
- color: var(--color-zinc-500);
71
+ color: var(--sveltely-secondary-color);
76
72
  }
77
73
 
78
- .search-input-field {
74
+ .search-field-input {
79
75
  min-width: 0;
80
76
  flex: 1 1 auto;
81
77
  background: transparent;
82
78
  outline: none;
83
79
  }
84
80
 
85
- .search-input-field::-webkit-search-cancel-button {
81
+ .search-field-input::-webkit-search-cancel-button {
86
82
  appearance: none;
87
83
  }
88
84
  </style>
@@ -4,6 +4,6 @@ type Props = {
4
4
  value?: string;
5
5
  radiusSource?: boolean;
6
6
  } & StyleProps & Omit<HTMLInputAttributes, 'children' | 'type' | 'value' | 'class' | 'style'>;
7
- declare const SearchInput: import("svelte").Component<Props, {}, "value">;
8
- type SearchInput = ReturnType<typeof SearchInput>;
9
- export default SearchInput;
7
+ declare const SearchField: import("svelte").Component<Props, {}, "value">;
8
+ type SearchField = ReturnType<typeof SearchField>;
9
+ export default SearchField;
@@ -0,0 +1 @@
1
+ export { default } from './SearchField.svelte';
@@ -0,0 +1 @@
1
+ export { default } from './SearchField.svelte';
@@ -19,5 +19,5 @@
19
19
 
20
20
  <div class="vstack center gap-2">
21
21
  <SegmentedPicker {options} bind:value />
22
- <p class="text-xs text-zinc-500">Selected: {value}</p>
22
+ <p class="text-xs text-[var(--sveltely-secondary-color)]">Selected: {value}</p>
23
23
  </div>
@@ -16,7 +16,8 @@
16
16
  options: Option[];
17
17
  value: string;
18
18
  disabled?: boolean;
19
- } & StyleProps & Record<string, unknown> = $props();
19
+ } & StyleProps &
20
+ Record<string, unknown> = $props();
20
21
 
21
22
  const extractedStyleProps = $derived.by(() => extractStyleProps(restProps));
22
23
  const styleProps = $derived(extractedStyleProps.styleProps);
@@ -65,7 +66,7 @@
65
66
  --segmented-picker-scale: calc(var(--segmented-picker-font-size) / 0.875rem);
66
67
  --sveltely-nested-inset: var(--segmented-picker-inset);
67
68
  border-radius: var(--sveltely-border-radius);
68
- background: var(--color-zinc-100);
69
+ background: var(--sveltely-inactive-color);
69
70
  gap: var(--segmented-picker-inset);
70
71
  font-size: var(--segmented-picker-font-size);
71
72
  padding: var(--segmented-picker-inset);
@@ -79,8 +80,7 @@
79
80
  .segmented-picker-button {
80
81
  border-radius: var(--sveltely-border-radius-nested);
81
82
  transition: background-color 150ms;
82
- padding:
83
- calc(var(--sveltely-padding-y) * 0.33 * var(--segmented-picker-scale))
83
+ padding: calc(var(--sveltely-padding-y) * 0.33 * var(--segmented-picker-scale))
84
84
  calc(var(--sveltely-padding-x) * 0.83 * var(--segmented-picker-scale));
85
85
  }
86
86
 
@@ -89,18 +89,18 @@
89
89
  }
90
90
 
91
91
  .segmented-picker-button-active {
92
- background: var(--sveltely-primary-color);
93
- color: white;
92
+ background: var(--sveltely-active-color);
93
+ color: var(--sveltely-background-color);
94
94
  }
95
95
 
96
96
  .segmented-picker-button-disabled {
97
97
  cursor: not-allowed;
98
- color: var(--color-zinc-400);
98
+ color: var(--sveltely-secondary-color);
99
99
  pointer-events: none;
100
100
  }
101
101
 
102
102
  .segmented-picker-button-disabled-selected {
103
- background: color-mix(in oklab, var(--sveltely-primary-color) 35%, white);
104
- color: var(--color-zinc-400);
103
+ background: color-mix(in oklab, var(--sveltely-active-color) 35%, white);
104
+ color: var(--sveltely-secondary-color);
105
105
  }
106
106
  </style>
@@ -15,7 +15,7 @@
15
15
  {/snippet}
16
16
 
17
17
  <div class="vstack gap-3">
18
- <p class="text-sm text-zinc-700">This is a simple sheet example.</p>
18
+ <p class="text-sm text-[var(--sveltely-primary-color)]">This is a simple sheet example.</p>
19
19
  <div class="rounded border border-gray-200/70 p-3 text-sm text-gray-700">
20
20
  <div>Panel one content.</div>
21
21
  <div class="mt-2">Panel two content.</div>
@@ -2,7 +2,7 @@
2
2
  import type { Snippet } from 'svelte';
3
3
  import { portalContent } from '../../../actions/portal';
4
4
  import { extractStyleProps, surfaceStyle, type StyleProps } from '../../../style/surface';
5
- interface Props {
5
+ interface Props {
6
6
  trigger?: Snippet;
7
7
  open?: boolean;
8
8
  label?: string;
@@ -87,13 +87,16 @@ interface Props {
87
87
  align-items: center;
88
88
  border: 1px solid var(--sveltely-border-color);
89
89
  border-radius: var(--sveltely-border-radius);
90
- background: white;
91
- color: var(--color-zinc-800);
90
+ background: var(--sveltely-background-color);
91
+ color: var(--sveltely-primary-color);
92
92
  gap: var(--sveltely-gap);
93
93
  padding: calc(var(--sveltely-padding-y) * 0.67) var(--sveltely-padding-x);
94
94
  font-size: 0.875rem;
95
95
  line-height: 1.25rem;
96
- transition: color 150ms, border-color 150ms, background-color 150ms;
96
+ transition:
97
+ color 150ms,
98
+ border-color 150ms,
99
+ background-color 150ms;
97
100
  }
98
101
 
99
102
  .sheet-trigger:hover {
@@ -102,7 +105,7 @@ interface Props {
102
105
 
103
106
  .sheet {
104
107
  border-radius: var(--sveltely-border-radius);
105
- background: white;
108
+ background: var(--sveltely-background-color);
106
109
  padding: calc(var(--sveltely-padding-y) * 1.33) calc(var(--sveltely-padding-x) * 1.33);
107
110
  }
108
111
 
@@ -13,5 +13,5 @@
13
13
 
14
14
  <div class="vstack w-full max-w-sm gap-2">
15
15
  <Slider bind:value min={0} max={100} />
16
- <p class="text-xs text-zinc-500">Value: {value}</p>
16
+ <p class="text-xs text-[var(--sveltely-secondary-color)]">Value: {value}</p>
17
17
  </div>
@@ -14,7 +14,8 @@
14
14
  max?: number;
15
15
  step?: number | string;
16
16
  disabled?: boolean;
17
- } & StyleProps & Record<string, unknown> = $props();
17
+ } & StyleProps &
18
+ Record<string, unknown> = $props();
18
19
 
19
20
  const extractedStyleProps = $derived.by(() => extractStyleProps(props));
20
21
  const styleProps = $derived(extractedStyleProps.styleProps);
@@ -65,7 +66,7 @@
65
66
  }
66
67
 
67
68
  .slider:focus-visible {
68
- outline: 2px solid color-mix(in oklab, var(--sveltely-primary-color) 35%, white);
69
+ outline: 2px solid color-mix(in oklab, var(--sveltely-active-color) 35%, white);
69
70
  outline-offset: 4px;
70
71
  }
71
72
 
@@ -79,10 +80,10 @@
79
80
  border-radius: var(--sveltely-border-radius);
80
81
  background: linear-gradient(
81
82
  to right,
82
- var(--sveltely-primary-color) 0%,
83
- var(--sveltely-primary-color) var(--slider-pct),
84
- var(--color-zinc-300) var(--slider-pct),
85
- var(--color-zinc-300) 100%
83
+ var(--sveltely-active-color) 0%,
84
+ var(--sveltely-active-color) var(--slider-pct),
85
+ var(--sveltely-border-color) var(--slider-pct),
86
+ var(--sveltely-border-color) 100%
86
87
  );
87
88
  }
88
89
 
@@ -93,7 +94,7 @@
93
94
  height: var(--slider-thumb-size);
94
95
  border-radius: var(--sveltely-border-radius);
95
96
  border: var(--slider-thumb-ring-width) solid var(--color-white);
96
- background: var(--sveltely-primary-color);
97
+ background: var(--sveltely-active-color);
97
98
  margin-top: calc((var(--slider-track-height) - var(--slider-thumb-size)) / 2);
98
99
  }
99
100
 
@@ -101,14 +102,14 @@
101
102
  height: var(--slider-track-height);
102
103
  border: none;
103
104
  border-radius: var(--sveltely-border-radius);
104
- background: var(--color-zinc-300);
105
+ background: var(--sveltely-border-color);
105
106
  }
106
107
 
107
108
  .slider::-moz-range-progress {
108
109
  height: var(--slider-track-height);
109
110
  border: none;
110
111
  border-radius: var(--sveltely-border-radius);
111
- background: var(--sveltely-primary-color);
112
+ background: var(--sveltely-active-color);
112
113
  }
113
114
 
114
115
  .slider::-moz-range-thumb {
@@ -117,6 +118,6 @@
117
118
  height: var(--slider-thumb-size);
118
119
  border-radius: var(--sveltely-border-radius);
119
120
  border: var(--slider-thumb-ring-width) solid var(--color-white);
120
- background: var(--sveltely-primary-color);
121
+ background: var(--sveltely-active-color);
121
122
  }
122
123
  </style>
@@ -9,6 +9,6 @@
9
9
  import Spinner from './Spinner.svelte';
10
10
  </script>
11
11
 
12
- <div class="text-zinc-700">
12
+ <div class="text-[var(--sveltely-primary-color)]">
13
13
  <Spinner />
14
14
  </div>
@@ -74,7 +74,7 @@
74
74
  gap: var(--switch-gap, var(--sveltely-gap));
75
75
  font-size: var(--switch-font-size);
76
76
  line-height: 1.25;
77
- color: var(--switch-color, var(--color-zinc-800));
77
+ color: var(--switch-color, var(--sveltely-primary-color));
78
78
  cursor: pointer;
79
79
  user-select: none;
80
80
  }
@@ -106,7 +106,8 @@
106
106
  display: block;
107
107
  width: 100%;
108
108
  height: 100%;
109
- border: var(--switch-border-width) solid var(--switch-border-color, var(--sveltely-border-color));
109
+ border: var(--switch-border-width) solid
110
+ var(--switch-border-color, var(--sveltely-border-color));
110
111
  border-radius: var(--switch-resolved-border-radius);
111
112
  background: var(--switch-background, var(--sveltely-inactive-color));
112
113
  box-sizing: border-box;
@@ -142,14 +143,8 @@
142
143
  }
143
144
 
144
145
  .switch:hover .switch-control input:checked + .switch-track {
145
- border-color: var(
146
- --switch-checked-hover-border-color,
147
- var(--sveltely-active-hover-color)
148
- );
149
- background: var(
150
- --switch-checked-hover-background,
151
- var(--sveltely-active-hover-color)
152
- );
146
+ border-color: var(--switch-checked-hover-border-color, var(--sveltely-active-hover-color));
147
+ background: var(--switch-checked-hover-background, var(--sveltely-active-hover-color));
153
148
  }
154
149
 
155
150
  .switch-control input:checked + .switch-track .switch-thumb {
@@ -158,7 +153,7 @@
158
153
  }
159
154
 
160
155
  .switch-control input:focus-visible + .switch-track {
161
- outline: 2px solid color-mix(in oklab, var(--sveltely-primary-color) 24%, white);
156
+ outline: 2px solid color-mix(in oklab, var(--sveltely-active-color) 24%, white);
162
157
  outline-offset: 2px;
163
158
  }
164
159
 
@@ -61,7 +61,9 @@
61
61
  });
62
62
  const textEditorProps = $derived({ textAlign });
63
63
  const rootStyle = $derived.by(() =>
64
- [surfaceStyle(styleProps, 'text-field'), textEditorStyle(textEditorProps)].filter(Boolean).join(' ')
64
+ [surfaceStyle(styleProps, 'text-field'), textEditorStyle(textEditorProps)]
65
+ .filter(Boolean)
66
+ .join(' ')
65
67
  );
66
68
  const describedBy = $derived(help ? 'text-field-message' : undefined);
67
69
  </script>
@@ -100,7 +102,7 @@
100
102
  min-width: 0;
101
103
  flex-direction: column;
102
104
  gap: var(--text-field-gap, calc(var(--sveltely-gap) * 0.75));
103
- color: var(--text-field-color, var(--color-zinc-900));
105
+ color: var(--text-field-color, var(--sveltely-primary-color));
104
106
  font-size: var(--text-field-font-size, calc(var(--sveltely-font-size) * 0.875));
105
107
  }
106
108
 
@@ -109,27 +111,30 @@
109
111
  min-width: 0;
110
112
  border: 1px solid var(--text-field-border-color, var(--sveltely-border-color));
111
113
  border-radius: var(--text-field-border-radius, var(--sveltely-border-radius));
112
- background: var(--text-field-background, white);
114
+ background: var(--text-field-background, var(--sveltely-background-color));
113
115
  color: inherit;
114
116
  line-height: 1.25rem;
115
117
  outline: none;
116
- padding:
117
- var(--text-field-padding-y, calc(var(--sveltely-padding-y) * 0.67))
118
+ padding: var(--text-field-padding-y, calc(var(--sveltely-padding-y) * 0.67))
118
119
  var(--text-field-padding-x, var(--sveltely-padding-x));
119
120
  text-align: var(--text-field-text-align, start);
120
- transition: color 150ms, border-color 150ms, background-color 150ms, box-shadow 150ms;
121
+ transition:
122
+ color 150ms,
123
+ border-color 150ms,
124
+ background-color 150ms,
125
+ box-shadow 150ms;
121
126
  }
122
127
 
123
128
  .text-field-input:focus {
124
- border-color: color-mix(in oklab, var(--sveltely-primary-color) 50%, white);
129
+ border-color: color-mix(in oklab, var(--sveltely-active-color) 50%, white);
125
130
  }
126
131
 
127
132
  .text-field-input::placeholder {
128
- color: var(--color-zinc-400);
133
+ color: var(--sveltely-secondary-color);
129
134
  }
130
135
 
131
136
  .text-field-message {
132
- color: var(--color-zinc-500);
137
+ color: var(--sveltely-secondary-color);
133
138
  font-size: calc(var(--text-field-font-size, 0.875rem) * 0.857);
134
139
  line-height: 1.25;
135
140
  }
@@ -1,19 +1,19 @@
1
1
  <script module lang="ts">
2
2
  export const demo = {
3
- name: 'TokenSearchInput',
3
+ name: 'TokenSearchField',
4
4
  description: 'Search field that turns comma-separated entries into removable tokens.',
5
5
  columnSpan: 2
6
6
  };
7
7
  </script>
8
8
 
9
9
  <script lang="ts">
10
- import TokenSearchInput from './TokenSearchInput.svelte';
10
+ import TokenSearchField from './TokenSearchField.svelte';
11
11
 
12
12
  let tokens = $state(['svelte', 'ui']);
13
13
  let value = $state('');
14
14
  </script>
15
15
 
16
16
  <div class="vstack w-full max-w-md gap-2">
17
- <TokenSearchInput bind:tokens bind:value placeholder="Search keywords" />
18
- <p class="text-xs text-zinc-500">Tokens: {tokens.join(', ') || 'empty'}</p>
17
+ <TokenSearchField bind:tokens bind:value placeholder="Search keywords" />
18
+ <p class="text-xs text-[var(--sveltely-secondary-color)]">Tokens: {tokens.join(', ') || 'empty'}</p>
19
19
  </div>
@@ -0,0 +1,9 @@
1
+ export declare const demo: {
2
+ name: string;
3
+ description: string;
4
+ columnSpan: number;
5
+ };
6
+ import TokenSearchField from './TokenSearchField.svelte';
7
+ declare const TokenSearchField: import("svelte").Component<Record<string, never>, {}, "">;
8
+ type TokenSearchField = ReturnType<typeof TokenSearchField>;
9
+ export default TokenSearchField;