hazo_pdf 1.7.0 → 2.0.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.
Files changed (36) hide show
  1. package/SETUP_CHECKLIST.md +693 -0
  2. package/config/hazo_pdf_config.ini.sample +42 -0
  3. package/db_setup_postgres.sql +17 -0
  4. package/db_setup_sqlite.sql +13 -0
  5. package/dist/{chunk-NQ6KUJWG.js → chunk-7M53O3HF.js} +14 -4
  6. package/dist/chunk-7M53O3HF.js.map +1 -0
  7. package/dist/{chunk-4JJOUQ62.js → chunk-KDOQ3FIO.js} +176 -87
  8. package/dist/chunk-KDOQ3FIO.js.map +1 -0
  9. package/dist/{chunk-KHB3VZJQ.js → chunk-LFFCPDWC.js} +14 -3
  10. package/dist/chunk-LFFCPDWC.js.map +1 -0
  11. package/dist/{chunk-264BTVJT.js → chunk-TZJ5S57X.js} +18 -31
  12. package/dist/chunk-TZJ5S57X.js.map +1 -0
  13. package/dist/index.d.ts +9 -5
  14. package/dist/index.js +35 -16
  15. package/dist/index.js.map +1 -1
  16. package/dist/{pdf_saver-7FA4DAXI.js → pdf_saver-T6SEDYEE.js} +3 -3
  17. package/dist/{pdf_viewer-B6S5PJJB.js → pdf_viewer-TFCSUGWU.js} +3 -3
  18. package/dist/server/index.d.ts +5 -1
  19. package/dist/server/index.js +219 -81
  20. package/dist/server/index.js.map +1 -1
  21. package/dist/server/{text_search-2OZOVUIP.js → text_search-PVDG5Y6I.js} +14 -3
  22. package/dist/server/text_search-PVDG5Y6I.js.map +1 -0
  23. package/dist/styles/full.css +5821 -7156
  24. package/dist/styles/full.css.map +1 -1
  25. package/dist/styles/index.css +4844 -3929
  26. package/dist/styles/index.css.map +1 -1
  27. package/dist/{text_search-I2KZ7DTW.js → text_search-SO4ZOMIZ.js} +2 -2
  28. package/package.json +51 -36
  29. package/dist/chunk-264BTVJT.js.map +0 -1
  30. package/dist/chunk-4JJOUQ62.js.map +0 -1
  31. package/dist/chunk-KHB3VZJQ.js.map +0 -1
  32. package/dist/chunk-NQ6KUJWG.js.map +0 -1
  33. package/dist/server/text_search-2OZOVUIP.js.map +0 -1
  34. /package/dist/{pdf_saver-7FA4DAXI.js.map → pdf_saver-T6SEDYEE.js.map} +0 -0
  35. /package/dist/{pdf_viewer-B6S5PJJB.js.map → pdf_viewer-TFCSUGWU.js.map} +0 -0
  36. /package/dist/{text_search-I2KZ7DTW.js.map → text_search-SO4ZOMIZ.js.map} +0 -0
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  find_all_text_in_pdf,
4
4
  find_text_in_pdf
5
- } from "./chunk-KHB3VZJQ.js";
5
+ } from "./chunk-LFFCPDWC.js";
6
6
  import "./chunk-AOSHQP7D.js";
7
7
  export {
8
8
  find_all_text_in_pdf,
9
9
  find_text_in_pdf
10
10
  };
11
- //# sourceMappingURL=text_search-I2KZ7DTW.js.map
11
+ //# sourceMappingURL=text_search-SO4ZOMIZ.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hazo_pdf",
3
- "version": "1.7.0",
3
+ "version": "2.0.0",
4
4
  "description": "PDF viewer and annotator component for React",
5
5
  "keywords": [
6
6
  "pdf",
@@ -19,9 +19,6 @@
19
19
  },
20
20
  "license": "MIT",
21
21
  "author": "Pubs Abayasiri",
22
- "engines": {
23
- "node": ">=14.0.0"
24
- },
25
22
  "type": "module",
26
23
  "main": "./dist/index.js",
27
24
  "module": "./dist/index.js",
@@ -43,18 +40,25 @@
43
40
  "files": [
44
41
  "dist",
45
42
  "config/hazo_pdf_config.ini.sample",
43
+ "db_setup_postgres.sql",
44
+ "db_setup_sqlite.sql",
46
45
  "LICENSE",
47
- "README.md"
46
+ "README.md",
47
+ "SETUP_CHECKLIST.md"
48
48
  ],
