@x33025/sveltely 0.1.17 → 0.1.19

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 (153) hide show
  1. package/dist/actions/LoaderOverlay.svelte +33 -8
  2. package/dist/actions/LoaderOverlay.svelte.d.ts +3 -0
  3. package/dist/actions/loader.d.ts +3 -0
  4. package/dist/actions/loader.js +20 -7
  5. package/dist/components/Library/AnimatedNumber/AnimatedNumber.demo.svelte +3 -9
  6. package/dist/components/Library/ArticleEditor/ArticleEditor.svelte +3 -3
  7. package/dist/components/Library/ArticleEditor/ArticleEditorBody.svelte +59 -74
  8. package/dist/components/Library/ArticleEditor/ArticleEditorHeader.svelte +21 -31
  9. package/dist/components/Library/ArticleEditor/{ArticleBlockCode.svelte → Blocks/Code.svelte} +2 -3
  10. package/dist/components/Library/ArticleEditor/Blocks/Code.svelte.d.ts +8 -0
  11. package/dist/components/Library/ArticleEditor/{ArticleBlockFAQ.svelte → Blocks/FAQ.svelte} +3 -3
  12. package/dist/components/Library/ArticleEditor/Blocks/FAQ.svelte.d.ts +8 -0
  13. package/dist/components/Library/ArticleEditor/{ArticleBlockHeading.svelte → Blocks/Heading.svelte} +9 -9
  14. package/dist/components/Library/ArticleEditor/{ArticleBlockHeading.svelte.d.ts → Blocks/Heading.svelte.d.ts} +4 -4
  15. package/dist/components/Library/ArticleEditor/Blocks/Image.svelte +32 -0
  16. package/dist/components/Library/ArticleEditor/Blocks/Image.svelte.d.ts +10 -0
  17. package/dist/components/Library/ArticleEditor/{ArticleBlockList.svelte → Blocks/List.svelte} +4 -4
  18. package/dist/components/Library/ArticleEditor/{ArticleBlockList.svelte.d.ts → Blocks/List.svelte.d.ts} +4 -4
  19. package/dist/components/Library/ArticleEditor/{ArticleBlockParagraph.svelte → Blocks/Paragraph.svelte} +3 -3
  20. package/dist/components/Library/ArticleEditor/{ArticleBlockFallback.svelte.d.ts → Blocks/Paragraph.svelte.d.ts} +4 -4
  21. package/dist/components/Library/ArticleEditor/{ArticleBlockTable.svelte → Blocks/Table.svelte} +1 -1
  22. package/dist/components/Library/ArticleEditor/{ArticleBlockTable.svelte.d.ts → Blocks/Table.svelte.d.ts} +4 -4
  23. package/dist/components/Library/ArticleEditor/Blocks/index.d.ts +7 -0
  24. package/dist/components/Library/ArticleEditor/Blocks/index.js +7 -0
  25. package/dist/components/Library/ArticleEditor/index.d.ts +1 -9
  26. package/dist/components/Library/ArticleEditor/index.js +1 -9
  27. package/dist/components/Library/AsyncButton/AsyncButton.demo.svelte +2 -6
  28. package/dist/components/Library/AsyncButton/AsyncButton.svelte +9 -5
  29. package/dist/components/Library/AsyncButton/AsyncButton.svelte.d.ts +2 -1
  30. package/dist/components/Library/Button/Button.demo.svelte +2 -17
  31. package/dist/components/Library/Button/Button.demo.svelte.d.ts +0 -1
  32. package/dist/components/Library/Button/Button.svelte +15 -16
  33. package/dist/components/Library/Button/Button.svelte.d.ts +2 -1
  34. package/dist/components/Library/Calendar/Calendar.svelte +17 -27
  35. package/dist/components/Library/Checkbox/Checkbox.demo.svelte +7 -4
  36. package/dist/components/Library/Checkbox/Checkbox.svelte +24 -61
  37. package/dist/components/Library/Checkbox/Checkbox.svelte.d.ts +2 -4
  38. package/dist/components/Library/ChipInput/ChipInput.demo.svelte +2 -2
  39. package/dist/components/Library/ChipInput/ChipInput.svelte +7 -11
  40. package/dist/components/Library/ChipInput/ChipInput.svelte.d.ts +3 -2
  41. package/dist/components/Library/Dropdown/Action.svelte +1 -1
  42. package/dist/components/Library/Dropdown/Dropdown.demo.svelte +10 -10
  43. package/dist/components/Library/Dropdown/Dropdown.svelte +2 -6
  44. package/dist/components/Library/Dropdown/Item.svelte +2 -2
  45. package/dist/components/Library/Dropdown/Section.svelte +1 -1
  46. package/dist/components/Library/Dropdown/Trigger.svelte +3 -7
  47. package/dist/components/Library/Image/Image.demo.svelte +3 -3
  48. package/dist/components/Library/Image/Image.svelte +57 -12
  49. package/dist/components/Library/Image/Image.svelte.d.ts +1 -2
  50. package/dist/components/Library/Image/ImagePlaceholder.demo.svelte +12 -0
  51. package/dist/components/Library/Image/ImagePlaceholder.demo.svelte.d.ts +23 -0
  52. package/dist/components/Library/Image/ImagePlaceholder.svelte +28 -4
  53. package/dist/components/Library/Image/ImagePlaceholder.svelte.d.ts +1 -1
  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 +6 -6
  57. package/dist/components/Library/ImageMask/ImageMask.demo.svelte +10 -8
  58. package/dist/components/Library/ImageMask/ImageMask.svelte +14 -6
  59. package/dist/components/Library/ImageMask/ImageMask.svelte.d.ts +1 -2
  60. package/dist/components/Library/ImageMask/MaskLayer.svelte +12 -6
  61. package/dist/components/Library/Label/Label.demo.svelte +9 -3
  62. package/dist/components/Library/Label/Label.svelte +8 -2
  63. package/dist/components/Library/Link/Link.svelte +10 -22
  64. package/dist/components/Library/Link/Link.svelte.d.ts +2 -3
  65. package/dist/components/Library/Loader/Loader.demo.svelte +9 -3
  66. package/dist/components/Library/NavigationStack/Link.svelte +8 -12
  67. package/dist/components/Library/NavigationStack/Link.svelte.d.ts +1 -3
  68. package/dist/components/Library/NavigationStack/SidebarToggle.svelte +8 -2
  69. package/dist/components/Library/NumberField/NumberField.svelte +21 -17
  70. package/dist/components/Library/NumberField/NumberField.svelte.d.ts +4 -2
  71. package/dist/components/Library/Pagination/Pagination.svelte +3 -3
  72. package/dist/components/Library/Popover/Popover.svelte +2 -7
  73. package/dist/components/Library/ScrollView/ScrollView.demo.svelte +50 -0
  74. package/dist/components/Library/ScrollView/ScrollView.demo.svelte.d.ts +10 -0
  75. package/dist/components/Library/ScrollView/ScrollView.svelte +414 -67
  76. package/dist/components/Library/ScrollView/ScrollView.svelte.d.ts +17 -1
  77. package/dist/components/Library/ScrollView/index.d.ts +1 -1
  78. package/dist/components/Library/SearchField/SearchField.demo.svelte +2 -2
  79. package/dist/components/Library/SearchField/SearchField.svelte +9 -4
  80. package/dist/components/Library/SearchField/SearchField.svelte.d.ts +2 -1
  81. package/dist/components/Library/SegmentedPicker/SegmentedPicker.demo.svelte +2 -2
  82. package/dist/components/Library/SegmentedPicker/SegmentedPicker.svelte +7 -7
  83. package/dist/components/Library/Sheet/Sheet.demo.svelte +1 -1
  84. package/dist/components/Library/Sheet/Sheet.svelte +2 -7
  85. package/dist/components/Library/Slider/Slider.demo.svelte +1 -1
  86. package/dist/components/Library/Slider/Slider.svelte +11 -7
  87. package/dist/components/Library/Slider/Slider.svelte.d.ts +2 -1
  88. package/dist/components/Library/Spinner/Spinner.demo.svelte +1 -1
  89. package/dist/components/Library/Switch/Switch.demo.svelte +7 -4
  90. package/dist/components/Library/Switch/Switch.svelte +28 -68
  91. package/dist/components/Library/Switch/Switch.svelte.d.ts +2 -4
  92. package/dist/components/Library/Table/Column.svelte +81 -0
  93. package/dist/components/Library/Table/Column.svelte.d.ts +39 -0
  94. package/dist/components/Library/Table/Table.demo.svelte +148 -0
  95. package/dist/components/Library/Table/Table.demo.svelte.d.ts +10 -0
  96. package/dist/components/Library/Table/Table.svelte +624 -0
  97. package/dist/components/Library/Table/Table.svelte.d.ts +42 -0
  98. package/dist/components/Library/Table/context.d.ts +5 -0
  99. package/dist/components/Library/Table/context.js +2 -0
  100. package/dist/components/Library/Table/index.js +5 -0
  101. package/dist/components/Library/Table/types.d.ts +37 -0
  102. package/dist/components/Library/Table/types.js +1 -0
  103. package/dist/components/Library/Text/Text.demo.svelte +21 -0
  104. package/dist/components/Library/Text/Text.demo.svelte.d.ts +24 -0
  105. package/dist/components/Library/Text/Text.svelte +41 -0
  106. package/dist/components/Library/Text/Text.svelte.d.ts +9 -0
  107. package/dist/components/Library/Text/index.d.ts +1 -0
  108. package/dist/components/Library/Text/index.js +1 -0
  109. package/dist/components/Library/TextEditor/TextEditor.svelte +15 -9
  110. package/dist/components/Library/TextEditor/TextEditor.svelte.d.ts +2 -4
  111. package/dist/components/Library/TextField/TextField.demo.svelte +1 -1
  112. package/dist/components/Library/TextField/TextField.svelte +21 -18
  113. package/dist/components/Library/TextField/TextField.svelte.d.ts +4 -2
  114. package/dist/components/Library/TextShimmer/TextShimmer.demo.svelte +1 -1
  115. package/dist/components/Library/TimePicker/TimePicker.demo.svelte +10 -2
  116. package/dist/components/Library/TimePicker/TimePicker.svelte +10 -5
  117. package/dist/components/Library/TokenSearchField/TokenSearchField.demo.svelte +4 -2
  118. package/dist/components/Library/TokenSearchField/TokenSearchField.svelte +11 -11
  119. package/dist/components/Library/TokenSearchField/TokenSearchField.svelte.d.ts +2 -1
  120. package/dist/components/Library/WheelPicker/WheelColumn.svelte +183 -126
  121. package/dist/components/Library/WheelPicker/WheelPicker.svelte +4 -4
  122. package/dist/components/Library/WheelPicker/WheelPicker.svelte.d.ts +2 -2
  123. package/dist/components/Library/WheelPicker/index.d.ts +1 -1
  124. package/dist/components/Library/WheelPicker/types.d.ts +6 -0
  125. package/dist/components/Local/ColorStyleControls.svelte +201 -0
  126. package/dist/components/Local/ColorStyleControls.svelte.d.ts +13 -0
  127. package/dist/components/Local/HeroCard.svelte +3 -3
  128. package/dist/components/Local/LayoutStyleControls.svelte +67 -0
  129. package/dist/components/Local/LayoutStyleControls.svelte.d.ts +11 -0
  130. package/dist/components/Local/StyleControls.svelte +48 -124
  131. package/dist/components/Local/StyleControls.svelte.d.ts +7 -5
  132. package/dist/index.d.ts +9 -2
  133. package/dist/index.js +5 -1
  134. package/dist/style/index.css +7 -12
  135. package/dist/style/label.d.ts +2 -1
  136. package/dist/style/label.js +2 -1
  137. package/dist/style/surface.js +4 -0
  138. package/dist/style/text-editor.d.ts +2 -13
  139. package/dist/style/text-editor.js +1 -12
  140. package/dist/style/text.d.ts +26 -0
  141. package/dist/style/text.js +69 -0
  142. package/dist/style/tooltip.d.ts +4 -0
  143. package/dist/style/tooltip.js +1 -0
  144. package/dist/style.css +41 -114
  145. package/package.json +1 -1
  146. package/dist/components/Library/ArticleEditor/ArticleBlockCode.svelte.d.ts +0 -8
  147. package/dist/components/Library/ArticleEditor/ArticleBlockFAQ.svelte.d.ts +0 -8
  148. package/dist/components/Library/ArticleEditor/ArticleBlockFallback.svelte +0 -79
  149. package/dist/components/Library/ArticleEditor/ArticleBlockImage.svelte +0 -48
  150. package/dist/components/Library/ArticleEditor/ArticleBlockImage.svelte.d.ts +0 -9
  151. package/dist/components/Library/ArticleEditor/ArticleBlockParagraph.svelte.d.ts +0 -15
  152. package/dist/components/Library/ArticleEditor/ArticleImagePreview.svelte +0 -71
  153. package/dist/components/Library/ArticleEditor/ArticleImagePreview.svelte.d.ts +0 -8
