@tableslayer/ui 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/dist/components/PropsTable/PropsTable.svelte +1 -1
  2. package/package.json +9 -9
  3. package/src/lib/components/Avatar/Avatar.svelte +0 -82
  4. package/src/lib/components/Avatar/AvatarFileInput.svelte +0 -85
  5. package/src/lib/components/Avatar/AvatarPopover.svelte +0 -34
  6. package/src/lib/components/Avatar/index.ts +0 -4
  7. package/src/lib/components/Avatar/types.ts +0 -24
  8. package/src/lib/components/BrushSizeSlider/BrushSizeSlider.svelte +0 -174
  9. package/src/lib/components/BrushSizeSlider/index.ts +0 -1
  10. package/src/lib/components/Button/Button.svelte +0 -182
  11. package/src/lib/components/Button/ConfirmActionButton.svelte +0 -98
  12. package/src/lib/components/Button/IconButton.svelte +0 -121
  13. package/src/lib/components/Button/RadioButton.svelte +0 -93
  14. package/src/lib/components/Button/index.ts +0 -5
  15. package/src/lib/components/Button/types.ts +0 -54
  16. package/src/lib/components/CardFan/CardFan.svelte +0 -165
  17. package/src/lib/components/CardFan/index.ts +0 -2
  18. package/src/lib/components/CardFan/types.ts +0 -6
  19. package/src/lib/components/CodeBlock/Code.svelte +0 -7
  20. package/src/lib/components/CodeBlock/CodeBlock.svelte +0 -102
  21. package/src/lib/components/CodeBlock/index.ts +0 -3
  22. package/src/lib/components/CodeBlock/types.ts +0 -10
  23. package/src/lib/components/ColorMode/ColorMode.svelte +0 -8
  24. package/src/lib/components/ColorMode/index.ts +0 -2
  25. package/src/lib/components/ColorMode/types.ts +0 -12
  26. package/src/lib/components/ColorPicker/ColorPicker.svelte +0 -838
  27. package/src/lib/components/ColorPicker/ColorPickerSwatch.svelte +0 -32
  28. package/src/lib/components/ColorPicker/index.ts +0 -3
  29. package/src/lib/components/ColorPicker/types.ts +0 -51
  30. package/src/lib/components/ContextMenu/ContextMenu.svelte +0 -86
  31. package/src/lib/components/ContextMenu/index.ts +0 -2
  32. package/src/lib/components/ContextMenu/types.ts +0 -15
  33. package/src/lib/components/DrawingSliders/DrawingSliders.svelte +0 -379
  34. package/src/lib/components/DrawingSliders/index.ts +0 -1
  35. package/src/lib/components/Editor/Editor.svelte +0 -825
  36. package/src/lib/components/Editor/index.ts +0 -1
  37. package/src/lib/components/FogSliders/FogSliders.svelte +0 -33
  38. package/src/lib/components/FogSliders/index.ts +0 -1
  39. package/src/lib/components/Hr/Hr.svelte +0 -15
  40. package/src/lib/components/Hr/index.ts +0 -1
  41. package/src/lib/components/Icon/Icon.svelte +0 -6
  42. package/src/lib/components/Icon/index.ts +0 -2
  43. package/src/lib/components/Icon/types.ts +0 -20
  44. package/src/lib/components/Input/DualInputSlider.svelte +0 -126
  45. package/src/lib/components/Input/FileInput.svelte +0 -176
  46. package/src/lib/components/Input/FormControl.svelte +0 -150
  47. package/src/lib/components/Input/FormError.svelte +0 -37
  48. package/src/lib/components/Input/Input.svelte +0 -56
  49. package/src/lib/components/Input/InputCheckbox.svelte +0 -99
  50. package/src/lib/components/Input/InputSlider.svelte +0 -86
  51. package/src/lib/components/Input/Label.svelte +0 -19
  52. package/src/lib/components/Input/index.ts +0 -9
  53. package/src/lib/components/Input/types.ts +0 -39
  54. package/src/lib/components/Link/Link.svelte +0 -41
  55. package/src/lib/components/Link/LinkBox.svelte +0 -20
  56. package/src/lib/components/Link/LinkOverlay.svelte +0 -23
  57. package/src/lib/components/Link/index.ts +0 -4
  58. package/src/lib/components/Link/types.ts +0 -17
  59. package/src/lib/components/Loading/Loader.svelte +0 -60
  60. package/src/lib/components/Loading/Skeleton.svelte +0 -9
  61. package/src/lib/components/Loading/index.ts +0 -2
  62. package/src/lib/components/Logo/Logo.svelte +0 -16
  63. package/src/lib/components/Logo/index.ts +0 -1
  64. package/src/lib/components/MarkerTooltip/MarkerTooltip.svelte +0 -435
  65. package/src/lib/components/MarkerTooltip/index.ts +0 -1
  66. package/src/lib/components/Menu/SelectorMenu.svelte +0 -280
  67. package/src/lib/components/Menu/index.ts +0 -2
  68. package/src/lib/components/Menu/types.ts +0 -17
  69. package/src/lib/components/MyCounterButton.svelte +0 -11
  70. package/src/lib/components/Panel/index.ts +0 -2
  71. package/src/lib/components/Panel/panel.svelte +0 -18
  72. package/src/lib/components/Panel/types.ts +0 -8
  73. package/src/lib/components/PersistButton/PersistButton.svelte +0 -100
  74. package/src/lib/components/PersistButton/index.ts +0 -1
  75. package/src/lib/components/Popover/Popover.svelte +0 -81
  76. package/src/lib/components/Popover/index.ts +0 -2
  77. package/src/lib/components/Popover/types.ts +0 -19
  78. package/src/lib/components/PropsTable/PropsTable.svelte +0 -107
  79. package/src/lib/components/RadialMenu/EffectPreview.svelte +0 -36
  80. package/src/lib/components/RadialMenu/EffectPreviewScene.svelte +0 -194
  81. package/src/lib/components/RadialMenu/RadialMenu.svelte +0 -503
  82. package/src/lib/components/RadialMenu/RadialMenuItem.svelte +0 -176
  83. package/src/lib/components/RadialMenu/index.ts +0 -2
  84. package/src/lib/components/RadialMenu/types.ts +0 -35
  85. package/src/lib/components/Select/Select.svelte +0 -342
  86. package/src/lib/components/Select/index.ts +0 -2
  87. package/src/lib/components/Select/types.ts +0 -22
  88. package/src/lib/components/Spacer/Spacer.svelte +0 -14
  89. package/src/lib/components/Spacer/index.ts +0 -2
  90. package/src/lib/components/Spacer/types.ts +0 -5
  91. package/src/lib/components/Stage/components/AnnotationLayer/AnnotationLayer.svelte +0 -445
  92. package/src/lib/components/Stage/components/AnnotationLayer/AnnotationMaterial.svelte +0 -167
  93. package/src/lib/components/Stage/components/AnnotationLayer/types.ts +0 -196
  94. package/src/lib/components/Stage/components/CursorLayer/CursorLayer.svelte +0 -148
  95. package/src/lib/components/Stage/components/CursorLayer/cursor.svg +0 -26
  96. package/src/lib/components/Stage/components/CursorLayer/index.ts +0 -2
  97. package/src/lib/components/Stage/components/CursorLayer/types.ts +0 -23
  98. package/src/lib/components/Stage/components/DrawingLayer/DrawingMaterial.svelte +0 -364
  99. package/src/lib/components/Stage/components/DrawingLayer/types.ts +0 -65
  100. package/src/lib/components/Stage/components/EdgeOverlayLayer/EdgeOverlayLayer.svelte +0 -72
  101. package/src/lib/components/Stage/components/EdgeOverlayLayer/types.ts +0 -34
  102. package/src/lib/components/Stage/components/FogLayer/FogLayer.svelte +0 -75
  103. package/src/lib/components/Stage/components/FogLayer/types.ts +0 -51
  104. package/src/lib/components/Stage/components/FogOfWarLayer/FogOfWarLayer.svelte +0 -249
  105. package/src/lib/components/Stage/components/FogOfWarLayer/FogOfWarMaterial.svelte +0 -200
  106. package/src/lib/components/Stage/components/FogOfWarLayer/types.ts +0 -116
  107. package/src/lib/components/Stage/components/GridLayer/GridLayer.svelte +0 -20
  108. package/src/lib/components/Stage/components/GridLayer/GridMaterial.svelte +0 -69
  109. package/src/lib/components/Stage/components/GridLayer/types.ts +0 -79
  110. package/src/lib/components/Stage/components/LayerInput/LayerInput.svelte +0 -300
  111. package/src/lib/components/Stage/components/MapLayer/MapLayer.svelte +0 -196
  112. package/src/lib/components/Stage/components/MapLayer/dataSources/GifDataSource.ts +0 -265
  113. package/src/lib/components/Stage/components/MapLayer/dataSources/IMapDataSource.ts +0 -55
  114. package/src/lib/components/Stage/components/MapLayer/dataSources/ImageDataSource.ts +0 -87
  115. package/src/lib/components/Stage/components/MapLayer/dataSources/VideoDataSource.ts +0 -150
  116. package/src/lib/components/Stage/components/MapLayer/dataSources/dataSourceFactory.ts +0 -48
  117. package/src/lib/components/Stage/components/MapLayer/dataSources/index.ts +0 -16
  118. package/src/lib/components/Stage/components/MapLayer/types.ts +0 -58
  119. package/src/lib/components/Stage/components/MarkerLayer/MarkerLayer.svelte +0 -398
  120. package/src/lib/components/Stage/components/MarkerLayer/MarkerToken.svelte +0 -262
  121. package/src/lib/components/Stage/components/MarkerLayer/types.ts +0 -126
  122. package/src/lib/components/Stage/components/MeasurementLayer/MeasurementLayer.svelte +0 -364
  123. package/src/lib/components/Stage/components/MeasurementLayer/MeasurementManager.svelte +0 -473
  124. package/src/lib/components/Stage/components/MeasurementLayer/measurements/BaseMeasurement.ts +0 -427
  125. package/src/lib/components/Stage/components/MeasurementLayer/measurements/BeamMeasurement.ts +0 -105
  126. package/src/lib/components/Stage/components/MeasurementLayer/measurements/CircleMeasurement.ts +0 -98
  127. package/src/lib/components/Stage/components/MeasurementLayer/measurements/ConeMeasurement.ts +0 -163
  128. package/src/lib/components/Stage/components/MeasurementLayer/measurements/LineMeasurement.ts +0 -102
  129. package/src/lib/components/Stage/components/MeasurementLayer/measurements/RectangleMeasurement.ts +0 -120
  130. package/src/lib/components/Stage/components/MeasurementLayer/measurements/index.ts +0 -7
  131. package/src/lib/components/Stage/components/MeasurementLayer/types.ts +0 -94
  132. package/src/lib/components/Stage/components/MeasurementLayer/utils/canvasDrawing.ts +0 -357
  133. package/src/lib/components/Stage/components/MeasurementLayer/utils/distanceCalculations.ts +0 -170
  134. package/src/lib/components/Stage/components/ParticleSystem/ParticleSystem.svelte +0 -220
  135. package/src/lib/components/Stage/components/ParticleSystem/particles/atlases/ash.png +0 -0
  136. package/src/lib/components/Stage/components/ParticleSystem/particles/atlases/leaves.png +0 -0
  137. package/src/lib/components/Stage/components/ParticleSystem/particles/atlases/rain.png +0 -0
  138. package/src/lib/components/Stage/components/ParticleSystem/particles/atlases/snow.png +0 -0
  139. package/src/lib/components/Stage/components/ParticleSystem/rng.js +0 -20
  140. package/src/lib/components/Stage/components/ParticleSystem/types.ts +0 -95
  141. package/src/lib/components/Stage/components/PerformanceDebugger/PerformanceDebugger.svelte +0 -144
  142. package/src/lib/components/Stage/components/PerformanceDebugger/index.ts +0 -1
  143. package/src/lib/components/Stage/components/PerformanceOverlay/PerformanceOverlay.svelte +0 -208
  144. package/src/lib/components/Stage/components/PerformanceOverlay/index.ts +0 -1
  145. package/src/lib/components/Stage/components/PointerInputManager/PointerInputManager.svelte +0 -201
  146. package/src/lib/components/Stage/components/Scene/Scene.svelte +0 -651
  147. package/src/lib/components/Stage/components/Scene/luts.ts +0 -24
  148. package/src/lib/components/Stage/components/Scene/types.ts +0 -225
  149. package/src/lib/components/Stage/components/Stage/Stage.svelte +0 -332
  150. package/src/lib/components/Stage/components/Stage/types.ts +0 -136
  151. package/src/lib/components/Stage/components/WeatherLayer/WeatherLayer.svelte +0 -135
  152. package/src/lib/components/Stage/components/WeatherLayer/presets/AshPreset.ts +0 -71
  153. package/src/lib/components/Stage/components/WeatherLayer/presets/LeavesPreset.ts +0 -70
  154. package/src/lib/components/Stage/components/WeatherLayer/presets/RainPreset.ts +0 -68
  155. package/src/lib/components/Stage/components/WeatherLayer/presets/SnowPreset.ts +0 -70
  156. package/src/lib/components/Stage/components/WeatherLayer/presets/index.ts +0 -6
  157. package/src/lib/components/Stage/components/WeatherLayer/types.ts +0 -35
  158. package/src/lib/components/Stage/helpers/clippingPlaneStore.svelte.ts +0 -28
  159. package/src/lib/components/Stage/helpers/debugState.svelte.ts +0 -18
  160. package/src/lib/components/Stage/helpers/grid.ts +0 -548
  161. package/src/lib/components/Stage/helpers/lazyBrush.ts +0 -171
  162. package/src/lib/components/Stage/helpers/performanceMetrics.svelte.ts +0 -220
  163. package/src/lib/components/Stage/helpers/utils.ts +0 -21
  164. package/src/lib/components/Stage/index.ts +0 -49
  165. package/src/lib/components/Stage/shaders/AnnotationEffects.frag +0 -1070
  166. package/src/lib/components/Stage/shaders/Annotations.frag +0 -29
  167. package/src/lib/components/Stage/shaders/Drawing.frag +0 -83
  168. package/src/lib/components/Stage/shaders/Drawing.vert +0 -5
  169. package/src/lib/components/Stage/shaders/Fog.frag +0 -147
  170. package/src/lib/components/Stage/shaders/FractalNoise.frag +0 -96
  171. package/src/lib/components/Stage/shaders/GridShader.frag +0 -174
  172. package/src/lib/components/Stage/shaders/Overlay.frag +0 -23
  173. package/src/lib/components/Stage/shaders/Overlay.vert +0 -0
  174. package/src/lib/components/Stage/shaders/Particles.frag +0 -27
  175. package/src/lib/components/Stage/shaders/Particles.vert +0 -51
  176. package/src/lib/components/Stage/shaders/ToolOutline.frag +0 -59
  177. package/src/lib/components/Stage/shaders/default.vert +0 -8
  178. package/src/lib/components/Stage/types.ts +0 -4
  179. package/src/lib/components/Table/Table.svelte +0 -16
  180. package/src/lib/components/Table/Td.svelte +0 -17
  181. package/src/lib/components/Table/Th.svelte +0 -18
  182. package/src/lib/components/Table/index.ts +0 -4
  183. package/src/lib/components/Table/types.ts +0 -14
  184. package/src/lib/components/Text/Text.svelte +0 -23
  185. package/src/lib/components/Text/index.ts +0 -2
  186. package/src/lib/components/Text/types.ts +0 -12
  187. package/src/lib/components/Title/Title.svelte +0 -54
  188. package/src/lib/components/Title/index.ts +0 -2
  189. package/src/lib/components/Title/types.ts +0 -9
  190. package/src/lib/components/Toast/Toast.svelte +0 -155
  191. package/src/lib/components/Toast/index.ts +0 -5
  192. package/src/lib/components/Toast/toastCookie.ts +0 -24
  193. package/src/lib/components/Toast/types.ts +0 -6
  194. package/src/lib/components/ToolTip/ToolTip.svelte +0 -70
  195. package/src/lib/components/ToolTip/index.ts +0 -2
  196. package/src/lib/components/ToolTip/types.ts +0 -14
  197. package/src/lib/components/index.ts +0 -32
  198. package/src/lib/components/types.ts +0 -0
  199. package/src/lib/index.ts +0 -2
  200. package/src/lib/styles/globals.css +0 -108
  201. package/src/lib/styles/normalize.css +0 -9
  202. package/src/lib/styles/reset.css +0 -133
  203. package/src/lib/styles/utilities.css +0 -179
  204. package/src/lib/styles/vars.css +0 -1103
  205. package/src/lib/types/awareness.ts +0 -17
  206. package/src/lib/utils/rle.ts +0 -217
