hazo_ihelp 2.0.9 → 2.1.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/SETUP_CHECKLIST.md +131 -0
- package/config/hazo_ihelp_config.ini.sample +41 -8
- package/db_setup_postgres.sql +52 -0
- package/db_setup_sqlite.sql +25 -0
- package/dist/api/create_config_handler.d.ts +2 -0
- package/dist/api/create_config_handler.d.ts.map +1 -1
- package/dist/api/create_config_handler.js +117 -81
- package/dist/api/create_config_handler.js.map +1 -1
- package/dist/api/create_ihelp_handler.d.ts +4 -12
- package/dist/api/create_ihelp_handler.d.ts.map +1 -1
- package/dist/api/create_ihelp_handler.js +251 -226
- package/dist/api/create_ihelp_handler.js.map +1 -1
- package/dist/api/image_upload_handler.d.ts.map +1 -1
- package/dist/api/image_upload_handler.js +114 -80
- package/dist/api/image_upload_handler.js.map +1 -1
- package/dist/components/editor/editor_collapsible_section.js +1 -1
- package/dist/components/editor/editor_collapsible_section.js.map +1 -1
- package/dist/components/editor/editor_form.js +1 -1
- package/dist/components/editor/editor_form.js.map +1 -1
- package/dist/components/editor/editor_topic_list_item.js +1 -1
- package/dist/components/editor/editor_topic_list_item.js.map +1 -1
- package/dist/components/hover_help_icon.d.ts +39 -0
- package/dist/components/hover_help_icon.d.ts.map +1 -0
- package/dist/components/hover_help_icon.js +29 -0
- package/dist/components/hover_help_icon.js.map +1 -0
- package/dist/components/ihelp_detail_panel.js +1 -1
- package/dist/components/ihelp_detail_panel.js.map +1 -1
- package/dist/components/ihelp_editor.js +1 -1
- package/dist/components/ihelp_editor.js.map +1 -1
- package/dist/components/ihelp_icon.js +1 -1
- package/dist/components/ihelp_icon.js.map +1 -1
- package/dist/components/ihelp_provider.d.ts.map +1 -1
- package/dist/components/ihelp_provider.js +6 -1
- package/dist/components/ihelp_provider.js.map +1 -1
- package/dist/components/ihelp_rich_editor.js +1 -1
- package/dist/components/ihelp_rich_editor.js.map +1 -1
- package/dist/components/ihelp_search_dialog.js +1 -1
- package/dist/components/ihelp_search_dialog.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/ui/badge.js +1 -1
- package/dist/components/ui/badge.js.map +1 -1
- package/dist/components/ui/button.js +1 -1
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/dialog.js +1 -1
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/input.js +1 -1
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/ui/label.js +1 -1
- package/dist/components/ui/label.js.map +1 -1
- package/dist/components/ui/popover.js +1 -1
- package/dist/components/ui/popover.js.map +1 -1
- package/dist/components/ui/select.js +1 -1
- package/dist/components/ui/select.js.map +1 -1
- package/dist/components/ui/switch.js +1 -1
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/textarea.js +1 -1
- package/dist/components/ui/textarea.js.map +1 -1
- package/dist/index.client.d.ts +1 -1
- package/dist/index.client.d.ts.map +1 -1
- package/dist/index.client.js +1 -1
- package/dist/index.client.js.map +1 -1
- package/dist/lib/config/hazo_ihelp_config.d.ts +106 -0
- package/dist/lib/config/hazo_ihelp_config.d.ts.map +1 -0
- package/dist/lib/config/hazo_ihelp_config.js +66 -0
- package/dist/lib/config/hazo_ihelp_config.js.map +1 -0
- package/dist/utils/logger.d.ts +25 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +42 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +65 -22
- package/config/hazo_ihelp_config.ini +0 -9
- package/dist/utils/cn.d.ts +0 -3
- package/dist/utils/cn.d.ts.map +0 -1
- package/dist/utils/cn.js +0 -6
- package/dist/utils/cn.js.map +0 -1
- package/migrations/001_create_ihelp_tables.sql +0 -109
|
@@ -23,18 +23,30 @@
|
|
|
23
23
|
import { NextResponse } from 'next/server';
|
|
24
24
|
import { mkdirSync, existsSync, writeFileSync } from 'fs';
|
|
25
25
|
import { resolve, extname } from 'path';
|
|
26
|
+
import { HazoError, HazoValidationError, generateRequestId, getCorrelationId, withContext, } from 'hazo_core';
|
|
26
27
|
import { parseIhelpConfig } from '../config/parse_config.js';
|
|
28
|
+
import { get_logger } from '../utils/logger.js';
|
|
27
29
|
// ---- Helpers ----
|
|
28
30
|
function generateUUID() {
|
|
29
|
-
return
|
|
30
|
-
const r = (Math.random() * 16) | 0;
|
|
31
|
-
const v = c === 'x' ? r : (r & 0x3) | 0x8;
|
|
32
|
-
return v.toString(16);
|
|
33
|
-
});
|
|
31
|
+
return generateRequestId().slice(4);
|
|
34
32
|
}
|
|
35
33
|
function createErrorResponse(error, status) {
|
|
36
34
|
return NextResponse.json({ success: false, error }, { status });
|
|
37
35
|
}
|
|
36
|
+
function handleError(logger, event, error) {
|
|
37
|
+
if (HazoError.is(error)) {
|
|
38
|
+
const status = error.httpStatus ?? 500;
|
|
39
|
+
if (status >= 500) {
|
|
40
|
+
logger.error(event, { code: error.code, message: error.message, context: error.context });
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
logger.warn(event, { code: error.code, message: error.message });
|
|
44
|
+
}
|
|
45
|
+
return createErrorResponse(error.message, status);
|
|
46
|
+
}
|
|
47
|
+
logger.error(event, { error: error instanceof Error ? error.message : String(error) });
|
|
48
|
+
return createErrorResponse(error instanceof Error ? error.message : 'Failed to upload image', 500);
|
|
49
|
+
}
|
|
38
50
|
const MIME_TO_EXT = {
|
|
39
51
|
'image/jpeg': '.jpg',
|
|
40
52
|
'image/png': '.png',
|
|
@@ -52,7 +64,6 @@ async function loadSharp() {
|
|
|
52
64
|
// @ts-ignore — sharp is an optional peer dependency; may not be installed
|
|
53
65
|
const mod = await import('sharp');
|
|
54
66
|
const fn = mod.default ?? mod;
|
|
55
|
-
// Verify it's actually callable (not just a module namespace object)
|
|
56
67
|
if (typeof fn !== 'function')
|
|
57
68
|
return null;
|
|
58
69
|
return fn;
|
|
@@ -63,86 +74,109 @@ async function loadSharp() {
|
|
|
63
74
|
}
|
|
64
75
|
// ---- Factory ----
|
|
65
76
|
export function createImageUploadHandler(options) {
|
|
77
|
+
const logger = get_logger();
|
|
66
78
|
async function POST(request) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
79
|
+
return withContext({ correlationId: getCorrelationId() ?? generateRequestId() }, async () => {
|
|
80
|
+
try {
|
|
81
|
+
const config = parseIhelpConfig(options?.config_path);
|
|
82
|
+
const { image_upload: cfg } = config;
|
|
83
|
+
// -- Parse multipart form data --
|
|
84
|
+
const formData = await request.formData();
|
|
85
|
+
const file = formData.get('file');
|
|
86
|
+
const scope_id = formData.get('scope_id');
|
|
87
|
+
if (!file || !(file instanceof Blob)) {
|
|
88
|
+
throw new HazoValidationError({
|
|
89
|
+
code: 'HAZO_IHELP_VALIDATION_ERROR',
|
|
90
|
+
pkg: 'hazo_ihelp',
|
|
91
|
+
message: 'No file provided',
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
// -- Validate file size --
|
|
95
|
+
const maxBytes = cfg.max_file_size_mb * 1024 * 1024;
|
|
96
|
+
if (file.size > maxBytes) {
|
|
97
|
+
throw new HazoValidationError({
|
|
98
|
+
code: 'HAZO_IHELP_TOO_LARGE',
|
|
99
|
+
pkg: 'hazo_ihelp',
|
|
100
|
+
message: `File too large. Maximum size is ${cfg.max_file_size_mb}MB`,
|
|
101
|
+
context: { file_size: file.size, max_bytes: maxBytes },
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
// -- Validate MIME type --
|
|
105
|
+
const mimeType = file.type;
|
|
106
|
+
if (!cfg.allowed_types.includes(mimeType)) {
|
|
107
|
+
throw new HazoValidationError({
|
|
108
|
+
code: 'HAZO_IHELP_UNSUPPORTED_TYPE',
|
|
109
|
+
pkg: 'hazo_ihelp',
|
|
110
|
+
message: `File type "${mimeType}" is not allowed. Allowed types: ${cfg.allowed_types.join(', ')}`,
|
|
111
|
+
context: { mime_type: mimeType },
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
// -- Read file buffer --
|
|
115
|
+
const arrayBuffer = await file.arrayBuffer();
|
|
116
|
+
let buffer = Buffer.from(arrayBuffer);
|
|
117
|
+
let width;
|
|
118
|
+
let height;
|
|
119
|
+
// -- Resize if enabled (skip SVG) --
|
|
120
|
+
if (cfg.resize_enabled && mimeType !== 'image/svg+xml') {
|
|
121
|
+
const sharp = await loadSharp();
|
|
122
|
+
if (sharp) {
|
|
123
|
+
const image = sharp(buffer);
|
|
124
|
+
const metadata = await image.metadata();
|
|
125
|
+
width = metadata.width;
|
|
126
|
+
height = metadata.height;
|
|
127
|
+
const needsResize = (width && width > cfg.resize_max_width) ||
|
|
128
|
+
(height && height > cfg.resize_max_height);
|
|
129
|
+
if (needsResize) {
|
|
130
|
+
buffer = await image
|
|
131
|
+
.resize(cfg.resize_max_width, cfg.resize_max_height, {
|
|
132
|
+
fit: 'inside',
|
|
133
|
+
withoutEnlargement: true,
|
|
134
|
+
})
|
|
135
|
+
.jpeg({ quality: cfg.resize_quality })
|
|
136
|
+
.toBuffer();
|
|
137
|
+
// Update dimensions after resize
|
|
138
|
+
const resizedMeta = await sharp(buffer).metadata();
|
|
139
|
+
width = resizedMeta.width;
|
|
140
|
+
height = resizedMeta.height;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
logger.warn('upload.sharp.missing', {
|
|
145
|
+
hint: 'install sharp as a dependency to enable resize: npm install sharp',
|
|
146
|
+
});
|
|
114
147
|
}
|
|
115
148
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
149
|
+
// -- Generate filename and path --
|
|
150
|
+
const ext = MIME_TO_EXT[mimeType] || extname(file.name || '') || '.bin';
|
|
151
|
+
const filename = `${generateUUID()}${ext}`;
|
|
152
|
+
const scope = scope_id || 'global';
|
|
153
|
+
const dir = resolve(cfg.upload_dir, scope);
|
|
154
|
+
if (!existsSync(dir)) {
|
|
155
|
+
mkdirSync(dir, { recursive: true });
|
|
119
156
|
}
|
|
157
|
+
const filePath = resolve(dir, filename);
|
|
158
|
+
writeFileSync(filePath, buffer);
|
|
159
|
+
// -- Build response URL --
|
|
160
|
+
const url = `${cfg.upload_url_prefix}/${scope}/${filename}`;
|
|
161
|
+
const response = {
|
|
162
|
+
url,
|
|
163
|
+
filename,
|
|
164
|
+
size: buffer.length,
|
|
165
|
+
...(width !== undefined && { width }),
|
|
166
|
+
...(height !== undefined && { height }),
|
|
167
|
+
};
|
|
168
|
+
logger.info('upload.complete', {
|
|
169
|
+
filename,
|
|
170
|
+
scope,
|
|
171
|
+
size_bytes: buffer.length,
|
|
172
|
+
mime_type: mimeType,
|
|
173
|
+
});
|
|
174
|
+
return NextResponse.json({ success: true, data: response }, { status: 201 });
|
|
120
175
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
const filename = `${generateUUID()}${ext}`;
|
|
124
|
-
const scope = scope_id || 'global';
|
|
125
|
-
const dir = resolve(cfg.upload_dir, scope);
|
|
126
|
-
if (!existsSync(dir)) {
|
|
127
|
-
mkdirSync(dir, { recursive: true });
|
|
176
|
+
catch (error) {
|
|
177
|
+
return handleError(logger, 'upload.failed', error);
|
|
128
178
|
}
|
|
129
|
-
|
|
130
|
-
writeFileSync(filePath, buffer);
|
|
131
|
-
// -- Build response URL --
|
|
132
|
-
const url = `${cfg.upload_url_prefix}/${scope}/${filename}`;
|
|
133
|
-
const response = {
|
|
134
|
-
url,
|
|
135
|
-
filename,
|
|
136
|
-
size: buffer.length,
|
|
137
|
-
...(width !== undefined && { width }),
|
|
138
|
-
...(height !== undefined && { height }),
|
|
139
|
-
};
|
|
140
|
-
return NextResponse.json({ success: true, data: response }, { status: 201 });
|
|
141
|
-
}
|
|
142
|
-
catch (error) {
|
|
143
|
-
console.error('[hazo_ihelp] Upload error:', error instanceof Error ? error.stack : error);
|
|
144
|
-
return createErrorResponse(error instanceof Error ? error.message : 'Failed to upload image', 500);
|
|
145
|
-
}
|
|
179
|
+
});
|
|
146
180
|
}
|
|
147
181
|
return { POST };
|
|
148
182
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image_upload_handler.js","sourceRoot":"","sources":["../../src/api/image_upload_handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,oBAAoB;AAEpB,SAAS,YAAY;IACnB,OAAO,
|
|
1
|
+
{"version":3,"file":"image_upload_handler.js","sourceRoot":"","sources":["../../src/api/image_upload_handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState } from 'react';
|
|
4
4
|
import { ChevronRight } from 'lucide-react';
|
|
5
|
-
import { cn } from '
|
|
5
|
+
import { cn } from 'hazo_ui';
|
|
6
6
|
export function CollapsibleSection({ icon, label, badge, defaultOpen = false, children, }) {
|
|
7
7
|
const [open, set_open] = useState(defaultOpen);
|
|
8
8
|
return (_jsxs("div", { className: "border-t", children: [_jsxs("button", { type: "button", onClick: () => set_open((v) => !v), className: "flex w-full items-center gap-2 px-0 py-3 text-sm font-medium text-muted-foreground transition-colors hover:text-foreground", children: [_jsx(ChevronRight, { className: cn('h-4 w-4 shrink-0 transition-transform duration-200', open && 'rotate-90') }), _jsxs("span", { className: "flex items-center gap-2", children: [icon, label] }), badge && (_jsx("span", { className: "ml-auto rounded-full bg-muted px-2 py-0.5 text-[10px] font-semibold tabular-nums text-muted-foreground", children: badge }))] }), _jsx("div", { className: cn('grid transition-all duration-200', open ? 'grid-rows-[1fr] opacity-100 pb-4' : 'grid-rows-[0fr] opacity-0'), children: _jsx("div", { className: "overflow-hidden", children: children }) })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor_collapsible_section.js","sourceRoot":"","sources":["../../../src/components/editor/editor_collapsible_section.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"editor_collapsible_section.js","sourceRoot":"","sources":["../../../src/components/editor/editor_collapsible_section.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAU7B,MAAM,UAAU,kBAAkB,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,KAAK,EACL,WAAW,GAAG,KAAK,EACnB,QAAQ,GACgB;IACxB,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE/C,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,aACvB,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAClC,SAAS,EAAC,4HAA4H,aAEtI,KAAC,YAAY,IACX,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,IAAI,IAAI,WAAW,CACpB,GACD,EACF,gBAAM,SAAS,EAAC,yBAAyB,aACtC,IAAI,EACJ,KAAK,IACD,EACN,KAAK,IAAI,CACR,eAAM,SAAS,EAAC,wGAAwG,YACrH,KAAK,GACD,CACR,IACM,EACT,cACE,SAAS,EAAE,EAAE,CACX,kCAAkC,EAClC,IAAI,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,2BAA2B,CACxE,YAED,cAAK,SAAS,EAAC,iBAAiB,YAC7B,QAAQ,GACL,GACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
4
|
import { Save, Trash2, Settings } from 'lucide-react';
|
|
5
|
-
import { cn } from '
|
|
5
|
+
import { cn } from 'hazo_ui';
|
|
6
6
|
import { Button } from '../ui/button.js';
|
|
7
7
|
import { Input } from '../ui/input.js';
|
|
8
8
|
import { Label } from '../ui/label.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor_form.js","sourceRoot":"","sources":["../../../src/components/editor/editor_form.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"editor_form.js","sourceRoot":"","sources":["../../../src/components/editor/editor_form.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { CheckCircle } from 'lucide-react';
|
|
4
|
-
import { cn } from '
|
|
4
|
+
import { cn } from 'hazo_ui';
|
|
5
5
|
export function TopicListItem({ topic, depth, selected, onSelect }) {
|
|
6
6
|
return (_jsxs("button", { type: "button", onClick: () => onSelect(topic.id), className: cn('group flex w-full items-center gap-2.5 rounded-md px-3 py-2 text-left text-sm transition-all duration-150', selected
|
|
7
7
|
? 'bg-accent text-accent-foreground border-l-2 border-primary pl-[10px]'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor_topic_list_item.js","sourceRoot":"","sources":["../../../src/components/editor/editor_topic_list_item.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"editor_topic_list_item.js","sourceRoot":"","sources":["../../../src/components/editor/editor_topic_list_item.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAS7B,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAsB;IACpF,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EACjC,SAAS,EAAE,EAAE,CACX,2GAA2G,EAC3G,QAAQ;YACN,CAAC,CAAC,sEAAsE;YACxE,CAAC,CAAC,iDAAiD,CACtD,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,EAAE,IAAI,EAAE,aAE/D,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CACpB,KAAC,WAAW,IAAC,SAAS,EAAC,uCAAuC,GAAG,CAClE,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,mIAAmI,sBAE5I,CACR,EACD,eAAM,SAAS,EAAC,UAAU,YAAE,KAAK,CAAC,KAAK,GAAQ,IACxC,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export interface HoverHelpIconProps {
|
|
3
|
+
/** Heading shown at the top of the hover card. Plain text. */
|
|
4
|
+
title: string;
|
|
5
|
+
/**
|
|
6
|
+
* Body content. If a string is passed, newlines are preserved as
|
|
7
|
+
* whitespace-pre-line. Pass ReactNode for richer layouts (lists,
|
|
8
|
+
* links, etc.).
|
|
9
|
+
*/
|
|
10
|
+
body: ReactNode;
|
|
11
|
+
/** Accessible label for the icon button (screen readers, mobile fallback). */
|
|
12
|
+
aria_label: string;
|
|
13
|
+
/** Icon pixel size (default 14). */
|
|
14
|
+
size?: number;
|
|
15
|
+
/** Card side relative to the trigger. Default "top". */
|
|
16
|
+
side?: "top" | "right" | "bottom" | "left";
|
|
17
|
+
/** Optional extra className for the trigger button. */
|
|
18
|
+
className?: string;
|
|
19
|
+
/** Optional extra className for the hover card container. */
|
|
20
|
+
content_className?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Standalone "?" icon that opens a Radix HoverCard with a titled help body.
|
|
24
|
+
*
|
|
25
|
+
* Unlike `IhelpIcon`, this component does NOT require an `IhelpProvider`,
|
|
26
|
+
* does NOT touch the topic store, and does NOT open the global search
|
|
27
|
+
* dialog. It's a thin hover-only popover for inline step-by-step
|
|
28
|
+
* explanations — useful when the content is short, static, and authored
|
|
29
|
+
* at the call site rather than stored in the topics table.
|
|
30
|
+
*
|
|
31
|
+
* Behaviour:
|
|
32
|
+
* - Desktop: opens on hover (HoverCard default).
|
|
33
|
+
* - Touch / keyboard: opens on tap / Enter (controlled `open` state).
|
|
34
|
+
*
|
|
35
|
+
* For topic-store-backed help (full rich content, search, editor), keep
|
|
36
|
+
* using `IhelpIcon` which delegates to the provider's `open_search`.
|
|
37
|
+
*/
|
|
38
|
+
export declare function HoverHelpIcon({ title, body, aria_label, size, side, className, content_className, }: HoverHelpIconProps): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
//# sourceMappingURL=hover_help_icon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hover_help_icon.d.ts","sourceRoot":"","sources":["../../src/components/hover_help_icon.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKxD,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,IAAI,EAAE,SAAS,CAAC;IAChB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,IAAI,EACJ,UAAU,EACV,IAAS,EACT,IAAY,EACZ,SAAS,EACT,iBAAiB,GAClB,EAAE,kBAAkB,2CAkDpB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import * as HoverCard from "@radix-ui/react-hover-card";
|
|
5
|
+
import { HelpCircle } from "lucide-react";
|
|
6
|
+
import { cn } from 'hazo_ui';
|
|
7
|
+
/**
|
|
8
|
+
* Standalone "?" icon that opens a Radix HoverCard with a titled help body.
|
|
9
|
+
*
|
|
10
|
+
* Unlike `IhelpIcon`, this component does NOT require an `IhelpProvider`,
|
|
11
|
+
* does NOT touch the topic store, and does NOT open the global search
|
|
12
|
+
* dialog. It's a thin hover-only popover for inline step-by-step
|
|
13
|
+
* explanations — useful when the content is short, static, and authored
|
|
14
|
+
* at the call site rather than stored in the topics table.
|
|
15
|
+
*
|
|
16
|
+
* Behaviour:
|
|
17
|
+
* - Desktop: opens on hover (HoverCard default).
|
|
18
|
+
* - Touch / keyboard: opens on tap / Enter (controlled `open` state).
|
|
19
|
+
*
|
|
20
|
+
* For topic-store-backed help (full rich content, search, editor), keep
|
|
21
|
+
* using `IhelpIcon` which delegates to the provider's `open_search`.
|
|
22
|
+
*/
|
|
23
|
+
export function HoverHelpIcon({ title, body, aria_label, size = 14, side = "top", className, content_className, }) {
|
|
24
|
+
// HoverCard ignores touch events by design (Radix decision: hover semantics
|
|
25
|
+
// are pointer-only). Pair it with a click toggle so taps still open it.
|
|
26
|
+
const [tap_open, set_tap_open] = useState(false);
|
|
27
|
+
return (_jsxs(HoverCard.Root, { openDelay: 120, closeDelay: 120, open: tap_open || undefined, onOpenChange: set_tap_open, children: [_jsx(HoverCard.Trigger, { asChild: true, children: _jsx("button", { type: "button", "aria-label": aria_label, onClick: () => set_tap_open((v) => !v), className: cn("inline-flex items-center justify-center rounded-full text-blue-600", "hover:bg-blue-100 hover:text-blue-800 transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-400 focus-visible:ring-offset-1", className), style: { width: size + 8, height: size + 8 }, children: _jsx(HelpCircle, { size: size, "aria-hidden": true }) }) }), _jsx(HoverCard.Portal, { children: _jsxs(HoverCard.Content, { side: side, sideOffset: 8, align: "center", className: cn("z-50 max-w-sm rounded-lg border border-black/5 bg-white p-4 shadow-lg", "text-xs leading-relaxed text-slate-700", content_className), children: [_jsx("p", { className: "mb-2 text-sm font-semibold text-slate-900", children: title }), typeof body === "string" ? (_jsx("div", { className: "whitespace-pre-line", children: body })) : (body), _jsx(HoverCard.Arrow, { className: "fill-white" })] }) })] }));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=hover_help_icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hover_help_icon.js","sourceRoot":"","sources":["../../src/components/hover_help_icon.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACxD,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAuB7B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,KAAK,EACL,IAAI,EACJ,UAAU,EACV,IAAI,GAAG,EAAE,EACT,IAAI,GAAG,KAAK,EACZ,SAAS,EACT,iBAAiB,GACE;IACnB,4EAA4E;IAC5E,wEAAwE;IACxE,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEjD,OAAO,CACL,MAAC,SAAS,CAAC,IAAI,IACb,SAAS,EAAE,GAAG,EACd,UAAU,EAAE,GAAG,EACf,IAAI,EAAE,QAAQ,IAAI,SAAS,EAC3B,YAAY,EAAE,YAAY,aAE1B,KAAC,SAAS,CAAC,OAAO,IAAC,OAAO,kBACxB,iBACE,IAAI,EAAC,QAAQ,gBACD,UAAU,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EACtC,SAAS,EAAE,EAAE,CACX,oEAAoE,EACpE,yDAAyD,EACzD,yGAAyG,EACzG,SAAS,CACV,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,YAE5C,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,wBAAgB,GAC/B,GACS,EACpB,KAAC,SAAS,CAAC,MAAM,cACf,MAAC,SAAS,CAAC,OAAO,IAChB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,CAAC,EACb,KAAK,EAAC,QAAQ,EACd,SAAS,EAAE,EAAE,CACX,uEAAuE,EACvE,wCAAwC,EACxC,iBAAiB,CAClB,aAED,YAAG,SAAS,EAAC,2CAA2C,YAAE,KAAK,GAAK,EACnE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC1B,cAAK,SAAS,EAAC,qBAAqB,YAAE,IAAI,GAAO,CAClD,CAAC,CAAC,CAAC,CACF,IAAI,CACL,EACD,KAAC,SAAS,CAAC,KAAK,IAAC,SAAS,EAAC,YAAY,GAAG,IACxB,GACH,IACJ,CAClB,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
|
-
import { cn } from '
|
|
4
|
+
import { cn } from 'hazo_ui';
|
|
5
5
|
import { Badge } from './ui/badge.js';
|
|
6
6
|
/**
|
|
7
7
|
* Resolve image src attributes in HTML content.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ihelp_detail_panel.js","sourceRoot":"","sources":["../../src/components/ihelp_detail_panel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ihelp_detail_panel.js","sourceRoot":"","sources":["../../src/components/ihelp_detail_panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
3
3
|
import { useState, useMemo, useCallback } from 'react';
|
|
4
4
|
import { use_ihelp_editor } from '../hooks/use_ihelp_editor.js';
|
|
5
5
|
import { use_ihelp_config } from '../hooks/use_ihelp_config.js';
|
|
6
|
-
import { cn } from '
|
|
6
|
+
import { cn } from 'hazo_ui';
|
|
7
7
|
import { EditorTopicList } from './editor/editor_topic_list.js';
|
|
8
8
|
import { EditorForm } from './editor/editor_form.js';
|
|
9
9
|
import { ImportDialog, use_export_topics } from './editor/editor_import_export.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ihelp_editor.js","sourceRoot":"","sources":["../../src/components/ihelp_editor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ihelp_editor.js","sourceRoot":"","sources":["../../src/components/ihelp_editor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { Info } from 'lucide-react';
|
|
4
|
-
import { cn } from '
|
|
4
|
+
import { cn } from 'hazo_ui';
|
|
5
5
|
import { useIhelpContext } from './ihelp_provider.js';
|
|
6
6
|
/**
|
|
7
7
|
* Small blue "i" icon that opens the help search dialog scoped to the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ihelp_icon.js","sourceRoot":"","sources":["../../src/components/ihelp_icon.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ihelp_icon.js","sourceRoot":"","sources":["../../src/components/ihelp_icon.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,WAAW,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAkB;IAC7E,MAAM,EAAE,WAAW,EAAE,GAAG,eAAe,EAAE,CAAC;IAE1C,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,gBACF,WAAW,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,EACvC,SAAS,EAAE,EAAE,CACX,sDAAsD,EACtD,qDAAqD,EACrD,2HAA2H,EAC3H,SAAS,CACV,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,YAE5C,KAAC,IAAI,IAAC,IAAI,EAAE,IAAI,GAAI,GACb,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ihelp_provider.d.ts","sourceRoot":"","sources":["../../src/components/ihelp_provider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ihelp_provider.d.ts","sourceRoot":"","sources":["../../src/components/ihelp_provider.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAQ3G,UAAU,iBAAiB;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,uEAAuE;IACvE,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAID;;GAEG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CAUnD;AAMD,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,YAA2B,EAC3B,QAAQ,EACR,eAAyB,EACzB,gBAAuB,EACvB,cAAc,EACd,KAAK,EACL,MAAM,GACP,EAAE,kBAAkB,2CAgFpB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { createContext, useContext, useState, useCallback, useEffect } from 'react';
|
|
4
|
+
import { HazoInternalError } from 'hazo_core';
|
|
4
5
|
import { use_ihelp_search } from '../hooks/use_ihelp_search.js';
|
|
5
6
|
import { IhelpSearchDialog } from './ihelp_search_dialog.js';
|
|
6
7
|
const IhelpContext = createContext(null);
|
|
@@ -10,7 +11,11 @@ const IhelpContext = createContext(null);
|
|
|
10
11
|
export function useIhelpContext() {
|
|
11
12
|
const ctx = useContext(IhelpContext);
|
|
12
13
|
if (!ctx) {
|
|
13
|
-
throw new
|
|
14
|
+
throw new HazoInternalError({
|
|
15
|
+
code: 'HAZO_IHELP_PROVIDER_MISSING',
|
|
16
|
+
pkg: 'hazo_ihelp',
|
|
17
|
+
message: 'useIhelpContext must be used within an <IhelpProvider>',
|
|
18
|
+
});
|
|
14
19
|
}
|
|
15
20
|
return ctx;
|
|
16
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ihelp_provider.js","sourceRoot":"","sources":["../../src/components/ihelp_provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ihelp_provider.js","sourceRoot":"","sources":["../../src/components/ihelp_provider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import Link from '@tiptap/extension-link';
|
|
|
7
7
|
import { ResizableImage } from './resizable_image.js';
|
|
8
8
|
import { Bold, Italic, List, ListOrdered, Heading1, Heading2, Link as LinkIcon, Undo, Redo, ImageIcon, Upload, Link2, } from 'lucide-react';
|
|
9
9
|
import { Button } from './ui/button.js';
|
|
10
|
-
import { cn } from '
|
|
10
|
+
import { cn } from 'hazo_ui';
|
|
11
11
|
function Toolbar({ editor, upload_url, uploading, upload_error, onUploadImage }) {
|
|
12
12
|
if (!editor)
|
|
13
13
|
return null;
|