triiiceratops 0.9.13 → 0.10.0
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.
- package/dist/ArrowCounterClockwise-aFffCOKw.js +136 -0
- package/dist/X-DZEgXrJ8.js +877 -0
- package/dist/annotation_tool_point-CZKsj4Nk.js +290 -0
- package/dist/components/AnnotationOverlay.svelte +179 -86
- package/dist/components/LeftFab.svelte +21 -9
- package/dist/components/OSDViewer.svelte +20 -3
- package/dist/components/TriiiceratopsViewer.svelte +96 -43
- package/dist/components/TriiiceratopsViewer.svelte.d.ts +5 -5
- package/dist/components/TriiiceratopsViewerElement.svelte +2 -2
- package/dist/components/TriiiceratopsViewerElement.svelte.d.ts +2 -2
- package/dist/custom-element.d.ts +10 -0
- package/dist/custom-element.js +13 -0
- package/dist/image_filters_reset-BEIf-_QA.js +108 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.js +0 -1
- package/dist/paraglide/messages/_index.d.ts +30 -0
- package/dist/paraglide/messages/_index.js +31 -1
- package/dist/paraglide/messages/annotation_editor_add_content.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_add_content.js +34 -0
- package/dist/paraglide/messages/annotation_editor_cancel.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_cancel.js +34 -0
- package/dist/paraglide/messages/annotation_editor_create_mode.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_create_mode.js +34 -0
- package/dist/paraglide/messages/annotation_editor_delete.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_delete.js +34 -0
- package/dist/paraglide/messages/annotation_editor_delete_message.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_delete_message.js +34 -0
- package/dist/paraglide/messages/annotation_editor_delete_title.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_delete_title.js +34 -0
- package/dist/paraglide/messages/annotation_editor_delete_tooltip.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_delete_tooltip.js +34 -0
- package/dist/paraglide/messages/annotation_editor_edit_mode.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_edit_mode.js +34 -0
- package/dist/paraglide/messages/annotation_editor_edit_section.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_edit_section.js +34 -0
- package/dist/paraglide/messages/annotation_editor_instruction_create.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_instruction_create.js +34 -0
- package/dist/paraglide/messages/annotation_editor_instruction_edit.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_instruction_edit.js +34 -0
- package/dist/paraglide/messages/annotation_editor_link_placeholder.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_link_placeholder.js +34 -0
- package/dist/paraglide/messages/annotation_editor_redo.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_redo.js +34 -0
- package/dist/paraglide/messages/annotation_editor_save.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_save.js +34 -0
- package/dist/paraglide/messages/annotation_editor_tag_placeholder.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_tag_placeholder.js +34 -0
- package/dist/paraglide/messages/annotation_editor_text_placeholder.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_text_placeholder.js +34 -0
- package/dist/paraglide/messages/annotation_editor_title.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_title.js +34 -0
- package/dist/paraglide/messages/annotation_editor_tool_label.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_tool_label.js +34 -0
- package/dist/paraglide/messages/annotation_editor_undo.d.ts +4 -0
- package/dist/paraglide/messages/annotation_editor_undo.js +34 -0
- package/dist/paraglide/messages/annotation_tool_point.d.ts +4 -0
- package/dist/paraglide/messages/annotation_tool_point.js +34 -0
- package/dist/paraglide/messages/annotation_tool_polygon.d.ts +4 -0
- package/dist/paraglide/messages/annotation_tool_polygon.js +34 -0
- package/dist/paraglide/messages/annotation_tool_rectangle.d.ts +4 -0
- package/dist/paraglide/messages/annotation_tool_rectangle.js +34 -0
- package/dist/paraglide/messages/image_adjustments_title.d.ts +4 -0
- package/dist/paraglide/messages/image_adjustments_title.js +34 -0
- package/dist/paraglide/messages/image_filters_brightness.d.ts +4 -0
- package/dist/paraglide/messages/image_filters_brightness.js +34 -0
- package/dist/paraglide/messages/image_filters_contrast.d.ts +4 -0
- package/dist/paraglide/messages/image_filters_contrast.js +34 -0
- package/dist/paraglide/messages/image_filters_effects.d.ts +4 -0
- package/dist/paraglide/messages/image_filters_effects.js +34 -0
- package/dist/paraglide/messages/image_filters_grayscale.d.ts +4 -0
- package/dist/paraglide/messages/image_filters_grayscale.js +34 -0
- package/dist/paraglide/messages/image_filters_invert.d.ts +4 -0
- package/dist/paraglide/messages/image_filters_invert.js +34 -0
- package/dist/paraglide/messages/image_filters_reset.d.ts +4 -0
- package/dist/paraglide/messages/image_filters_reset.js +34 -0
- package/dist/paraglide/messages/image_filters_saturation.d.ts +4 -0
- package/dist/paraglide/messages/image_filters_saturation.js +34 -0
- package/dist/paraglide/messages/plugins_tooltip.js +1 -1
- package/dist/plugins/annotation-editor/AnnotationEditorController.svelte +166 -0
- package/dist/plugins/annotation-editor/AnnotationEditorController.svelte.d.ts +9 -0
- package/dist/plugins/annotation-editor/AnnotationEditorPanel.svelte +315 -0
- package/dist/plugins/annotation-editor/AnnotationEditorPanel.svelte.d.ts +24 -0
- package/dist/plugins/annotation-editor/AnnotationManager.svelte.d.ts +39 -0
- package/dist/plugins/annotation-editor/AnnotationManager.svelte.js +433 -0
- package/dist/plugins/annotation-editor/adapters/LocalStorageAdapter.d.ts +20 -0
- package/dist/plugins/annotation-editor/adapters/LocalStorageAdapter.js +67 -0
- package/dist/plugins/annotation-editor/adapters/index.d.ts +2 -0
- package/dist/plugins/annotation-editor/adapters/index.js +1 -0
- package/dist/plugins/annotation-editor/adapters/types.d.ts +23 -0
- package/dist/plugins/annotation-editor/adapters/types.js +1 -0
- package/dist/plugins/annotation-editor/iife-entry.d.ts +15 -0
- package/dist/plugins/annotation-editor/iife-entry.js +35 -0
- package/dist/plugins/annotation-editor/index.d.ts +41 -0
- package/dist/plugins/annotation-editor/index.js +57 -0
- package/dist/plugins/annotation-editor/loader.svelte.d.ts +7 -0
- package/dist/plugins/annotation-editor/loader.svelte.js +32 -0
- package/dist/plugins/annotation-editor/types.d.ts +41 -0
- package/dist/plugins/annotation-editor/types.js +13 -0
- package/dist/plugins/annotation-editor.js +32824 -0
- package/dist/plugins/image-manipulation/ImageManipulationController.svelte +54 -0
- package/dist/plugins/image-manipulation/ImageManipulationController.svelte.d.ts +6 -0
- package/dist/plugins/image-manipulation/ImageManipulationPanel.svelte +19 -9
- package/dist/plugins/image-manipulation/ImageManipulationPanel.svelte.d.ts +1 -0
- package/dist/plugins/image-manipulation/iife-entry.d.ts +13 -0
- package/dist/plugins/image-manipulation/iife-entry.js +17 -0
- package/dist/plugins/image-manipulation/index.d.ts +15 -1
- package/dist/plugins/image-manipulation/index.js +21 -1
- package/dist/plugins/image-manipulation.js +265 -0
- package/dist/state/i18n.svelte.js +4 -2
- package/dist/state/manifests.svelte.d.ts +5 -0
- package/dist/state/manifests.svelte.js +42 -13
- package/dist/state/viewer.svelte.d.ts +14 -13
- package/dist/state/viewer.svelte.js +63 -74
- package/dist/triiiceratops-bundle.js +3208 -3126
- package/dist/triiiceratops-element.iife.js +99 -0
- package/dist/triiiceratops.css +1 -1
- package/dist/types/plugin.d.ts +21 -62
- package/dist/types/plugin.js +1 -23
- package/dist/utils/annotationAdapter.d.ts +12 -1
- package/dist/utils/annotationAdapter.js +98 -39
- package/package.json +13 -6
- package/dist/chunks/TriiiceratopsViewer-EViTQO_n.js +0 -10437
- package/dist/chunks/openseadragon-CHvATAD9.js +0 -12427
- package/dist/components/TriiiceratopsViewerElementImage.svelte +0 -143
- package/dist/components/TriiiceratopsViewerElementImage.svelte.d.ts +0 -27
- package/dist/custom-element-image.d.ts +0 -1
- package/dist/custom-element-image.js +0 -2
- package/dist/plugins/image-manipulation/ImageManipulationPlugin.svelte.d.ts +0 -19
- package/dist/plugins/image-manipulation/ImageManipulationPlugin.svelte.js +0 -87
- package/dist/triiiceratops-element-image.js +0 -555
- package/dist/triiiceratops-element.js +0 -114
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import AnnotationEditorController from './AnnotationEditorController.svelte';
|
|
2
|
+
import PencilSimple from 'phosphor-svelte/lib/PencilSimple';
|
|
3
|
+
import { LocalStorageAdapter } from './adapters/LocalStorageAdapter';
|
|
4
|
+
import { createLoader } from './loader.svelte';
|
|
5
|
+
/**
|
|
6
|
+
* Create an Annotation Editor plugin with custom configuration.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```svelte
|
|
10
|
+
* <script>
|
|
11
|
+
* import { createAnnotationEditorPlugin, LocalStorageAdapter } from 'triiiceratops/plugins/annotation-editor';
|
|
12
|
+
*
|
|
13
|
+
* const annotationPlugin = createAnnotationEditorPlugin({
|
|
14
|
+
* adapter: new LocalStorageAdapter(),
|
|
15
|
+
* user: { id: 'user-123', name: 'Jane Doe' },
|
|
16
|
+
* });
|
|
17
|
+
* </script>
|
|
18
|
+
*
|
|
19
|
+
* <TriiiceratopsViewer plugins={[annotationPlugin]} />
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export function createAnnotationEditorPlugin(config = {}) {
|
|
23
|
+
const adapter = config.adapter || new LocalStorageAdapter();
|
|
24
|
+
const fullConfig = { ...config, adapter };
|
|
25
|
+
return {
|
|
26
|
+
id: 'annotation-editor',
|
|
27
|
+
name: 'annotation_editor_title',
|
|
28
|
+
icon: PencilSimple,
|
|
29
|
+
panel: AnnotationEditorController,
|
|
30
|
+
position: 'left',
|
|
31
|
+
props: { config: fullConfig },
|
|
32
|
+
onInit: createLoader(adapter),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Pre-configured Annotation Editor plugin with localStorage adapter.
|
|
37
|
+
* For advanced configuration, use createAnnotationEditorPlugin().
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```svelte
|
|
41
|
+
* <script>
|
|
42
|
+
* import { AnnotationEditorPlugin } from 'triiiceratops/plugins/annotation-editor';
|
|
43
|
+
* </script>
|
|
44
|
+
*
|
|
45
|
+
* <TriiiceratopsViewer plugins={[AnnotationEditorPlugin]} />
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export const AnnotationEditorPlugin = createAnnotationEditorPlugin({
|
|
49
|
+
adapter: new LocalStorageAdapter(),
|
|
50
|
+
tools: ['rectangle', 'polygon', 'point'],
|
|
51
|
+
defaultTool: 'rectangle',
|
|
52
|
+
});
|
|
53
|
+
// Individual exports for customization
|
|
54
|
+
export { AnnotationEditorController };
|
|
55
|
+
export { default as AnnotationEditorIcon } from 'phosphor-svelte/lib/PencilSimple';
|
|
56
|
+
export { W3C_PURPOSES } from './types';
|
|
57
|
+
export { LocalStorageAdapter } from './adapters/LocalStorageAdapter';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ViewerState } from '../../state/viewer.svelte';
|
|
2
|
+
import type { AnnotationStorageAdapter } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a reactive loader that syncs annotations from the adapter to the viewer state.
|
|
5
|
+
* This runs independently of the Annotation Editor UI component.
|
|
6
|
+
*/
|
|
7
|
+
export declare function createLoader(adapter: AnnotationStorageAdapter): (viewerState: ViewerState) => void;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { manifestsState } from '../../state/manifests.svelte';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a reactive loader that syncs annotations from the adapter to the viewer state.
|
|
4
|
+
* This runs independently of the Annotation Editor UI component.
|
|
5
|
+
*/
|
|
6
|
+
export function createLoader(adapter) {
|
|
7
|
+
return (viewerState) => {
|
|
8
|
+
// Track the last loaded combination to prevent duplicate loads
|
|
9
|
+
// Although the adapter generally handles idempotency, this is a good optimization
|
|
10
|
+
let lastLoadedId = null;
|
|
11
|
+
$effect(() => {
|
|
12
|
+
const manifestId = viewerState.manifestId;
|
|
13
|
+
const canvasId = viewerState.canvasId;
|
|
14
|
+
if (!manifestId || !canvasId)
|
|
15
|
+
return;
|
|
16
|
+
const comboId = `${manifestId}::${canvasId}`;
|
|
17
|
+
if (comboId === lastLoadedId)
|
|
18
|
+
return;
|
|
19
|
+
// Update IMMEDIATELY to prevent re-entrant calls or rapid-fire effects
|
|
20
|
+
lastLoadedId = comboId;
|
|
21
|
+
// Load annotations for this canvas
|
|
22
|
+
adapter
|
|
23
|
+
.load(manifestId, canvasId)
|
|
24
|
+
.then((annotations) => {
|
|
25
|
+
// Success handling
|
|
26
|
+
})
|
|
27
|
+
.catch((err) => {
|
|
28
|
+
console.error('[AnnotationLoader] Failed to load annotations', err);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { User, DrawingStyle } from '@annotorious/openseadragon';
|
|
2
|
+
/** Forward reference to avoid circular imports - full definition in adapters/types.ts */
|
|
3
|
+
export interface AnnotationStorageAdapter {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly name: string;
|
|
6
|
+
load(manifestId: string, canvasId: string): Promise<any[]>;
|
|
7
|
+
create(manifestId: string, canvasId: string, annotation: any): Promise<void>;
|
|
8
|
+
update(manifestId: string, canvasId: string, annotation: any): Promise<void>;
|
|
9
|
+
delete(manifestId: string, canvasId: string, annotationId: string): Promise<void>;
|
|
10
|
+
destroy?(): void;
|
|
11
|
+
}
|
|
12
|
+
export interface AnnotationEditorConfig {
|
|
13
|
+
/** Storage adapter for persistence */
|
|
14
|
+
adapter?: AnnotationStorageAdapter;
|
|
15
|
+
/** Current user for attribution */
|
|
16
|
+
user?: User;
|
|
17
|
+
/** Drawing style for annotations while editing */
|
|
18
|
+
drawingStyle?: DrawingStyle;
|
|
19
|
+
/** Available drawing tools */
|
|
20
|
+
tools?: DrawingTool[];
|
|
21
|
+
/** Default drawing tool */
|
|
22
|
+
defaultTool?: DrawingTool;
|
|
23
|
+
}
|
|
24
|
+
export type DrawingTool = 'rectangle' | 'polygon' | 'point';
|
|
25
|
+
/** W3C Annotation Body */
|
|
26
|
+
export interface W3CAnnotationBody {
|
|
27
|
+
type?: string;
|
|
28
|
+
purpose?: string;
|
|
29
|
+
value?: string;
|
|
30
|
+
format?: string;
|
|
31
|
+
language?: string;
|
|
32
|
+
creator?: {
|
|
33
|
+
id?: string;
|
|
34
|
+
name?: string;
|
|
35
|
+
};
|
|
36
|
+
created?: string;
|
|
37
|
+
modified?: string;
|
|
38
|
+
}
|
|
39
|
+
/** Standard W3C purposes for autocomplete */
|
|
40
|
+
export declare const W3C_PURPOSES: readonly ["commenting", "tagging", "describing", "classifying", "identifying", "linking", "bookmarking", "highlighting", "questioning", "replying"];
|
|
41
|
+
export type W3CPurpose = (typeof W3C_PURPOSES)[number];
|