@x33025/sveltely 0.1.1 → 0.1.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.
Files changed (156) 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.demo.svelte +5 -3
  4. package/dist/components/Library/Button/Button.demo.svelte.d.ts +1 -0
  5. package/dist/components/Library/Button/Button.svelte +21 -13
  6. package/dist/components/Library/Calendar/Calendar.demo.svelte +2 -14
  7. package/dist/components/Library/Calendar/Calendar.svelte +69 -65
  8. package/dist/components/Library/Checkbox/Checkbox.svelte +13 -14
  9. package/dist/components/Library/ChipInput/ChipInput.demo.svelte +1 -1
  10. package/dist/components/Library/ChipInput/ChipInput.svelte +7 -4
  11. package/dist/components/Library/Divider/Divider.svelte +10 -0
  12. package/dist/components/Library/Divider/Divider.svelte.d.ts +26 -0
  13. package/dist/components/Library/Divider/index.d.ts +1 -0
  14. package/dist/components/Library/Divider/index.js +1 -0
  15. package/dist/components/Library/Dropdown/Action.svelte +60 -0
  16. package/dist/components/Library/Dropdown/Action.svelte.d.ts +11 -0
  17. package/dist/components/Library/Dropdown/Divider.svelte +5 -0
  18. package/dist/components/Library/Dropdown/Divider.svelte.d.ts +19 -0
  19. package/dist/components/Library/Dropdown/Dropdown.demo.svelte +182 -65
  20. package/dist/components/Library/Dropdown/Dropdown.demo.svelte.d.ts +2 -1
  21. package/dist/components/Library/Dropdown/Dropdown.svelte +95 -250
  22. package/dist/components/Library/Dropdown/Dropdown.svelte.d.ts +17 -16
  23. package/dist/components/Library/Dropdown/Item.svelte +68 -0
  24. package/dist/components/Library/Dropdown/Item.svelte.d.ts +31 -0
  25. package/dist/components/Library/Dropdown/Section.svelte +34 -0
  26. package/dist/components/Library/Dropdown/Section.svelte.d.ts +8 -0
  27. package/dist/components/Library/Dropdown/context.d.ts +34 -0
  28. package/dist/components/Library/Dropdown/context.js +6 -0
  29. package/dist/components/Library/Dropdown/index.d.ts +13 -2
  30. package/dist/components/Library/Dropdown/index.js +11 -1
  31. package/dist/components/Library/Floating/Floating.svelte +44 -7
  32. package/dist/components/Library/ForEach/ForEach.svelte +14 -0
  33. package/dist/components/Library/ForEach/ForEach.svelte.d.ts +28 -0
  34. package/dist/components/Library/ForEach/index.d.ts +1 -0
  35. package/dist/components/Library/ForEach/index.js +1 -0
  36. package/dist/components/Library/Grid/Grid.svelte +74 -0
  37. package/dist/components/Library/Grid/Grid.svelte.d.ts +13 -0
  38. package/dist/components/Library/Grid/index.d.ts +1 -0
  39. package/dist/components/Library/Grid/index.js +1 -0
  40. package/dist/components/Library/GridItem/GridItem.svelte +65 -0
  41. package/dist/components/Library/GridItem/GridItem.svelte.d.ts +14 -0
  42. package/dist/components/Library/GridItem/index.d.ts +1 -0
  43. package/dist/components/Library/GridItem/index.js +1 -0
  44. package/dist/components/Library/HStack/HStack.svelte +45 -0
  45. package/dist/components/Library/HStack/HStack.svelte.d.ts +9 -0
  46. package/dist/components/Library/HStack/index.d.ts +1 -0
  47. package/dist/components/Library/HStack/index.js +1 -0
  48. package/dist/components/Library/Image/Image.demo.svelte +18 -0
  49. package/dist/components/Library/Image/Image.demo.svelte.d.ts +23 -0
  50. package/dist/components/Library/Image/Image.svelte +57 -0
  51. package/dist/components/Library/Image/Image.svelte.d.ts +17 -0
  52. package/dist/components/Library/Image/ImagePlaceholder.svelte +202 -0
  53. package/dist/components/Library/Image/ImagePlaceholder.svelte.d.ts +7 -0
  54. package/dist/components/Library/Image/index.d.ts +1 -0
  55. package/dist/components/Library/Image/index.js +1 -0
  56. package/dist/components/Library/ImageMask/BrushPreview.svelte +119 -0
  57. package/dist/components/Library/ImageMask/BrushPreview.svelte.d.ts +11 -0
  58. package/dist/components/Library/ImageMask/ImageMask.demo.svelte +117 -0
  59. package/dist/components/Library/ImageMask/ImageMask.demo.svelte.d.ts +10 -0
  60. package/dist/components/Library/ImageMask/ImageMask.svelte +46 -0
  61. package/dist/components/Library/ImageMask/ImageMask.svelte.d.ts +20 -0
  62. package/dist/components/Library/ImageMask/MaskLayer.svelte +341 -0
  63. package/dist/components/Library/ImageMask/MaskLayer.svelte.d.ts +12 -0
  64. package/dist/components/Library/ImageMask/contour.d.ts +11 -0
  65. package/dist/components/Library/ImageMask/contour.js +152 -0
  66. package/dist/components/Library/ImageMask/index.d.ts +2 -0
  67. package/dist/components/Library/ImageMask/index.js +1 -0
  68. package/dist/components/Library/ImageMask/marchingAnts.d.ts +8 -0
  69. package/dist/components/Library/ImageMask/marchingAnts.js +29 -0
  70. package/dist/components/Library/ImageMask/maskSurface.d.ts +5 -0
  71. package/dist/components/Library/ImageMask/maskSurface.js +94 -0
  72. package/dist/components/Library/ImageMask/types.d.ts +23 -0
  73. package/dist/components/Library/Label/Label.demo.svelte +28 -0
  74. package/dist/components/Library/Label/Label.demo.svelte.d.ts +9 -0
  75. package/dist/components/Library/Label/Label.svelte +175 -0
  76. package/dist/components/Library/Label/Label.svelte.d.ts +18 -0
  77. package/dist/components/Library/Label/index.d.ts +1 -0
  78. package/dist/components/Library/Label/index.js +1 -0
  79. package/dist/components/Library/NavigationStack/NavigationStack.svelte +17 -7
  80. package/dist/components/Library/NavigationStack/Toolbar.svelte +7 -2
  81. package/dist/components/Library/NumberField/NumberField.demo.svelte +21 -0
  82. package/dist/components/Library/NumberField/NumberField.demo.svelte.d.ts +8 -0
  83. package/dist/components/Library/NumberField/NumberField.svelte +199 -0
  84. package/dist/components/Library/NumberField/NumberField.svelte.d.ts +21 -0
  85. package/dist/components/Library/NumberField/index.d.ts +1 -0
  86. package/dist/components/Library/NumberField/index.js +1 -0
  87. package/dist/components/Library/Pagination/Pagination.svelte +16 -20
  88. package/dist/components/Library/Popover/Popover.demo.svelte +2 -2
  89. package/dist/components/Library/Popover/Popover.svelte +7 -4
  90. package/dist/components/Library/ScrollView/ScrollView.svelte +165 -12
  91. package/dist/components/Library/ScrollView/ScrollView.svelte.d.ts +32 -4
  92. package/dist/components/Library/ScrollView/index.d.ts +1 -0
  93. package/dist/components/Library/{SearchInput/SearchInput.demo.svelte → SearchField/SearchField.demo.svelte} +4 -4
  94. package/dist/components/Library/SearchField/SearchField.demo.svelte.d.ts +8 -0
  95. package/dist/components/Library/{SearchInput/SearchInput.svelte → SearchField/SearchField.svelte} +26 -30
  96. package/dist/components/Library/{SearchInput/SearchInput.svelte.d.ts → SearchField/SearchField.svelte.d.ts} +3 -3
  97. package/dist/components/Library/SearchField/index.d.ts +1 -0
  98. package/dist/components/Library/SearchField/index.js +1 -0
  99. package/dist/components/Library/SegmentedPicker/SegmentedPicker.demo.svelte +1 -1
  100. package/dist/components/Library/SegmentedPicker/SegmentedPicker.svelte +9 -9
  101. package/dist/components/Library/Sheet/Sheet.demo.svelte +1 -1
  102. package/dist/components/Library/Sheet/Sheet.svelte +8 -5
  103. package/dist/components/Library/Slider/Slider.demo.svelte +1 -1
  104. package/dist/components/Library/Slider/Slider.svelte +11 -10
  105. package/dist/components/Library/Spacer/Spacer.svelte +7 -0
  106. package/dist/components/Library/Spacer/Spacer.svelte.d.ts +26 -0
  107. package/dist/components/Library/Spacer/index.d.ts +1 -0
  108. package/dist/components/Library/Spacer/index.js +1 -0
  109. package/dist/components/Library/Spinner/Spinner.demo.svelte +1 -1
  110. package/dist/components/Library/Switch/Switch.svelte +6 -11
  111. package/dist/components/Library/TextField/TextField.demo.svelte +14 -0
  112. package/dist/components/Library/TextField/TextField.demo.svelte.d.ts +8 -0
  113. package/dist/components/Library/TextField/TextField.svelte +154 -0
  114. package/dist/components/Library/TextField/TextField.svelte.d.ts +19 -0
  115. package/dist/components/Library/TextField/index.d.ts +1 -0
  116. package/dist/components/Library/TextField/index.js +1 -0
  117. package/dist/components/Library/{TokenSearchInput/TokenSearchInput.demo.svelte → TokenSearchField/TokenSearchField.demo.svelte} +4 -4
  118. package/dist/components/Library/TokenSearchField/TokenSearchField.demo.svelte.d.ts +9 -0
  119. package/dist/components/Library/{TokenSearchInput/TokenSearchInput.svelte → TokenSearchField/TokenSearchField.svelte} +70 -66
  120. package/dist/components/Library/{TokenSearchInput/TokenSearchInput.svelte.d.ts → TokenSearchField/TokenSearchField.svelte.d.ts} +3 -3
  121. package/dist/components/Library/TokenSearchField/index.d.ts +1 -0
  122. package/dist/components/Library/TokenSearchField/index.js +1 -0
  123. package/dist/components/Library/VStack/VStack.svelte +45 -0
  124. package/dist/components/Library/VStack/VStack.svelte.d.ts +9 -0
  125. package/dist/components/Library/VStack/index.d.ts +1 -0
  126. package/dist/components/Library/VStack/index.js +1 -0
  127. package/dist/components/Library/WheelPicker/WheelColumn.svelte +4 -10
  128. package/dist/components/Library/WheelPicker/WheelPicker.svelte +5 -9
  129. package/dist/components/Local/ComponentGrid.svelte +15 -31
  130. package/dist/components/Local/HeroCard.svelte +30 -38
  131. package/dist/components/Local/HeroCard.svelte.d.ts +0 -2
  132. package/dist/components/Local/StyleControls.svelte +58 -27
  133. package/dist/components/Local/StyleControls.svelte.d.ts +3 -1
  134. package/dist/index.d.ts +26 -2
  135. package/dist/index.js +19 -2
  136. package/dist/style/index.css +35 -20
  137. package/dist/style/label.d.ts +6 -0
  138. package/dist/style/label.js +4 -0
  139. package/dist/style/layout.d.ts +57 -0
  140. package/dist/style/layout.js +128 -0
  141. package/dist/style/media.d.ts +12 -0
  142. package/dist/style/media.js +8 -0
  143. package/dist/style/scroll.d.ts +7 -0
  144. package/dist/style/scroll.js +5 -0
  145. package/dist/style/text-editor.d.ts +34 -0
  146. package/dist/style/text-editor.js +29 -0
  147. package/dist/style.css +112 -58
  148. package/package.json +1 -1
  149. package/dist/components/Library/Dropdown/types.d.ts +0 -27
  150. package/dist/components/Library/SearchInput/SearchInput.demo.svelte.d.ts +0 -8
  151. package/dist/components/Library/SearchInput/index.d.ts +0 -1
  152. package/dist/components/Library/SearchInput/index.js +0 -1
  153. package/dist/components/Library/TokenSearchInput/TokenSearchInput.demo.svelte.d.ts +0 -9
  154. package/dist/components/Library/TokenSearchInput/index.d.ts +0 -1
  155. package/dist/components/Library/TokenSearchInput/index.js +0 -1
  156. /package/dist/components/Library/{Dropdown → ImageMask}/types.js +0 -0