49
49
  "peerDependencies": {
50
- "hazo_config": ">=1.3.0",
51
- "hazo_connect": ">=2.4.0",
52
- "hazo_files": "^1.2.0",
53
- "hazo_llm_api": "^1.2.0",
54
- "hazo_logs": "^1.0.0",
55
- "@napi-rs/canvas": ">=0.1.0",
56
- "react": "^18||^19",
57
- "react-dom": "^18||^19"
50
+ "hazo_config": "^2.1.5",
51
+ "hazo_connect": "^3.0.0",
52
+ "hazo_core": "^1.0.0",
53
+ "hazo_files": "^3.0.0",
54
+ "hazo_llm_api": "^2.0.0",
55
+ "hazo_logs": "^2.0.0",
56
+ "hazo_ui": "^3.1.0",
57
+ "next": "^14.0.0 || ^16.0.0",
58
+ "react": "^18.0.0 || ^19.0.0",
59
+ "react-dom": "^18.0.0 || ^19.0.0",
60
+ "tailwindcss": "^4.2.4",
61
+ "@napi-rs/canvas": "^0.1.0"
58
62
  },
59
63
  "peerDependenciesMeta": {
60
64
  "hazo_config": {
@@ -63,8 +67,8 @@
63
67
  "hazo_connect": {
64
68
  "optional": true
65
69
  },
66
- "hazo_logs": {
67
- "optional": true
70
+ "hazo_core": {
71
+ "optional": false
68
72
  },
69
73
  "hazo_files": {
70
74
  "optional": true
@@ -72,6 +76,15 @@
72
76
  "hazo_llm_api": {
73
77
  "optional": true
74
78
  },
79
+ "hazo_logs": {
80
+ "optional": true
81
+ },
82
+ "hazo_ui": {
83
+ "optional": true
84
+ },
85
+ "next": {
86
+ "optional": true
87
+ },
75
88
  "@napi-rs/canvas": {
76
89
  "optional": true
77
90
  }
@@ -83,13 +96,15 @@
83
96
  "@radix-ui/react-slot": "^1.2.4",
84
97
  "@radix-ui/react-tooltip": "^1.2.8",
85
98
  "class-variance-authority": "^0.7.1",
86
- "clsx": "^2.1.0",
99
+ "clsx": "^2.1.1",
87
100
  "lucide-react": "^0.553.0",
88
101
  "pdf-lib": "^1.17.1",
89
102
  "pdfjs-dist": "^4.10.38",
90
103
  "react-icons": "^5.5.0",
91
- "tailwind-merge": "^2.2.1",
92
- "xlsx": "^0.18.5"
104
+ "tailwind-merge": "^3.5.0",
105
+ "tw-animate-css": "^1.4.0",
106
+ "xlsx": "^0.18.5",
107
+ "zod": "^3.23.8"
93
108
  },
94
109
  "devDependencies": {
95
110
  "@dnd-kit/core": "^6.3.1",
@@ -102,32 +117,33 @@
102
117
  "@storybook/react": "^7.6.17",
103
118
  "@storybook/react-vite": "^7.6.17",
104
119
  "@storybook/test": "^7.6.17",
105
- "@types/node": "^20.11.19",
106
- "@types/react": "^18.2.56",
107
- "@types/react-dom": "^18.2.19",
120
+ "@tailwindcss/postcss": "^4.2.4",
121
+ "@types/node": "^20.14.10",
122
+ "@types/react": "^18.3.3",
123
+ "@types/react-dom": "^18.3.0",
108
124
  "@types/sql.js": "^1.4.9",
109
125
  "@typescript-eslint/eslint-plugin": "^6.21.0",
110
126
  "@typescript-eslint/parser": "^6.21.0",
111
- "autoprefixer": "^10.4.17",
112
127
  "concurrently": "^8.2.2",
113
- "eslint": "^8.56.0",
128
+ "eslint": "^8.57.0",
114
129
  "eslint-plugin-react": "^7.33.2",
115
130
  "eslint-plugin-react-hooks": "^4.6.0",
116
- "hazo_config": "^1.3.0",
117
- "hazo_connect": "^2.4.2",
118
- "hazo_files": "^1.3.0",
119
- "hazo_llm_api": "^1.2.3",
120
- "hazo_logs": "^1.0.0",
121
- "next": "^16.0.3",
131
+ "hazo_config": "^2.1.6",
132
+ "hazo_connect": "^3.0.0",
133
+ "hazo_core": "^1.0.0",
134
+ "hazo_files": "^3.0.0",
135
+ "hazo_llm_api": "^2.0.0",
136
+ "hazo_logs": "^2.0.1",
137
+ "hazo_ui": "^3.1.0",
138
+ "next": "^16.0.10",
122
139
  "patch-package": "^8.0.1",
123
- "postcss": "^8.4.35",
140
+ "postcss": "^8.4.49",
124
141
  "react": "^18.3.1",
125
142
  "react-dom": "^18.3.1",
126
143
  "storybook": "^7.6.17",
127
- "tailwindcss": "^3.4.1",
128
- "tailwindcss-animate": "^1.0.7",
144
+ "tailwindcss": "^4.2.4",
129
145
  "tsup": "^8.0.2",
130
- "typescript": "^5.3.3",
146
+ "typescript": "^5.7.2",
131
147
  "vite": "^5.1.4"
132
148
  },
133
149
  "scripts": {
@@ -138,8 +154,7 @@
138
154
  "prepublishOnly": "npm run build",
139
155
  "storybook": "storybook dev -p 6006",
140
156
  "build-storybook": "storybook build",
141
- "test-app:dev": "concurrently -n tsup,next -c blue,green \"npm:dev\" \"next dev\"",
142
- "test-app:build": "next build",
143
- "test-app:start": "next start"
157
+ "dev:test-app": "npm run build && cd test-app && npm run dev",
158
+ "build:test-app": "npm run build && cd test-app && npm run build"
144
159
  }
145
160
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/logger.ts","../src/config/default_config.ts"],"sourcesContent":["/**\n * Logger Utility for hazo_pdf\n * Provides a unified logging interface that can use hazo_logs or fallback to console\n */\n\n/**\n * Logger interface matching hazo_logs Logger type\n * This allows consumers to pass in their own logger instance\n */\nexport interface Logger {\n info: (message: string, data?: Record<string, unknown>) => void;\n debug: (message: string, data?: Record<string, unknown>) => void;\n warn: (message: string, data?: Record<string, unknown>) => void;\n error: (message: string, data?: Record<string, unknown>) => void;\n}\n\n/**\n * Fallback logger using console\n * Used when no external logger is provided\n */\nconst console_logger: Logger = {\n info: (message: string, data?: Record<string, unknown>) => {\n if (data) {\n console.log(`[hazo_pdf] ${message}`, data);\n } else {\n console.log(`[hazo_pdf] ${message}`);\n }\n },\n debug: (message: string, data?: Record<string, unknown>) => {\n if (data) {\n console.debug(`[hazo_pdf] ${message}`, data);\n } else {\n console.debug(`[hazo_pdf] ${message}`);\n }\n },\n warn: (message: string, data?: Record<string, unknown>) => {\n if (data) {\n console.warn(`[hazo_pdf] ${message}`, data);\n } else {\n console.warn(`[hazo_pdf] ${message}`);\n }\n },\n error: (message: string, data?: Record<string, unknown>) => {\n if (data) {\n console.error(`[hazo_pdf] ${message}`, data);\n } else {\n console.error(`[hazo_pdf] ${message}`);\n }\n },\n};\n\n/**\n * Current logger instance\n * Defaults to console_logger, can be set via set_logger()\n */\nlet current_logger: Logger = console_logger;\n\n/**\n * Set the logger instance to use throughout hazo_pdf\n * @param logger - Logger instance (from hazo_logs or custom), or undefined to reset to console\n */\nexport function set_logger(logger: Logger | undefined): void {\n current_logger = logger || console_logger;\n}\n\n/**\n * Get the current logger instance\n * @returns Current logger (either hazo_logs instance or console fallback)\n */\nexport function get_logger(): Logger {\n return current_logger;\n}\n","/**\n * Default configuration values for hazo_pdf\n * All styling defaults organized by category\n */\n\nimport type { PdfViewerConfig } from '../types/config';\n\n/**\n * Default PDF Viewer Configuration\n * These values are used when no config file is provided or when values are missing\n */\nexport const default_config: PdfViewerConfig = {\n fonts: {\n freetext_font_family: 'Arial, sans-serif',\n freetext_font_size_min: 12,\n freetext_font_size_max: 24,\n freetext_font_size_default: 14,\n font_foreground_color: '#000000', // Black by default\n },\n\n highlight_annotation: {\n highlight_fill_color: '#FFFF00',\n highlight_fill_opacity: 0.3,\n highlight_border_color: '#FFD700',\n highlight_border_color_hover: '#FFD700',\n highlight_fill_opacity_hover: 0.4,\n },\n\n square_annotation: {\n square_fill_color: '#FF0000',\n square_fill_opacity: 0.2,\n square_border_color: '#FF0000',\n square_border_color_hover: '#CC0000',\n square_fill_opacity_hover: 0.3,\n },\n\n freetext_annotation: {\n freetext_text_color: '#000000',\n freetext_text_color_hover: '#000000',\n freetext_border_color: '#003366',\n freetext_border_width: 1,\n freetext_background_color: '#E6F3FF',\n freetext_background_opacity: 0.1,\n freetext_font_weight: 'normal',\n freetext_font_style: 'normal',\n freetext_text_decoration: 'none',\n freetext_padding_horizontal: 4,\n freetext_padding_vertical: 2,\n },\n\n page_styling: {\n page_border_color: '#999999',\n page_box_shadow: '0 2px 8px rgba(0, 0, 0, 0.3)',\n page_background_color: '#ffffff',\n },\n\n viewer: {\n viewer_background_color: '#2d2d2d',\n append_timestamp_to_text_edits: false,\n annotation_text_suffix_fixed_text: '',\n add_enclosing_brackets_to_suffixes: true,\n suffix_enclosing_brackets: '[]',\n suffix_text_position: 'below_multi_line',\n },\n\n context_menu: {\n context_menu_background_color: '#ffffff',\n context_menu_border_color: '#d1d5db',\n context_menu_item_hover_background: '#f3f4f6',\n context_menu_item_disabled_opacity: 0.5,\n right_click_custom_stamps: '', // Empty string means no custom stamps\n },\n\n dialog: {\n dialog_backdrop_opacity: 0.2,\n dialog_background_color: '#ffffff',\n dialog_border_color: '#d1d5db',\n dialog_button_submit_color: '#16a34a',\n dialog_button_submit_color_hover: '#15803d',\n dialog_button_cancel_color: '#6b7280',\n dialog_button_cancel_color_hover: '#4b5563',\n dialog_button_disabled_opacity: 0.4,\n },\n\n toolbar: {\n toolbar_background_color: '#f9fafb',\n toolbar_border_color: '#e5e7eb',\n toolbar_font_family: 'system-ui, -apple-system, sans-serif',\n toolbar_font_size: 14,\n toolbar_font_color: '#111827',\n toolbar_button_background_color: '#ffffff',\n toolbar_button_background_color_hover: '#f3f4f6',\n toolbar_button_text_color: '#374151',\n toolbar_button_active_background_color: '#3b82f6',\n toolbar_button_active_text_color: '#ffffff',\n toolbar_button_save_background_color: '#10b981',\n toolbar_button_save_background_color_hover: '#059669',\n toolbar_button_save_text_color: '#ffffff',\n toolbar_button_disabled_opacity: 0.5,\n toolbar_show_zoom_controls: true,\n toolbar_show_rotation_controls: true,\n toolbar_show_square_button: true,\n toolbar_show_undo_button: true,\n toolbar_show_redo_button: true,\n toolbar_show_save_button: true,\n toolbar_show_metadata_button: true,\n toolbar_show_annotate_button: true,\n toolbar_show_file_info_button: true,\n toolbar_show_extract_button: true,\n toolbar_show_download_button: false,\n toolbar_zoom_out_label: '−',\n toolbar_zoom_in_label: '+',\n toolbar_zoom_reset_label: 'Reset',\n toolbar_square_label: 'Square',\n toolbar_undo_label: 'Undo',\n toolbar_redo_label: 'Redo',\n toolbar_save_label: 'Save',\n toolbar_saving_label: 'Saving...',\n toolbar_metadata_label: 'Metadata',\n },\n\n file_manager: {\n file_manager_enabled: false,\n show_file_list: true,\n allow_delete: true,\n show_popout_button: true,\n file_list_height: 60,\n selected_color: '#3b82f6',\n file_list_background_color: '#f9fafb',\n file_list_border_color: '#e5e7eb',\n },\n\n file_upload: {\n upload_enabled: true,\n allowed_types: 'application/pdf,image/jpeg,image/png,image/gif,image/webp,text/plain,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel',\n max_file_size: 10485760, // 10MB\n max_files: 10,\n show_add_button: true,\n dropzone_border_color: '#d1d5db',\n dropzone_border_color_active: '#3b82f6',\n dropzone_background_color: '#f9fafb',\n direct_upload: false,\n },\n\n pdf_conversion: {\n conversion_enabled: true,\n page_size: 'letter',\n image_quality: 0.85,\n image_fit: 'fit',\n margin: 36,\n },\n\n auto_highlight: {\n auto_highlight_border_color: '#FF6B00',\n auto_highlight_background_color: '#FFF3E0',\n auto_highlight_background_opacity: 0.3,\n auto_highlight_border_width: 1,\n auto_highlight_normalize_text: true,\n auto_highlight_padding_x: 2,\n auto_highlight_padding_y: 1,\n auto_highlight_y_offset: -3,\n },\n\n file_button: {\n icon_size: 24,\n icon_color: '#6b7280',\n icon_color_hover: '#374151',\n icon_color_with_files: '#3b82f6',\n badge_background: '#3b82f6',\n badge_text_color: '#ffffff',\n },\n};\n"],"mappings":"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","names":[]}