@@ -25,16 +25,16 @@
25
25
  paddingY={15}
26
26
  >
27
27
  {#if title}
28
- <h1 class="text-3xl font-semibold tracking-tight text-[var(--sveltely-primary-color)]">
28
+ <h1 class="text-3xl font-semibold tracking-tight text-[var(--sveltely-text-primary-color)]">
29
29
  {title}
30
30
  </h1>
31
31
  {#if description}
32
- <p class="max-w-3xl text-sm text-[var(--sveltely-secondary-color)]">{description}</p>
32
+ <p class="max-w-3xl text-sm text-[var(--sveltely-text-secondary-color)]">{description}</p>
33
33
  {/if}
34
34
  {/if}
35
35
  <div class="hero-card-content">
36
36
  {#if children}
37
- <HStack minWidth="min-content" minHeight="100%" align="center" justify="center">
37
+ <HStack width="100%" height="100%" minWidth="min-content" align="center" justify="center">
38
38
  {@render children()}
39
39
  </HStack>
40
40
  {/if}
@@ -0,0 +1,67 @@
1
+ <script lang="ts">
2
+ import Slider from '../Library/Slider';
3
+ import VStack from '../Library/VStack';
4
+
5
+ type Props = {
6
+ fontSize?: number;
7
+ borderRadius?: number;
8
+ paddingX?: number;
9
+ paddingY?: number;
10
+ gap?: number;
11
+ inset?: number;
12
+ };
13
+
14
+ let {
15
+ fontSize = $bindable(10),
16
+ borderRadius = $bindable(7.5),
17
+ paddingX = $bindable(7.5),
18
+ paddingY = $bindable(7.5),
19
+ gap = $bindable(5),
20
+ inset = $bindable(2.5)
21
+ }: Props = $props();
22
+ </script>
23
+
24
+ <VStack gap={5}>
25
+ <div class="vstack gap-2">
26
+ <div class="hstack items-center justify-between gap-3">
27
+ <span class="font-medium">Font size</span>
28
+ <span class="text-[var(--sveltely-text-secondary-color)]">{fontSize.toFixed(1)}</span>
29
+ </div>
30
+ <Slider bind:value={fontSize} min={5} max={20} step={0.5} />
31
+ </div>
32
+ <div class="vstack gap-2">
33
+ <div class="hstack items-center justify-between gap-3">
34
+ <span class="font-medium">Border radius</span>
35
+ <span class="text-[var(--sveltely-text-secondary-color)]">{borderRadius.toFixed(1)}</span>
36
+ </div>
37
+ <Slider bind:value={borderRadius} min={0} max={30} step={0.5} />
38
+ </div>
39
+ <div class="vstack gap-2">
40
+ <div class="hstack items-center justify-between gap-3">
41
+ <span class="font-medium">Padding X</span>
42
+ <span class="text-[var(--sveltely-text-secondary-color)]">{paddingX.toFixed(1)}</span>
43
+ </div>
44
+ <Slider bind:value={paddingX} min={0} max={20} step="any" />
45
+ </div>
46
+ <div class="vstack gap-2">
47
+ <div class="hstack items-center justify-between gap-3">
48
+ <span class="font-medium">Padding Y</span>
49
+ <span class="text-[var(--sveltely-text-secondary-color)]">{paddingY.toFixed(1)}</span>
50
+ </div>
51
+ <Slider bind:value={paddingY} min={0} max={20} step="any" />
52
+ </div>
53
+ <div class="vstack gap-2">
54
+ <div class="hstack items-center justify-between gap-3">
55
+ <span class="font-medium">Gap</span>
56
+ <span class="text-[var(--sveltely-text-secondary-color)]">{gap.toFixed(1)}</span>
57
+ </div>
58
+ <Slider bind:value={gap} min={0} max={20} step="any" />
59
+ </div>
60
+ <div class="vstack gap-2">
61
+ <div class="hstack items-center justify-between gap-3">
62
+ <span class="font-medium">Inset</span>
63
+ <span class="text-[var(--sveltely-text-secondary-color)]">{inset.toFixed(1)}</span>
64
+ </div>
65
+ <Slider bind:value={inset} min={0} max={10} step="any" />
66
+ </div>
67
+ </VStack>
@@ -0,0 +1,11 @@
1
+ type Props = {
2
+ fontSize?: number;
3
+ borderRadius?: number;
4
+ paddingX?: number;
5
+ paddingY?: number;
6
+ gap?: number;
7
+ inset?: number;
8
+ };
9
+ declare const LayoutStyleControls: import("svelte").Component<Props, {}, "borderRadius" | "fontSize" | "gap" | "inset" | "paddingX" | "paddingY">;
10
+ type LayoutStyleControls = ReturnType<typeof LayoutStyleControls>;
11
+ export default LayoutStyleControls;
@@ -1,5 +1,10 @@
1
1
  <script lang="ts">
2
- import Slider from '../Library/Slider';
2
+ import ColorStyleControls from './ColorStyleControls.svelte';
3
+ import LayoutStyleControls from './LayoutStyleControls.svelte';
4
+ import SegmentedPicker from '../Library/SegmentedPicker';
5
+ import VStack from '../Library/VStack';
6
+
7
+ type Panel = 'layout' | 'colors';
3
8
 
4
9
  type Props = {
5
10
  fontSize?: number;
@@ -9,11 +14,13 @@
9
14
  gap?: number;
10
15
  inset?: number;
11
16
  borderColor?: string;
12
- primaryColor?: string;
13
- secondaryColor?: string;
14
- activeColor?: string;
15
- inactiveColor?: string;
17
+ textPrimaryColor?: string;
18
+ textSecondaryColor?: string;
19
+ textTertiaryColor?: string;
16
20
  backgroundColor?: string;
21
+ controlActiveColor?: string;
22
+ controlInactiveColor?: string;
23
+ controlBackgroundColor?: string;
17
24
  };
18
25
 
19
26
  let {
@@ -24,127 +31,44 @@
24
31
  gap = $bindable(5),
25
32
  inset = $bindable(2.5),
26
33
  borderColor = $bindable('#e4e4e7'),
27
- primaryColor = $bindable('#18181b'),
28
- secondaryColor = $bindable('#71717a'),
29
- activeColor = $bindable('#18181b'),
30
- inactiveColor = $bindable('#f4f4f5'),
31
- backgroundColor = $bindable('#ffffff')
34
+ textPrimaryColor = $bindable('#18181b'),
35
+ textSecondaryColor = $bindable('#71717a'),
36
+ textTertiaryColor = $bindable('#a1a1aa'),
37
+ backgroundColor = $bindable('#ffffff'),
38
+ controlActiveColor = $bindable('#18181b'),
39
+ controlInactiveColor = $bindable('#f4f4f5'),
40
+ controlBackgroundColor = $bindable('#fafafa')
32
41
  }: Props = $props();
42
+
43
+ const panelOptions = [
44
+ { label: 'Layout', value: 'layout' },
45
+ { label: 'Colors', value: 'colors' }
46
+ ];
47
+
48
+ let panel = $state<Panel>('layout');
33
49
  </script>
34
50
 
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>
42
- <div class="vstack gap-2">
43
- <div class="hstack items-center justify-between gap-3">
44
- <span class="font-medium">Font size</span>
45
- <span class="text-[var(--sveltely-secondary-color)]">{fontSize.toFixed(1)}</span>
46
- </div>
47
- <Slider bind:value={fontSize} min={5} max={20} step={0.5} />
48
- </div>
49
- <div class="vstack gap-2">
50
- <div class="hstack items-center justify-between gap-3">
51
- <span class="font-medium">Border radius</span>
52
- <span class="text-[var(--sveltely-secondary-color)]">{borderRadius.toFixed(1)}</span>
53
- </div>
54
- <Slider bind:value={borderRadius} min={0} max={30} step={0.5} />
55
- </div>
56
- <div class="vstack gap-2">
57
- <div class="hstack items-center justify-between gap-3">
58
- <span class="font-medium">Padding X</span>
59
- <span class="text-[var(--sveltely-secondary-color)]">{paddingX.toFixed(1)}</span>
60
- </div>
61
- <Slider bind:value={paddingX} min={0} max={20} step="any" />
62
- </div>
63
- <div class="vstack gap-2">
64
- <div class="hstack items-center justify-between gap-3">
65
- <span class="font-medium">Padding Y</span>
66
- <span class="text-[var(--sveltely-secondary-color)]">{paddingY.toFixed(1)}</span>
67
- </div>
68
- <Slider bind:value={paddingY} min={0} max={20} step="any" />
69
- </div>
70
- <div class="vstack gap-2">
71
- <div class="hstack items-center justify-between gap-3">
72
- <span class="font-medium">Gap</span>
73
- <span class="text-[var(--sveltely-secondary-color)]">{gap.toFixed(1)}</span>
74
- </div>
75
- <Slider bind:value={gap} min={0} max={20} step="any" />
76
- </div>
77
- <div class="vstack gap-2">
78
- <div class="hstack items-center justify-between gap-3">
79
- <span class="font-medium">Inset</span>
80
- <span class="text-[var(--sveltely-secondary-color)]">{inset.toFixed(1)}</span>
81
- </div>
82
- <Slider bind:value={inset} min={0} max={10} step="any" />
83
- </div>
84
- <div class="vstack gap-2">
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>
88
- </div>
89
- <input
90
- bind:value={primaryColor}
91
- type="color"
92
- class="h-10 w-full cursor-pointer rounded-md border border-zinc-200 bg-white p-1"
93
- />
94
- </div>
95
- <div class="vstack gap-2">
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>
99
- </div>
100
- <input
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}
124
- type="color"
125
- class="h-10 w-full cursor-pointer rounded-md border border-zinc-200 bg-white p-1"
126
- />
127
- </div>
128
- <div class="vstack gap-2">
129
- <div class="hstack items-center justify-between gap-3">
130
- <span class="font-medium">Active color</span>
131
- <span class="text-[var(--sveltely-secondary-color)]">{activeColor}</span>
132
- </div>
133
- <input
134
- bind:value={activeColor}
135
- type="color"
136
- class="h-10 w-full cursor-pointer rounded-md border border-zinc-200 bg-white p-1"
51
+ <VStack gap={7.5} fontSize={8.75} color="var(--sveltely-text-primary-color)">
52
+ <SegmentedPicker options={panelOptions} bind:value={panel} />
53
+ {#if panel === 'layout'}
54
+ <LayoutStyleControls
55
+ bind:fontSize
56
+ bind:borderRadius
57
+ bind:paddingX
58
+ bind:paddingY
59
+ bind:gap
60
+ bind:inset
137
61
  />
138
- </div>
139
- <div class="vstack gap-2">
140
- <div class="hstack items-center justify-between gap-3">
141
- <span class="font-medium">Inactive color</span>
142
- <span class="text-[var(--sveltely-secondary-color)]">{inactiveColor}</span>
143
- </div>
144
- <input
145
- bind:value={inactiveColor}
146
- type="color"
147
- class="h-10 w-full cursor-pointer rounded-md border border-zinc-200 bg-white p-1"
62
+ {:else}
63
+ <ColorStyleControls
64
+ bind:borderColor
65
+ bind:textPrimaryColor
66
+ bind:textSecondaryColor
67
+ bind:textTertiaryColor
68
+ bind:backgroundColor
69
+ bind:controlActiveColor
70
+ bind:controlInactiveColor
71
+ bind:controlBackgroundColor
148
72
  />
149
- </div>
150
- </div>
73
+ {/if}
74
+ </VStack>
@@ -6,12 +6,14 @@ type Props = {
6
6
  gap?: number;
7
7
  inset?: number;
8
8
  borderColor?: string;
9
- primaryColor?: string;
10
- secondaryColor?: string;
11
- activeColor?: string;
12
- inactiveColor?: string;
9
+ textPrimaryColor?: string;
10
+ textSecondaryColor?: string;
11
+ textTertiaryColor?: string;
13
12
  backgroundColor?: string;
13
+ controlActiveColor?: string;
14
+ controlInactiveColor?: string;
15
+ controlBackgroundColor?: string;
14
16
  };
15
- declare const StyleControls: import("svelte").Component<Props, {}, "backgroundColor" | "borderColor" | "borderRadius" | "fontSize" | "gap" | "inset" | "paddingX" | "paddingY" | "primaryColor" | "secondaryColor" | "activeColor" | "inactiveColor">;
17
+ declare const StyleControls: import("svelte").Component<Props, {}, "backgroundColor" | "borderColor" | "borderRadius" | "fontSize" | "gap" | "inset" | "paddingX" | "paddingY" | "textPrimaryColor" | "textSecondaryColor" | "textTertiaryColor" | "controlActiveColor" | "controlInactiveColor" | "controlBackgroundColor">;
16
18
  type StyleControls = ReturnType<typeof StyleControls>;
17
19
  export default StyleControls;
package/dist/index.d.ts CHANGED
@@ -13,8 +13,11 @@ export { ImageFit, ImageLoading } from './style/media';
13
13
  export type { ImageFitValue, ImageLoadingValue } from './style/media';
14
14
  export { ScrollAxis } from './style/scroll';
15
15
  export type { ScrollAxisValue } from './style/scroll';
16
- export { TextAlignment, TextFieldType, TextInputMode } from './style/text-editor';
17
- export type { TextAlignmentValue, TextEditorProps, TextFieldTypeValue, TextInputModeValue } from './style/text-editor';
16
+ export { TextAlignment, TextAs } from './style/text';
17
+ export type { TextAlignmentValue, TextAsValue, TextProps } from './style/text';
18
+ export { TextFieldType, TextInputMode } from './style/text-editor';
19
+ export type { TextEditorProps, TextFieldTypeValue, TextInputModeValue } from './style/text-editor';
20
+ export type { TooltipProps } from './style/tooltip';
18
21
  export { default as AnimatedNumber } from './components/Library/AnimatedNumber';
19
22
  export * from './components/Library/ArticleEditor';
20
23
  export { default as Button } from './components/Library/Button';
@@ -24,6 +27,7 @@ export { default as Grid } from './components/Library/Grid';
24
27
  export { GridItem } from './components/Library/Grid';
25
28
  export { default as HStack } from './components/Library/HStack';
26
29
  export { default as Image } from './components/Library/Image';
30
+ export { ImagePlaceholder } from './components/Library/Image';
27
31
  export { default as ImageMask } from './components/Library/ImageMask';
28
32
  export type { ImageMaskValue } from './components/Library/ImageMask';
29
33
  export { default as Label } from './components/Library/Label';
@@ -43,6 +47,9 @@ export { default as Sheet } from './components/Library/Sheet';
43
47
  export { default as Spacer } from './components/Library/Spacer';
44
48
  export { default as Spinner } from './components/Library/Spinner';
45
49
  export { default as TextShimmer } from './components/Library/TextShimmer';
50
+ export { default as Table } from './components/Library/Table';
51
+ export type { TableColumn, TableColumnAlignment, TableColumnCustomization, TableColumnHeaderVisibility, TableRowKey, TableSelection, TableSelectionMode, TableSpanValue, TableSortDescriptor, TableSortDirection } from './components/Library/Table';
52
+ export { default as Text } from './components/Library/Text';
46
53
  export { default as TextEditor } from './components/Library/TextEditor';
47
54
  export { default as TextField } from './components/Library/TextField';
48
55
  export { default as Popover } from './components/Library/Popover';
package/dist/index.js CHANGED
@@ -6,7 +6,8 @@ export { LayoutAlignment, LayoutJustification, LayoutSize } from './style/layout
6
6
  export { LabelOrientation } from './style/label';
7
7
  export { ImageFit, ImageLoading } from './style/media';
8
8
  export { ScrollAxis } from './style/scroll';
9
- export { TextAlignment, TextFieldType, TextInputMode } from './style/text-editor';
9
+ export { TextAlignment, TextAs } from './style/text';
10
+ export { TextFieldType, TextInputMode } from './style/text-editor';
10
11
  export { default as AnimatedNumber } from './components/Library/AnimatedNumber';
11
12
  export * from './components/Library/ArticleEditor';
12
13
  export { default as Button } from './components/Library/Button';
@@ -16,6 +17,7 @@ export { default as Grid } from './components/Library/Grid';
16
17
  export { GridItem } from './components/Library/Grid';
17
18
  export { default as HStack } from './components/Library/HStack';
18
19
  export { default as Image } from './components/Library/Image';
20
+ export { ImagePlaceholder } from './components/Library/Image';
19
21
  export { default as ImageMask } from './components/Library/ImageMask';
20
22
  export { default as Label } from './components/Library/Label';
21
23
  export { default as Link } from './components/Library/Link';
@@ -34,6 +36,8 @@ export { default as Sheet } from './components/Library/Sheet';
34
36
  export { default as Spacer } from './components/Library/Spacer';
35
37
  export { default as Spinner } from './components/Library/Spinner';
36
38
  export { default as TextShimmer } from './components/Library/TextShimmer';
39
+ export { default as Table } from './components/Library/Table';
40
+ export { default as Text } from './components/Library/Text';
37
41
  export { default as TextEditor } from './components/Library/TextEditor';
38
42
  export { default as TextField } from './components/Library/TextField';
39
43
  export { default as Popover } from './components/Library/Popover';
@@ -12,14 +12,13 @@
12
12
  --sveltely-padding-x: 0.75rem;
13
13
  --sveltely-padding-y: 0.75rem;
14
14
  --sveltely-gap: 0.5rem;
15
- --sveltely-primary-color: var(--color-zinc-900);
16
- --sveltely-secondary-color: var(--color-zinc-500);
17
- --sveltely-active-color: var(--color-zinc-900);
18
- --sveltely-inactive-color: var(--color-zinc-100);
15
+ --sveltely-text-primary-color: var(--color-zinc-900);
16
+ --sveltely-text-secondary-color: var(--color-zinc-500);
17
+ --sveltely-text-tertiary-color: var(--color-zinc-400);
19
18
  --sveltely-background-color: white;
20
- --sveltely-hover-color: color-mix(in oklab, var(--sveltely-active-color) 5%, transparent);
21
- --sveltely-inactive-hover-color: color-mix(in oklab, var(--sveltely-inactive-color) 88%, white);
22
- --sveltely-active-hover-color: color-mix(in oklab, var(--sveltely-active-color) 88%, white);
19
+ --sveltely-control-active-color: var(--color-zinc-900);
20
+ --sveltely-control-inactive-color: var(--color-zinc-100);
21
+ --sveltely-control-background-color: var(--color-zinc-50);
23
22
  --sveltely-shadow: 0 16px 40px rgb(0 0 0 / 0.12), 0 4px 14px rgb(0 0 0 / 0.08);
24
23
  --sveltely-border-radius-nested: clamp(
25
24
  0px,
@@ -33,7 +32,7 @@
33
32
  body {
34
33
  @apply size-full overflow-hidden;
35
34
  background: var(--sveltely-background-color);
36
- color: var(--sveltely-primary-color);
35
+ color: var(--sveltely-text-primary-color);
37
36
  -webkit-user-select: none;
38
37
  user-select: none;
39
38
  }
@@ -53,10 +52,6 @@
53
52
  background-clip: padding-box;
54
53
  }
55
54
 
56
- button {
57
- cursor: pointer;
58
- }
59
-
60
55
  button:disabled {
61
56
  cursor: not-allowed;
62
57
  }
@@ -1,6 +1,7 @@
1
1
  export declare const LabelOrientation: {
2
2
  readonly top: "top";
3
- readonly left: "left";
3
+ readonly leading: "leading";
4
+ readonly trailing: "trailing";
4
5
  };
5
6
  export type LabelOrientationValue = (typeof LabelOrientation)[keyof typeof LabelOrientation];
6
7
  export type LabelOrientation = LabelOrientationValue;
@@ -1,4 +1,5 @@
1
1
  export const LabelOrientation = {
2
2
  top: 'top',
3
- left: 'left'
3
+ leading: 'leading',
4
+ trailing: 'trailing'
4
5
  };
@@ -9,6 +9,7 @@ const STYLE_PROP_KEYS = new Set([
9
9
  'borderColor',
10
10
  'color'
11
11
  ]);
12
+ const INTERNAL_STYLE_KEYS = new Set(['class', 'style']);
12
13
  const toRem = (value) => (value === undefined ? undefined : `${value / 10}rem`);
13
14
  const pushVar = (declarations, name, value) => {
14
15
  const resolved = toRem(value);
@@ -20,6 +21,9 @@ export const extractStyleProps = (props) => {
20
21
  const styleProps = {};
21
22
  const restProps = {};
22
23
  for (const [key, value] of Object.entries(props)) {
24
+ if (INTERNAL_STYLE_KEYS.has(key)) {
25
+ continue;
26
+ }
23
27
  if (STYLE_PROP_KEYS.has(key)) {
24
28
  styleProps[key] = value;
25
29
  continue;
@@ -1,12 +1,5 @@
1
- export declare const TextAlignment: {
2
- readonly left: "left";
3
- readonly center: "center";
4
- readonly right: "right";
5
- readonly start: "start";
6
- readonly end: "end";
7
- };
8
- export type TextAlignmentValue = (typeof TextAlignment)[keyof typeof TextAlignment];
9
- export type TextAlignment = TextAlignmentValue;
1
+ export { TextAlignment, TextAs, textStyle as textEditorStyle } from './text';
2
+ export type { TextAlignmentValue, TextAlignment, TextAsValue, TextAs, TextProps as TextEditorProps } from './text';
10
3
  export declare const TextInputMode: {
11
4
  readonly none: "none";
12
5
  readonly text: "text";
@@ -28,7 +21,3 @@ export type TextInputModeValue = (typeof TextInputMode)[keyof typeof TextInputMo
28
21
  export type TextFieldTypeValue = (typeof TextFieldType)[keyof typeof TextFieldType];
29
22
  export type TextInputMode = TextInputModeValue;
30
23
  export type TextFieldType = TextFieldTypeValue;
31
- export type TextEditorProps = {
32
- textAlign?: TextAlignment;
33
- };
34
- export declare const textEditorStyle: (props?: TextEditorProps, prefix?: string) => string;
@@ -1,10 +1,4 @@
1
- export const TextAlignment = {
2
- left: 'left',
3
- center: 'center',
4
- right: 'right',
5
- start: 'start',
6
- end: 'end'
7
- };
1
+ export { TextAlignment, TextAs, textStyle as textEditorStyle } from './text';
8
2
  export const TextInputMode = {
9
3
  none: 'none',
10
4
  text: 'text',
@@ -22,8 +16,3 @@ export const TextFieldType = {
22
16
  url: 'url',
23
17
  tel: 'tel'
24
18
  };
25
- export const textEditorStyle = (props, prefix = 'text-field') => {
26
- if (!props?.textAlign)
27
- return '';
28
- return `--${prefix}-text-align: ${props.textAlign};`;
29
- };
@@ -0,0 +1,26 @@
1
+ export declare const TextAlignment: {
2
+ readonly left: "left";
3
+ readonly center: "center";
4
+ readonly right: "right";
5
+ readonly start: "start";
6
+ readonly end: "end";
7
+ };
8
+ export declare const TextAs: {
9
+ readonly h1: "h1";
10
+ readonly h2: "h2";
11
+ readonly h3: "h3";
12
+ readonly h4: "h4";
13
+ readonly h5: "h5";
14
+ readonly h6: "h6";
15
+ readonly paragraph: "paragraph";
16
+ };
17
+ export type TextAlignmentValue = (typeof TextAlignment)[keyof typeof TextAlignment];
18
+ export type TextAlignment = TextAlignmentValue;
19
+ export type TextAsValue = (typeof TextAs)[keyof typeof TextAs];
20
+ export type TextAs = TextAsValue;
21
+ export type TextProps = {
22
+ as?: TextAs;
23
+ textAlign?: TextAlignment;
24
+ };
25
+ export declare const textElementFor: (as?: TextAs) => "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "span" | "p";
26
+ export declare const textStyle: (props?: TextProps, prefix?: string) => string;
@@ -0,0 +1,69 @@
1
+ export const TextAlignment = {
2
+ left: 'left',
3
+ center: 'center',
4
+ right: 'right',
5
+ start: 'start',
6
+ end: 'end'
7
+ };
8
+ export const TextAs = {
9
+ h1: 'h1',
10
+ h2: 'h2',
11
+ h3: 'h3',
12
+ h4: 'h4',
13
+ h5: 'h5',
14
+ h6: 'h6',
15
+ paragraph: 'paragraph'
16
+ };
17
+ const TEXT_METRICS = {
18
+ h1: {
19
+ fontSize: 'calc(var(--sveltely-font-size) * 2.25)',
20
+ fontWeight: '700',
21
+ lineHeight: '1.05'
22
+ },
23
+ h2: {
24
+ fontSize: 'calc(var(--sveltely-font-size) * 1.875)',
25
+ fontWeight: '700',
26
+ lineHeight: '1.1'
27
+ },
28
+ h3: {
29
+ fontSize: 'calc(var(--sveltely-font-size) * 1.5)',
30
+ fontWeight: '650',
31
+ lineHeight: '1.15'
32
+ },
33
+ h4: {
34
+ fontSize: 'calc(var(--sveltely-font-size) * 1.25)',
35
+ fontWeight: '650',
36
+ lineHeight: '1.2'
37
+ },
38
+ h5: {
39
+ fontSize: 'calc(var(--sveltely-font-size) * 1.125)',
40
+ fontWeight: '600',
41
+ lineHeight: '1.25'
42
+ },
43
+ h6: {
44
+ fontSize: 'var(--sveltely-font-size)',
45
+ fontWeight: '600',
46
+ lineHeight: '1.25'
47
+ },
48
+ paragraph: {
49
+ fontSize: 'var(--sveltely-font-size)',
50
+ fontWeight: '400',
51
+ lineHeight: '1.5'
52
+ }
53
+ };
54
+ export const textElementFor = (as) => {
55
+ if (!as)
56
+ return 'span';
57
+ return as === 'paragraph' ? 'p' : as;
58
+ };
59
+ export const textStyle = (props, prefix = 'text') => {
60
+ const declarations = [];
61
+ const metrics = TEXT_METRICS[props?.as ?? 'paragraph'];
62
+ declarations.push(`--${prefix}-font-size: ${metrics.fontSize};`);
63
+ declarations.push(`--${prefix}-font-weight: ${metrics.fontWeight};`);
64
+ declarations.push(`--${prefix}-line-height: ${metrics.lineHeight};`);
65
+ if (props?.textAlign) {
66
+ declarations.push(`--${prefix}-text-align: ${props.textAlign};`);
67
+ }
68
+ return declarations.join(' ');
69
+ };
@@ -0,0 +1,4 @@
1
+ import type { TooltipOptions } from '../actions/tooltip';
2
+ export type TooltipProps = {
3
+ tooltip?: TooltipOptions | null;
4
+ };
@@ -0,0 +1 @@
1
+ export {};