@@ -6,7 +6,8 @@
6
6
  type Props = {
7
7
  columns: WheelColumnData[];
8
8
  height?: number | string;
9
- } & StyleProps & Record<string, unknown>;
9
+ } & StyleProps &
10
+ Record<string, unknown>;
10
11
 
11
12
  const toCssLength = (value: number | string | undefined) =>
12
13
  value === undefined ? undefined : typeof value === 'number' ? `${value}px` : value;
@@ -23,7 +24,6 @@
23
24
  const heightStyle = `--wheel-picker-height: ${resolvedHeight};`;
24
25
  return rootStyle ? `${rootStyle} ${heightStyle}` : heightStyle;
25
26
  });
26
-
27
27
  </script>
28
28
 
29
29
  <div class="wheel-picker vstack" style={pickerStyle} {...props}>
@@ -47,11 +47,7 @@
47
47
  class="wheel-picker-column"
48
48
  style={`--wheel-picker-column-flex: ${column.options.length <= 3 ? 0.85 : 1};`}
49
49
  >
50
- <WheelColumn
51
- options={column.options}
52
- value={column.value}
53
- onChange={column.onChange}
54
- />
50
+ <WheelColumn options={column.options} value={column.value} onChange={column.onChange} />
55
51
  </div>
56
52
  {/each}