@@ -1,17 +0,0 @@
1
- import type { Placement } from '@floating-ui/dom';
2
- import type { Snippet } from 'svelte';
3
- import type { HTMLButtonAttributes } from 'svelte/elements';
4
- import type { SelectOption } from '../Select';
5
-
6
- export type SelectorMenuProps = {
7
- trigger?: Snippet;
8
- variant?: 'default';
9
- selected?: string;
10
- options: SelectOption[];
11
- onSelectedChange?: (selected: string) => void;
12
- positioning?: {
13
- placement?: Placement;
14
- offset?: number;
15
- };
16
- footer?: Snippet<[{ footerProps: { close: () => void } }]>;
17
- } & HTMLButtonAttributes;
@@ -1,11 +0,0 @@
1
- <script lang="ts">
2
- let count = $state(0);
3
-
4
- function handleClick() {
5
- count += 1;
6
- }
7
- </script>
8
-
9
- <button onclick={handleClick}>
10
- clicks: {count}
11
- </button>
@@ -1,2 +0,0 @@
1
- export { default as Panel } from './panel.svelte';
2
- export * from './types';
@@ -1,18 +0,0 @@
1
- <script lang="ts">
2
- import type { PanelProps } from './types';
3
- let { variant = 'rounded', borderWidth = 1, children, ...restProps }: PanelProps = $props();
4
- let panelClasses = $derived(['panel', `panel--${variant}`, `border-${borderWidth}`, restProps.class ?? '']);
5
- </script>
6
-
7
- <div {...restProps} class={panelClasses}>
8
- {@render children()}
9
- </div>
10
-
11
- <style>
12
- .panel {
13
- background: var(--contrastLowest);
14
- border: var(--borderThin);
15
- border-radius: var(--radius-2);
16
- box-shadow: var(--shadow-1);
17
- }
18
- </style>
@@ -1,8 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- import type { HTMLAttributes } from 'svelte/elements';
3
-
4
- export type PanelProps = {
5
- children: Snippet;
6
- variant?: 'rounded' | 'cut';
7
- borderWidth?: number;
8
- } & HTMLAttributes<HTMLDivElement>;
@@ -1,100 +0,0 @@
1
- <script lang="ts">
2
- import { IconPinFilled } from '@tabler/icons-svelte';
3
-
4
- interface Props {
5
- visible: boolean;
6
- position: { x: number; y: number };
7
- onPersist: () => void;
8
- onDismiss: () => void;
9
- }
10
-
11
- const { visible, position, onPersist, onDismiss }: Props = $props();
12
-
13
- // Offset button slightly from touch point
14
- const OFFSET_X = 20;
15
- const OFFSET_Y = -40;
16
-
17
- function handleBackdropClick() {
18
- onDismiss();
19
- }
20
-
21
- function handlePersistClick(e: MouseEvent | TouchEvent) {
22
- e.stopPropagation();
23
- onPersist();
24
- }
25
- </script>
26
-
27
- {#if visible}
28
- <div class="persistButton">
29
- <!-- Transparent backdrop to catch clicks outside -->
30
- <button class="persistButton__backdrop" onclick={handleBackdropClick} type="button" aria-label="Dismiss"></button>
31
-
32
- <!-- The persist button -->
33
- <button
34
- class="persistButton__btn"
35
- style:left="{position.x + OFFSET_X}px"
36
- style:top="{position.y + OFFSET_Y}px"
37
- onclick={handlePersistClick}
38
- type="button"
39
- aria-label="Persist drawing"
40
- >
41
- <IconPinFilled size={20} stroke={2} />
42
- </button>
43
- </div>
44
- {/if}
45
-
46
- <style>
47
- .persistButton {
48
- position: fixed;
49
- inset: 0;
50
- pointer-events: auto;
51
- z-index: 500;
52
- }
53
-
54
- .persistButton__backdrop {
55
- position: absolute;
56
- inset: 0;
57
- background: transparent;
58
- border: none;
59
- cursor: default;
60
- padding: 0;
61
- }
62
-
63
- .persistButton__btn {
64
- position: absolute;
65
- display: flex;
66
- align-items: center;
67
- justify-content: center;
68
- width: 3rem;
69
- height: 3rem;
70
- padding: 0;
71
- background: var(--fgPrimary);
72
- border: 2px solid var(--bg);
73
- border-radius: 50%;
74
- color: var(--bg);
75
- cursor: pointer;
76
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
77
- transform: translate(-50%, -50%);
78
- animation: persistButton__fadeIn 0.15s ease-out;
79
- }
80
-
81
- .persistButton__btn:hover {
82
- background: var(--fg);
83
- transform: translate(-50%, -50%) scale(1.1);
84
- }
85
-
86
- .persistButton__btn:active {
87
- transform: translate(-50%, -50%) scale(0.95);
88
- }
89
-
90
- @keyframes persistButton__fadeIn {
91
- from {
92
- opacity: 0;
93
- transform: translate(-50%, -50%) scale(0.8);
94
- }
95
- to {
96
- opacity: 1;
97
- transform: translate(-50%, -50%) scale(1);
98
- }
99
- }
100
- </style>
@@ -1 +0,0 @@
1
- export { default as PersistButton } from './PersistButton.svelte';
@@ -1,81 +0,0 @@
1
- <script lang="ts">
2
- import { createPopover, createSync, melt } from '@melt-ui/svelte';
3
- import { fade } from 'svelte/transition';
4
- import type { PopoverProps } from './types';
5
- import type { HTMLBaseAttributes } from 'svelte/elements';
6
-
7
- let {
8
- isOpen = false,
9
- onIsOpenChange,
10
- trigger,
11
- content,
12
- triggerClass,
13
- triggerTestId,
14
- contentClass,
15
- positioning = { placement: 'bottom' },
16
- portal = null,
17
- forceVisible,
18
- closeOnOutsideClick = true
19
- }: PopoverProps & HTMLBaseAttributes = $props();
20
-
21
- const {
22
- elements: { trigger: triggerAction, content: contentAction, close },
23
- states
24
- } = createPopover({
25
- positioning,
26
- forceVisible,
27
- portal,
28
- closeOnOutsideClick
29
- });
30
-
31
- const sync = createSync(states);
32
-
33
- $effect(() => {
34
- sync.open(isOpen, (v) => {
35
- isOpen = v;
36
- onIsOpenChange?.(v);
37
- });
38
- });
39
-
40
- const contentProps = {
41
- close: () => {
42
- isOpen = false;
43
- }
44
- };
45
- </script>
46
-
47
- <button
48
- type="button"
49
- class={['popTrigger', triggerClass ?? '']}
50
- data-testid={triggerTestId}
51
- use:melt={$triggerAction}
52
- aria-label="Update dimensions"
53
- >
54
- {@render trigger()}
55
- </button>
56
-
57
- {#if isOpen}
58
- <div use:melt={$contentAction} transition:fade={{ duration: 100 }} class={['popContent', contentClass ?? '']}>
59
- {@render content({ contentProps })}
60
- <button class="popClose" use:melt={$close}>close</button>
61
- </div>
62
- {/if}
63
-
64
- <style>
65
- .popTrigger {
66
- cursor: pointer;
67
- }
68
- .popContent {
69
- padding: var(--size-2);
70
- background: var(--popoverBg);
71
- color: var(--fg);
72
- border: var(--borderThin);
73
- border-radius: var(--radius-1);
74
- box-shadow: var(--shadow-1);
75
- z-index: 1000;
76
- }
77
- /* TODO: Maybe I should use this */
78
- .popClose {
79
- display: none;
80
- }
81
- </style>
@@ -1,2 +0,0 @@
1
- export { default as Popover } from './Popover.svelte';
2
- export * from './types';
@@ -1,19 +0,0 @@
1
- import type { CreatePopoverProps } from '@melt-ui/svelte';
2
- import type { Snippet } from 'svelte';
3
- export type PopoverProps = {
4
- isOpen?: boolean;
5
- onIsOpenChange?: (open: boolean) => void;
6
- trigger: Snippet;
7
- triggerClass?: string;
8
- triggerTestId?: string;
9
- contentClass?: string;
10
- content: Snippet<
11
- [
12
- {
13
- contentProps: {
14
- close: () => void;
15
- };
16
- }
17
- ]
18
- >;
19
- } & CreatePopoverProps;
@@ -1,107 +0,0 @@
1
- <script>
2
- import jsonData from '../../../../typedocgen.json';
3
- import Markdown from '@magidoc/plugin-svelte-marked';
4
- import { Table, Th, Td, Title, Spacer } from '@tableslayer/ui';
5
- export let componentName = '';
6
-
7
- const getComponentData = (componentName) => {
8
- const component = jsonData.children.find(
9
- (child) => child.name === componentName && child.variant === 'declaration'
10
- );
11
-
12
- if (!component) return null;
13
-
14
- const props = jsonData.children.find((child) => child.name === `${componentName}Props`);
15
-
16
- return props?.type ?? null;
17
- };
18
-
19
- const getPropsList = (type) => {
20
- if (type?.type === 'intersection') {
21
- // Handle intersection types (e.g., ButtonProps extending HTMLButtonAttributes)
22
- return type.types?.filter((t) => t.type === 'reflection').flatMap((t) => t.declaration.children) || [];
23
- }
24
- if (type?.type === 'reflection') {
25
- // Handle reflection types (e.g., ToolTipProps)
26
- return type.declaration.children || [];
27
- }
28
- return [];
29
- };
30
-
31
- const getExtendedProps = (type) => {
32
- if (type?.type === 'intersection') {
33
- return (
34
- type.types
35
- ?.filter((t) => t.type === 'reference')
36
- ?.map((t) => `${t.name}`)
37
- .join(', ') || ''
38
- );
39
- }
40
- return '';
41
- };
42
-
43
- const getComment = (prop) => {
44
- return prop?.comment?.summary?.map((s) => s.text).join(' ') || '';
45
- };
46
-
47
- const getDefaultValue = (prop) => {
48
- const defaultTag = prop?.comment?.blockTags?.find((tag) => tag.tag === '@default');
49
- return defaultTag ? defaultTag.content[0]?.text || '' : '';
50
- };
51
-
52
- const componentType = getComponentData(componentName);
53
- const extendedProps = getExtendedProps(componentType);
54
- const propsList = getPropsList(componentType);
55
- </script>
56
-
57
- {#if componentType}
58
- <Title as="h3" size="sm">{componentName} Properties</Title>
59
- <Spacer size="0.5rem" />
60
-
61
- {#if extendedProps}
62
- <p>
63
- <strong>Extends:</strong>
64
- {extendedProps}
65
- </p>
66
- <Spacer />
67
- {/if}
68
-
69
- <Table>
70
- <thead>
71
- <tr>
72
- <Th>Property</Th>
73
- <Th>Type</Th>
74
- <Th>Description</Th>
75
- <Th>Default</Th>
76
- </tr>
77
- </thead>
78
- <tbody>
79
- {#each propsList as prop}
80
- <tr>
81
- <Td>
82
- <strong>
83
- {prop.name}
84
- {#if !prop.flags.isOptional}
85
- *
86
- {/if}
87
- </strong>
88
- </Td>
89
- <Td>
90
- {#if prop.type.type === 'intrinsic'}
91
- {prop.type.name}
92
- {/if}
93
- {#if prop.type.type === 'union'}
94
- {prop.type.types.map((type) => type.value || type.name).join(' | ')}
95
- {:else if prop.type.type === 'reference'}
96
- {prop.type.name}
97
- {/if}
98
- </Td>
99
- <Td><Markdown source={getComment(prop)} /></Td>
100
- <Td><Markdown source={getDefaultValue(prop)} /></Td>
101
- </tr>
102
- {/each}
103
- </tbody>
104
- </Table>
105
- {:else}
106
- <p>No data available for {componentName}.</p>
107
- {/if}
@@ -1,36 +0,0 @@
1
- <script lang="ts">
2
- import { Canvas } from '@threlte/core';
3
- import { AnnotationEffect } from '../Stage/components/AnnotationLayer/types';
4
- import EffectPreviewScene from './EffectPreviewScene.svelte';
5
-
6
- interface Props {
7
- effectType: AnnotationEffect;
8
- size?: string;
9
- shape?: 'circle' | 'rounded';
10
- }
11
-
12
- const { effectType, size = '3rem', shape = 'circle' }: Props = $props();
13
- </script>
14
-
15
- <div class="effectPreview" class:effectPreview--rounded={shape === 'rounded'} style="width: {size}; height: {size};">
16
- <Canvas>
17
- <EffectPreviewScene {effectType} {shape} />
18
- </Canvas>
19
- </div>
20
-
21
- <style>
22
- .effectPreview {
23
- border-radius: 50%;
24
- overflow: hidden;
25
- background: transparent;
26
- }
27
-
28
- .effectPreview--rounded {
29
- border-radius: var(--radius-1);
30
- }
31
-
32
- .effectPreview :global(canvas) {
33
- width: 100% !important;
34
- height: 100% !important;
35
- }
36
- </style>
@@ -1,194 +0,0 @@
1
- <script lang="ts">
2
- import * as THREE from 'three';
3
- import { T, useTask } from '@threlte/core';
4
- import { AnnotationEffect, getDefaultEffectProps } from '../Stage/components/AnnotationLayer/types';
5
-
6
- import annotationEffectsFragmentShader from '../Stage/shaders/AnnotationEffects.frag?raw';
7
- import annotationVertexShader from '../Stage/shaders/default.vert?raw';
8
-
9
- interface Props {
10
- effectType: AnnotationEffect;
11
- shape?: 'circle' | 'rounded';
12
- }
13
-
14
- const { effectType, shape = 'circle' }: Props = $props();
15
-
16
- // Create circular mask texture with mipmaps
17
- // Use 512x512 to match shader expectations for texSize calculations
18
- const createCircularMaskTexture = (): THREE.DataTexture => {
19
- const textureSize = 512;
20
- const data = new Uint8Array(textureSize * textureSize * 4);
21
-
22
- const center = textureSize / 2;
23
- const radius = textureSize / 2 - 4; // Slight inset for smooth edges
24
-
25
- for (let y = 0; y < textureSize; y++) {
26
- for (let x = 0; x < textureSize; x++) {
27
- const dx = x - center;
28
- const dy = y - center;
29
- const dist = Math.sqrt(dx * dx + dy * dy);
30
-
31
- // Smooth anti-aliased edge
32
- const edge = 1.0 - Math.max(0, Math.min(1, (dist - radius + 2) / 4));
33
- const value = Math.floor(edge * 255);
34
-
35
- const idx = (y * textureSize + x) * 4;
36
- data[idx] = value;
37
- data[idx + 1] = value;
38
- data[idx + 2] = value;
39
- data[idx + 3] = value;
40
- }
41
- }
42
-
43
- const texture = new THREE.DataTexture(data, textureSize, textureSize, THREE.RGBAFormat);
44
- texture.generateMipmaps = true;
45
- texture.minFilter = THREE.LinearMipmapLinearFilter;
46
- texture.magFilter = THREE.LinearFilter;
47
- texture.needsUpdate = true;
48
-
49
- return texture;
50
- };
51
-
52
- // Create rounded square mask texture with mipmaps
53
- const createRoundedSquareMaskTexture = (): THREE.DataTexture => {
54
- const textureSize = 512;
55
- const data = new Uint8Array(textureSize * textureSize * 4);
56
-
57
- const inset = 4; // Slight inset for smooth edges
58
- const halfSize = textureSize / 2 - inset;
59
- const cornerRadius = textureSize * 0.15; // ~15% corner radius
60
-
61
- // Signed distance function for rounded rectangle
62
- const sdRoundedBox = (px: number, py: number, bx: number, by: number, r: number): number => {
63
- const qx = Math.abs(px) - bx + r;
64
- const qy = Math.abs(py) - by + r;
65
- const outsideDist = Math.sqrt(Math.max(qx, 0) ** 2 + Math.max(qy, 0) ** 2);
66
- const insideDist = Math.min(Math.max(qx, qy), 0);
67
- return outsideDist + insideDist - r;
68
- };
69
-
70
- for (let y = 0; y < textureSize; y++) {
71
- for (let x = 0; x < textureSize; x++) {
72
- const px = x - textureSize / 2;
73
- const py = y - textureSize / 2;
74
-
75
- const dist = sdRoundedBox(px, py, halfSize, halfSize, cornerRadius);
76
-
77
- // Smooth anti-aliased edge
78
- const edge = 1.0 - Math.max(0, Math.min(1, (dist + 2) / 4));
79
- const value = Math.floor(edge * 255);
80
-
81
- const idx = (y * textureSize + x) * 4;
82
- data[idx] = value;
83
- data[idx + 1] = value;
84
- data[idx + 2] = value;
85
- data[idx + 3] = value;
86
- }
87
- }
88
-
89
- const texture = new THREE.DataTexture(data, textureSize, textureSize, THREE.RGBAFormat);
90
- texture.generateMipmaps = true;
91
- texture.minFilter = THREE.LinearMipmapLinearFilter;
92
- texture.magFilter = THREE.LinearFilter;
93
- texture.needsUpdate = true;
94
-
95
- return texture;
96
- };
97
-
98
- const maskTexture = shape === 'rounded' ? createRoundedSquareMaskTexture() : createCircularMaskTexture();
99
-
100
- const getEffectColor = (effect: AnnotationEffect): THREE.Vector3 => {
101
- switch (effect) {
102
- case AnnotationEffect.Fire:
103
- return new THREE.Vector3(1.0, 0.3, 0.1);
104
- case AnnotationEffect.Water:
105
- return new THREE.Vector3(0.2, 0.5, 0.8);
106
- case AnnotationEffect.Ice:
107
- return new THREE.Vector3(0.7, 0.85, 1.0);
108
- case AnnotationEffect.Magic:
109
- // Saturated purple (#9333ea) to match AnnotationMaterial
110
- return new THREE.Vector3(0.576, 0.2, 0.918);
111
- case AnnotationEffect.Grease:
112
- return new THREE.Vector3(0.3, 0.2, 0.1);
113
- case AnnotationEffect.SpaceTear:
114
- return new THREE.Vector3(0.2, 0.0, 0.4);
115
- default:
116
- return new THREE.Vector3(1.0, 1.0, 1.0);
117
- }
118
- };
119
-
120
- const emptyClippingPlanes = [
121
- new THREE.Vector4(0, 0, 0, 0),
122
- new THREE.Vector4(0, 0, 0, 0),
123
- new THREE.Vector4(0, 0, 0, 0),
124
- new THREE.Vector4(0, 0, 0, 0)
125
- ];
126
-
127
- // Replace NUM_CLIPPING_PLANES with 4 directly in the shader source
128
- // This is needed because Three.js replaces this token before processing defines
129
- const fragmentShaderFixed = annotationEffectsFragmentShader.replace(/NUM_CLIPPING_PLANES/g, '4');
130
-
131
- // Get effect defaults and adjust for small preview size
132
- const effectProps = getDefaultEffectProps(effectType);
133
- // Reduce border effect for small previews to avoid artifacts
134
- const previewBorder = Math.min(effectProps.border, 0.2);
135
-
136
- const material = new THREE.ShaderMaterial({
137
- uniforms: {
138
- uMaskTexture: { value: maskTexture },
139
- uTime: { value: 0.0 },
140
- uEffectType: { value: effectType },
141
- uBaseColor: { value: getEffectColor(effectType) },
142
- uOpacity: { value: 1.0 },
143
- uSpeed: { value: effectProps.speed },
144
- uIntensity: { value: effectProps.intensity },
145
- uSoftness: { value: effectProps.softness },
146
- uBorder: { value: previewBorder },
147
- uRoughness: { value: effectProps.roughness },
148
- uEdgeMinMipMapLevel: { value: 0 },
149
- uEdgeMaxMipMapLevel: { value: 4 },
150
- uClippingPlanes: { value: emptyClippingPlanes }
151
- },
152
- transparent: true,
153
- fragmentShader: fragmentShaderFixed,
154
- vertexShader: annotationVertexShader,
155
- clipping: false
156
- });
157
-
158
- $effect(() => {
159
- const props = getDefaultEffectProps(effectType);
160
- material.uniforms.uEffectType.value = effectType;
161
- material.uniforms.uBaseColor.value = getEffectColor(effectType);
162
- material.uniforms.uSpeed.value = props.speed;
163
- material.uniforms.uIntensity.value = props.intensity;
164
- material.uniforms.uSoftness.value = props.softness;
165
- material.uniforms.uBorder.value = Math.min(props.border, 0.2);
166
- material.uniforms.uRoughness.value = props.roughness;
167
- material.uniformsNeedUpdate = true;
168
- });
169
-
170
- // Animate the effect
171
- useTask((delta) => {
172
- material.uniforms.uTime.value += delta;
173
- });
174
- </script>
175
-
176
- <T.OrthographicCamera
177
- makeDefault
178
- manual
179
- position.z={1}
180
- oncreate={(ref) => {
181
- // Force camera frustum to match our 2x2 plane
182
- ref.left = -1;
183
- ref.right = 1;
184
- ref.top = 1;
185
- ref.bottom = -1;
186
- ref.near = 0.1;
187
- ref.far = 10;
188
- ref.updateProjectionMatrix();
189
- }}
190
- />
191
- <T.Mesh>
192
- <T.PlaneGeometry args={[2, 2]} />
193
- <T is={material} />
194
- </T.Mesh>