57
53
  </div>
@@ -99,7 +95,7 @@
99
95
  height: var(--wheel-picker-option-height);
100
96
  transform: translateY(-50%);
101
97
  border-radius: var(--sveltely-border-radius);
102
- background: color-mix(in oklab, var(--color-zinc-100) 85%, white);
98
+ background: color-mix(in oklab, var(--sveltely-inactive-color) 85%, white);
103
99
  pointer-events: none;
104
100
  z-index: 0;
105
101
  }
@@ -109,6 +105,6 @@
109
105
  font-size: calc(var(--wheel-picker-font-size) * 0.75);
110
106
  line-height: 1;
111
107
  font-weight: 500;
112
- color: var(--color-zinc-500);
108
+ color: var(--sveltely-secondary-color);
113
109
  }
114
110
  </style>
@@ -1,5 +1,7 @@
1
1
  <script lang="ts">
2
2
  import type { Component } from 'svelte';
3
+ import Grid from '../Library/Grid';
4
+ import GridItem from '../Library/GridItem';
3
5
  import HeroCard from './HeroCard.svelte';
4
6
 
5
7
  type DemoEntry = {
@@ -17,38 +19,20 @@
17
19
  let { demos }: Props = $props();
18
20
  </script>
19
21
 
20
- <div
21
- class="component-grid grid gap-4 overflow-auto md:grid-flow-dense md:grid-cols-2 xl:grid-cols-3"
22
- style="padding: calc(var(--sveltely-padding-y) * 2) calc(var(--sveltely-padding-x) * 2);"
22
+ <Grid
23
+ columns="repeat(auto-fit, minmax(min(100%, 18rem), 1fr))"
24
+ autoRows={14}
25
+ gap={1}
26
+ paddingX="calc(var(--sveltely-padding-x) * 2)"
27
+ paddingY="calc(var(--sveltely-padding-y) * 2)"
28
+ overflow="auto"
23
29
  >
24
30
  {#each demos as entry}
25
31
  {@const DemoComponent = entry.component}
26
- <HeroCard
27
- title={entry.name}
28
- description={entry.description}
29
- columnSpan={entry.columnSpan ?? 1}
30
- rowSpan={entry.rowSpan ?? 1}
31
- >
32
- <DemoComponent />
33
- </HeroCard>
32
+ <GridItem columnSpan={entry.columnSpan ?? 1} rowSpan={entry.rowSpan ?? 1}>
33
+ <HeroCard title={entry.name} description={entry.description}>
34
+ <DemoComponent />
35
+ </HeroCard>
36
+ </GridItem>
34
37
  {/each}
35
- </div>
36
-
37
- <style>
38
- .component-grid :global(.hero-card) {
39
- --sveltely-border-width: 1px;
40
- min-height: 14rem;
41
- border: 1px solid var(--sveltely-border-color);
42
- border-radius: 0.75rem;
43
- align-items: stretch;
44
- }
45
-
46
- .component-grid :global(.hero-card h1) {
47
- font-size: 1rem;
48
- line-height: 1.5rem;
49
- }
50
-
51
- .component-grid :global(.hero-card p) {
52
- max-width: none;
53
- }
54
- </style>
38
+ </Grid>
@@ -1,61 +1,53 @@
1
1
  <script lang="ts">
2
2
  import type { Snippet } from 'svelte';
3
+ import HStack from '../Library/HStack';
4
+ import VStack from '../Library/VStack';
3
5
 
4
6
  type Props = {
5
7
  title?: string;
6
8
  description?: string;
7
9
  children?: Snippet;
8
- columnSpan?: 1 | 2;
9
- rowSpan?: 1 | 2;
10
10
  };
11
11
 
12
- let {
13
- title,
14
- description = '',
15
- children,
16
- columnSpan = 1,
17
- rowSpan = 1
18
- }: Props = $props();
12
+ let { title, description = '', children }: Props = $props();
19
13
  </script>
20
14
 
21
- <div class="hero-card vstack shrink-0 gap-2" data-column-span={columnSpan} data-row-span={rowSpan}>
15
+ <VStack
16
+ minHeight={14}
17
+ height="100%"
18
+ shrink={0}
19
+ align="stretch"
20
+ gap={0.5}
21
+ border="1px solid var(--sveltely-border-color)"
22
+ borderRadius={0.75}
23
+ background="var(--sveltely-background-color)"
24
+ paddingX={1.5}
25
+ paddingY={1.5}
26
+ >
22
27
  {#if title}
23
- <h1 class="text-3xl font-semibold tracking-tight text-zinc-950">{title}</h1>
28
+ <h1 class="text-3xl font-semibold tracking-tight text-[var(--sveltely-primary-color)]">
29
+ {title}
30
+ </h1>
24
31
  {#if description}
25
- <p class="max-w-3xl text-sm text-zinc-600">{description}</p>
32
+ <p class="max-w-3xl text-sm text-[var(--sveltely-secondary-color)]">{description}</p>
26
33
  {/if}
27
34
  {/if}
28
- <div
29
- class="hero-card-content center flex"
30
- >
35
+ <VStack grow shrink overflow="hidden" paddingX={0} paddingY={0}>
31
36
  {#if children}
32
- {@render children()}
37
+ <HStack minWidth="min-content" minHeight="100%" align="center" justify="center">
38
+ {@render children()}
39
+ </HStack>
33
40
  {/if}
34
- </div>
35
- </div>
41
+ </VStack>
42
+ </VStack>
36
43
 
37
44
  <style>
38
- .hero-card {
39
- --hero-card-inset-x: calc(var(--sveltely-padding-x) * 2);
40
- --hero-card-inset-y: calc(var(--sveltely-padding-y) * 2);
41
- --hero-card-inset: max(var(--hero-card-inset-x), var(--hero-card-inset-y));
42
- --sveltely-nested-inset: var(--hero-card-inset);
43
- background: white;
44
- padding: 1.5rem 1.5rem;
45
+ h1 {
46
+ font-size: 1rem;
47
+ line-height: 1.5rem;
45
48
  }
46
49
 
47
- .hero-card-content {
48
- min-height: 0;
49
- flex: 1 1 auto;
50
- }
51
-
52
- @media (min-width: 48rem) {
53
- .hero-card[data-column-span='2'] {
54
- grid-column: span 2;
55
- }
56
-
57
- .hero-card[data-row-span='2'] {
58
- grid-row: span 2;
59
- }
50
+ p {
51
+ max-width: none;
60
52
  }
61
53
  </style>
@@ -3,8 +3,6 @@ type Props = {
3
3
  title?: string;
4
4
  description?: string;
5
5
  children?: Snippet;
6
- columnSpan?: 1 | 2;
7
- rowSpan?: 1 | 2;
8
6
  };
9
7
  declare const HeroCard: import("svelte").Component<Props, {}, "">;
10
8
  type HeroCard = ReturnType<typeof HeroCard>;
@@ -10,8 +10,10 @@
10
10
  inset?: number;
11
11
  borderColor?: string;
12
12
  primaryColor?: string;
13
+ secondaryColor?: string;
13
14
  activeColor?: string;
14
15
  inactiveColor?: string;
16
+ backgroundColor?: string;
15
17
  };
16
18
 
17
19
  let {
@@ -23,81 +25,110 @@
23
25
  inset = $bindable(0.25),
24
26
  borderColor = $bindable('#e4e4e7'),
25
27
  primaryColor = $bindable('#18181b'),
28
+ secondaryColor = $bindable('#71717a'),
26
29
  activeColor = $bindable('#18181b'),
27
- inactiveColor = $bindable('#f4f4f5')
30
+ inactiveColor = $bindable('#18181b'),
31
+ backgroundColor = $bindable('#ffffff')
28
32
  }: Props = $props();
29
33
  </script>
30
34
 
31
- <div class="vstack gap-3 text-sm text-zinc-700" style="--sveltely-border-radius: 0.75rem;">
32
- <div class="font-semibold tracking-wide text-zinc-500 uppercase">Controls</div>
35
+ <div
36
+ class="vstack gap-3 text-sm text-[var(--sveltely-primary-color)]"
37
+ style="--sveltely-border-radius: 0.75rem;"
38
+ >
39
+ <div class="font-semibold tracking-wide text-[var(--sveltely-secondary-color)] uppercase">
40
+ Controls
41
+ </div>
33
42
  <div class="vstack gap-2">
34
- <div class="hstack items-center justify-between gap-3 text-zinc-700">
43
+ <div class="hstack items-center justify-between gap-3">
35
44
  <span class="font-medium">Font size</span>
36
- <span class="text-zinc-500">{fontSize.toFixed(2)}rem</span>
45
+ <span class="text-[var(--sveltely-secondary-color)]">{fontSize.toFixed(2)}rem</span>
37
46
  </div>
38
47
  <Slider bind:value={fontSize} min={0.5} max={2} step={0.05} />
39
48
  </div>
40
49
  <div class="vstack gap-2">
41
- <div class="hstack items-center justify-between gap-3 text-zinc-700">
50
+ <div class="hstack items-center justify-between gap-3">
42
51
  <span class="font-medium">Border radius</span>
43
- <span class="text-zinc-500">{borderRadius.toFixed(2)}rem</span>
52
+ <span class="text-[var(--sveltely-secondary-color)]">{borderRadius.toFixed(2)}rem</span>
44
53
  </div>
45
54
  <Slider bind:value={borderRadius} min={0} max={3} step={0.05} />
46
55
  </div>
47
56
  <div class="vstack gap-2">
48
- <div class="hstack items-center justify-between gap-3 text-zinc-700">
57
+ <div class="hstack items-center justify-between gap-3">
49
58
  <span class="font-medium">Padding X</span>
50
- <span class="text-zinc-500">{paddingX.toFixed(2)}rem</span>
59
+ <span class="text-[var(--sveltely-secondary-color)]">{paddingX.toFixed(2)}rem</span>
51
60
  </div>
52
61
  <Slider bind:value={paddingX} min={0} max={2} step="any" />
53
62
  </div>
54
63
  <div class="vstack gap-2">
55
- <div class="hstack items-center justify-between gap-3 text-zinc-700">
64
+ <div class="hstack items-center justify-between gap-3">
56
65
  <span class="font-medium">Padding Y</span>
57
- <span class="text-zinc-500">{paddingY.toFixed(2)}rem</span>
66
+ <span class="text-[var(--sveltely-secondary-color)]">{paddingY.toFixed(2)}rem</span>
58
67
  </div>
59
68
  <Slider bind:value={paddingY} min={0} max={2} step="any" />
60
69
  </div>
61
70
  <div class="vstack gap-2">
62
- <div class="hstack items-center justify-between gap-3 text-zinc-700">
71
+ <div class="hstack items-center justify-between gap-3">
63
72
  <span class="font-medium">Gap</span>
64
- <span class="text-zinc-500">{gap.toFixed(2)}rem</span>
73
+ <span class="text-[var(--sveltely-secondary-color)]">{gap.toFixed(2)}rem</span>
65
74
  </div>
66
75
  <Slider bind:value={gap} min={0} max={2} step="any" />
67
76
  </div>
68
77
  <div class="vstack gap-2">
69
- <div class="hstack items-center justify-between gap-3 text-zinc-700">
78
+ <div class="hstack items-center justify-between gap-3">
70
79
  <span class="font-medium">Inset</span>
71
- <span class="text-zinc-500">{inset.toFixed(2)}rem</span>
80
+ <span class="text-[var(--sveltely-secondary-color)]">{inset.toFixed(2)}rem</span>
72
81
  </div>
73
82
  <Slider bind:value={inset} min={0} max={1} step="any" />
74
83
  </div>
75
84
  <div class="vstack gap-2">
76
- <div class="hstack items-center justify-between gap-3 text-zinc-700">
77
- <span class="font-medium">Border color</span>
78
- <span class="text-zinc-500">{borderColor}</span>
85
+ <div class="hstack items-center justify-between gap-3">
86
+ <span class="font-medium">Primary color</span>
87
+ <span class="text-[var(--sveltely-secondary-color)]">{primaryColor}</span>
79
88
  </div>
80
89
  <input
81
- bind:value={borderColor}
90
+ bind:value={primaryColor}
82
91
  type="color"
83
92
  class="h-10 w-full cursor-pointer rounded-md border border-zinc-200 bg-white p-1"
84
93
  />
85
94
  </div>
86
95
  <div class="vstack gap-2">
87
- <div class="hstack items-center justify-between gap-3 text-zinc-700">
88
- <span class="font-medium">Primary color</span>
89
- <span class="text-zinc-500">{primaryColor}</span>
96
+ <div class="hstack items-center justify-between gap-3">
97
+ <span class="font-medium">Secondary color</span>
98
+ <span class="text-[var(--sveltely-secondary-color)]">{secondaryColor}</span>
90
99
  </div>
91
100
  <input
92
- bind:value={primaryColor}
101
+ bind:value={secondaryColor}
102
+ type="color"
103
+ class="h-10 w-full cursor-pointer rounded-md border border-zinc-200 bg-white p-1"
104
+ />
105
+ </div>
106
+ <div class="vstack gap-2">
107
+ <div class="hstack items-center justify-between gap-3">
108
+ <span class="font-medium">Background color</span>
109
+ <span class="text-[var(--sveltely-secondary-color)]">{backgroundColor}</span>
110
+ </div>
111
+ <input
112
+ bind:value={backgroundColor}
113
+ type="color"
114
+ class="h-10 w-full cursor-pointer rounded-md border border-zinc-200 bg-white p-1"
115
+ />
116
+ </div>
117
+ <div class="vstack gap-2">
118
+ <div class="hstack items-center justify-between gap-3">
119
+ <span class="font-medium">Border color</span>
120
+ <span class="text-[var(--sveltely-secondary-color)]">{borderColor}</span>
121
+ </div>
122
+ <input
123
+ bind:value={borderColor}
93
124
  type="color"
94
125
  class="h-10 w-full cursor-pointer rounded-md border border-zinc-200 bg-white p-1"
95
126
  />
96
127
  </div>
97
128
  <div class="vstack gap-2">
98
- <div class="hstack items-center justify-between gap-3 text-zinc-700">
129
+ <div class="hstack items-center justify-between gap-3">
99
130
  <span class="font-medium">Active color</span>
100
- <span class="text-zinc-500">{activeColor}</span>
131
+ <span class="text-[var(--sveltely-secondary-color)]">{activeColor}</span>
101
132
  </div>
102
133
  <input
103
134
  bind:value={activeColor}
@@ -106,9 +137,9 @@
106
137
  />
107
138
  </div>
108
139
  <div class="vstack gap-2">
109
- <div class="hstack items-center justify-between gap-3 text-zinc-700">
140
+ <div class="hstack items-center justify-between gap-3">
110
141
  <span class="font-medium">Inactive color</span>
111
- <span class="text-zinc-500">{inactiveColor}</span>
142
+ <span class="text-[var(--sveltely-secondary-color)]">{inactiveColor}</span>
112
143
  </div>
113
144
  <input
114
145
  bind:value={inactiveColor}
@@ -7,9 +7,11 @@ type Props = {
7
7
  inset?: number;
8
8
  borderColor?: string;
9
9
  primaryColor?: string;
10
+ secondaryColor?: string;
10
11
  activeColor?: string;
11
12
  inactiveColor?: string;
13
+ backgroundColor?: string;
12
14
  };
13
- declare const StyleControls: import("svelte").Component<Props, {}, "borderColor" | "borderRadius" | "fontSize" | "gap" | "inset" | "paddingX" | "paddingY" | "primaryColor" | "activeColor" | "inactiveColor">;
15
+ declare const StyleControls: import("svelte").Component<Props, {}, "backgroundColor" | "borderColor" | "borderRadius" | "fontSize" | "gap" | "inset" | "paddingX" | "paddingY" | "primaryColor" | "secondaryColor" | "activeColor" | "inactiveColor">;
14
16
  type StyleControls = ReturnType<typeof StyleControls>;
15
17
  export default StyleControls;
package/dist/index.d.ts CHANGED
@@ -2,25 +2,49 @@ export { motion, hover } from './actions/motion';
2
2
  export { portalHost, portalContent } from './actions/portal';
3
3
  export { tooltip } from './actions/tooltip';
4
4
  export type { TooltipOptions } from './actions/tooltip';
5
+ export { LayoutAlignment, LayoutJustification, LayoutOverflow, LayoutSize } from './style/layout';
6
+ export type { LayoutAlignmentValue, LayoutJustificationValue, LayoutOverflowValue, LayoutProps, LayoutSizeValue } from './style/layout';
7
+ export { LabelOrientation } from './style/label';
8
+ export type { LabelOrientationValue } from './style/label';
9
+ export { ImageFit, ImageLoading } from './style/media';
10
+ export type { ImageFitValue, ImageLoadingValue } from './style/media';
11
+ export { ScrollAxis } from './style/scroll';
12
+ export type { ScrollAxisValue } from './style/scroll';
13
+ export { TextAlignment, TextFieldType, TextInputMode } from './style/text-editor';
14
+ export type { TextAlignmentValue, TextEditorProps, TextFieldTypeValue, TextInputModeValue } from './style/text-editor';
5
15
  export { default as AnimatedNumber } from './components/Library/AnimatedNumber';
6
16
  export { default as Button } from './components/Library/Button';
7
17
  export { default as Checkbox } from './components/Library/Checkbox';
8
18
  export { default as GlowEffect } from './components/Library/GlowEffect';
19
+ export { default as Grid } from './components/Library/Grid';
20
+ export { default as GridItem } from './components/Library/GridItem';
21
+ export { default as HStack } from './components/Library/HStack';
22
+ export { default as Image } from './components/Library/Image';
23
+ export { default as ImageMask } from './components/Library/ImageMask';
24
+ export type { ImageMaskValue } from './components/Library/ImageMask';
25
+ export { default as Label } from './components/Library/Label';
9
26
  export { default as NavigationStack } from './components/Library/NavigationStack';
27
+ export { default as NumberField } from './components/Library/NumberField';
10
28
  export { default as SegmentedPicker } from './components/Library/SegmentedPicker';
11
29
  export { default as Pagination } from './components/Library/Pagination';
12
30
  export { default as Dropdown } from './components/Library/Dropdown';
31
+ export { default as Divider } from './components/Library/Divider';
32
+ export { default as ForEach } from './components/Library/ForEach';
13
33
  export { default as TimePicker } from './components/Library/TimePicker';
14
34
  export { default as WheelPicker } from './components/Library/WheelPicker';
15
35
  export { default as Slider } from './components/Library/Slider';
16
36
  export { default as Switch } from './components/Library/Switch';
17
37
  export { default as Sheet } from './components/Library/Sheet';
38
+ export { default as Spacer } from './components/Library/Spacer';
18
39
  export { default as Spinner } from './components/Library/Spinner';
19
40
  export { default as TextShimmer } from './components/Library/TextShimmer';
41
+ export { default as TextField } from './components/Library/TextField';
20
42
  export { default as Popover } from './components/Library/Popover';
21
43
  export { default as ChipInput } from './components/Library/ChipInput';
22
44
  export { default as Calendar } from './components/Library/Calendar';
23
45
  export { default as AsyncButton } from './components/Library/AsyncButton';
24
- export { default as SearchInput } from './components/Library/SearchInput';
46
+ export { default as SearchField } from './components/Library/SearchField';
25
47
  export { default as ScrollView } from './components/Library/ScrollView';
26
- export { default as TokenSearchInput } from './components/Library/TokenSearchInput';
48
+ export type { ScrollGeometry } from './components/Library/ScrollView';
49
+ export { default as TokenSearchField } from './components/Library/TokenSearchField';
50
+ export { default as VStack } from './components/Library/VStack';
package/dist/index.js CHANGED
@@ -1,25 +1,42 @@
1
1
  export { motion, hover } from './actions/motion';
2
2
  export { portalHost, portalContent } from './actions/portal';
3
3
  export { tooltip } from './actions/tooltip';
4
+ export { LayoutAlignment, LayoutJustification, LayoutOverflow, LayoutSize } from './style/layout';
5
+ export { LabelOrientation } from './style/label';
6
+ export { ImageFit, ImageLoading } from './style/media';
7
+ export { ScrollAxis } from './style/scroll';
8
+ export { TextAlignment, TextFieldType, TextInputMode } from './style/text-editor';
4
9
  export { default as AnimatedNumber } from './components/Library/AnimatedNumber';
5
10
  export { default as Button } from './components/Library/Button';
6
11
  export { default as Checkbox } from './components/Library/Checkbox';
7
12
  export { default as GlowEffect } from './components/Library/GlowEffect';
13
+ export { default as Grid } from './components/Library/Grid';
14
+ export { default as GridItem } from './components/Library/GridItem';
15
+ export { default as HStack } from './components/Library/HStack';
16
+ export { default as Image } from './components/Library/Image';
17
+ export { default as ImageMask } from './components/Library/ImageMask';
18
+ export { default as Label } from './components/Library/Label';
8
19
  export { default as NavigationStack } from './components/Library/NavigationStack';
20
+ export { default as NumberField } from './components/Library/NumberField';
9
21
  export { default as SegmentedPicker } from './components/Library/SegmentedPicker';
10
22
  export { default as Pagination } from './components/Library/Pagination';
11
23
  export { default as Dropdown } from './components/Library/Dropdown';
24
+ export { default as Divider } from './components/Library/Divider';
25
+ export { default as ForEach } from './components/Library/ForEach';
12
26
  export { default as TimePicker } from './components/Library/TimePicker';
13
27
  export { default as WheelPicker } from './components/Library/WheelPicker';
14
28
  export { default as Slider } from './components/Library/Slider';
15
29
  export { default as Switch } from './components/Library/Switch';
16
30
  export { default as Sheet } from './components/Library/Sheet';
31
+ export { default as Spacer } from './components/Library/Spacer';
17
32
  export { default as Spinner } from './components/Library/Spinner';
18
33
  export { default as TextShimmer } from './components/Library/TextShimmer';
34
+ export { default as TextField } from './components/Library/TextField';
19
35
  export { default as Popover } from './components/Library/Popover';
20
36
  export { default as ChipInput } from './components/Library/ChipInput';
21
37
  export { default as Calendar } from './components/Library/Calendar';
22
38
  export { default as AsyncButton } from './components/Library/AsyncButton';
23
- export { default as SearchInput } from './components/Library/SearchInput';
39
+ export { default as SearchField } from './components/Library/SearchField';
24
40
  export { default as ScrollView } from './components/Library/ScrollView';
25
- export { default as TokenSearchInput } from './components/Library/TokenSearchInput';
41
+ export { default as TokenSearchField } from './components/Library/TokenSearchField';
42
+ export { default as VStack } from './components/Library/VStack';
@@ -7,15 +7,17 @@
7
7
  :root {
8
8
  --sveltely-font-size: 1rem;
9
9
  --sveltely-border-radius: 0.75rem;
10
- --sveltely-inset: 0px;
10
+ --sveltely-inset: 0.25rem;
11
11
  --sveltely-nested-inset: var(--sveltely-inset);
12
12
  --sveltely-padding-x: 0.75rem;
13
13
  --sveltely-padding-y: 0.75rem;
14
14
  --sveltely-gap: 0.5rem;
15
15
  --sveltely-primary-color: var(--color-zinc-900);
16
- --sveltely-active-color: var(--sveltely-primary-color);
17
- --sveltely-inactive-color: var(--color-zinc-100);
18
- --sveltely-hover-color: color-mix(in oklab, var(--sveltely-primary-color) 5%, transparent);
16
+ --sveltely-secondary-color: var(--color-zinc-500);
17
+ --sveltely-active-color: var(--color-zinc-900);
18
+ --sveltely-inactive-color: var(--sveltely-active-color);
19
+ --sveltely-background-color: white;
20
+ --sveltely-hover-color: color-mix(in oklab, var(--sveltely-active-color) 5%, transparent);
19
21
  --sveltely-inactive-hover-color: color-mix(in oklab, var(--sveltely-inactive-color) 88%, white);
20
22
  --sveltely-active-hover-color: color-mix(in oklab, var(--sveltely-active-color) 88%, white);
21
23
  --sveltely-border-radius-nested: clamp(
@@ -29,6 +31,8 @@
29
31
  html,
30
32
  body {
31
33
  @apply size-full overflow-hidden;
34
+ background: var(--sveltely-background-color);
35
+ color: var(--sveltely-primary-color);
32
36
  -webkit-user-select: none;
33
37
  user-select: none;
34
38
  }
@@ -48,6 +52,14 @@
48
52
  background-clip: padding-box;
49
53
  }
50
54
 
55
+ button {
56
+ cursor: pointer;
57
+ }
58
+
59
+ button:disabled {
60
+ cursor: not-allowed;
61
+ }
62
+
51
63
  input::-webkit-search-decoration,
52
64
  input::-webkit-search-cancel-button,
53
65
  input::-webkit-search-results-button,
@@ -88,23 +100,26 @@
88
100
  @apply flex min-h-0 min-w-0 flex-row;
89
101
  }
90
102
 
91
- .spacer {
92
- flex: 1 1 auto;
103
+ .button,
104
+ .async-button,
105
+ .segmented-picker,
106
+ .switch,
107
+ .checkbox,
108
+ .search-field,
109
+ .token-search-field,
110
+ .chip-input,
111
+ .dropdown,
112
+ .pagination,
113
+ .calendar,
114
+ .wheel-picker,
115
+ .time-picker,
116
+ .slider,
117
+ .spinner,
118
+ .image,
119
+ .image-mask,
120
+ .text-shimmer {
121
+ flex-shrink: 0;
93
122
  }
94
-
95
- .divider {
96
- @apply bg-gray-200/70;
97
- }
98
- }
99
-
100
- .hstack > .divider {
101
- width: 1px;
102
- align-self: stretch;
103
- }
104
-
105
- .vstack > .divider {
106
- height: 1px;
107
- width: 100%;
108
123
  }
109
124
 
110
125
  .overflow-auto > .vstack,
@@ -0,0 +1,6 @@
1
+ export declare const LabelOrientation: {
2
+ readonly top: "top";
3
+ readonly left: "left";
4
+ };
5
+ export type LabelOrientationValue = (typeof LabelOrientation)[keyof typeof LabelOrientation];
6
+ export type LabelOrientation = LabelOrientationValue;
@@ -0,0 +1,4 @@
1
+ export const LabelOrientation = {
2
+ top: 'top',
3
+ left: 'left'
4
+ };
@@ -0,0 +1,57 @@
1
+ type StringWithAutocomplete<T extends string> = T | (string & {});
2
+ export declare const LayoutSize: {
3
+ readonly full: "full";
4
+ readonly fit: "fit";
5
+ };
6
+ export declare const LayoutOverflow: {
7
+ readonly visible: "visible";
8
+ readonly hidden: "hidden";
9
+ readonly clip: "clip";
10
+ readonly auto: "auto";
11
+ readonly scroll: "scroll";
12
+ };
13
+ export declare const LayoutAlignment: {
14
+ readonly start: "start";
15
+ readonly center: "center";
16
+ readonly end: "end";
17
+ readonly stretch: "stretch";
18
+ readonly baseline: "baseline";
19
+ };
20
+ export declare const LayoutJustification: {
21
+ readonly start: "start";
22
+ readonly center: "center";
23
+ readonly end: "end";
24
+ readonly between: "between";
25
+ readonly around: "around";
26
+ readonly evenly: "evenly";
27
+ };
28
+ export type LayoutSizeValue = (typeof LayoutSize)[keyof typeof LayoutSize];
29
+ export type LayoutOverflowValue = (typeof LayoutOverflow)[keyof typeof LayoutOverflow];
30
+ export type LayoutAlignmentValue = (typeof LayoutAlignment)[keyof typeof LayoutAlignment];
31
+ export type LayoutJustificationValue = (typeof LayoutJustification)[keyof typeof LayoutJustification];
32
+ export type LayoutSize = StringWithAutocomplete<LayoutSizeValue> | number;
33
+ export type LayoutOverflow = LayoutOverflowValue;
34
+ export type LayoutAlignment = LayoutAlignmentValue;
35
+ export type LayoutJustification = LayoutJustificationValue;
36
+ export type LayoutProps = {
37
+ size?: LayoutSize;
38
+ width?: number | string;
39
+ height?: number | string;
40
+ minWidth?: number | string;
41
+ minHeight?: number | string;
42
+ maxWidth?: number | string;
43
+ maxHeight?: number | string;
44
+ grow?: boolean | number;
45
+ shrink?: boolean | number;
46
+ basis?: number | string;
47
+ border?: boolean | string;
48
+ overflow?: LayoutOverflow;
49
+ align?: LayoutAlignment;
50
+ justify?: LayoutJustification;
51
+ };
52
+ export declare const extractLayoutProps: <T extends Record<string, unknown>>(props: T) => {
53
+ layoutProps: Partial<LayoutProps>;
54
+ restProps: Record<string, unknown>;
55
+ };
56
+ export declare const layoutStyle: (styles?: LayoutProps) => string;
57
+ export {};