hazo_ihelp 2.5.0 → 2.7.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/README.md +26 -1
- package/db_setup_postgres.sql +2 -0
- package/db_setup_sqlite.sql +2 -0
- package/dist/api/create_config_handler.d.ts +7 -0
- package/dist/api/create_config_handler.d.ts.map +1 -1
- package/dist/api/create_config_handler.js +31 -2
- package/dist/api/create_config_handler.js.map +1 -1
- package/dist/api/create_ihelp_handler.d.ts.map +1 -1
- package/dist/api/create_ihelp_handler.js +62 -4
- package/dist/api/create_ihelp_handler.js.map +1 -1
- package/dist/components/editor/editor_context_keys_section.d.ts.map +1 -1
- package/dist/components/editor/editor_context_keys_section.js +9 -6
- package/dist/components/editor/editor_context_keys_section.js.map +1 -1
- package/dist/components/editor/editor_form.d.ts.map +1 -1
- package/dist/components/editor/editor_form.js +5 -2
- package/dist/components/editor/editor_form.js.map +1 -1
- package/dist/components/editor/editor_import_export.d.ts.map +1 -1
- package/dist/components/editor/editor_import_export.js +12 -6
- package/dist/components/editor/editor_import_export.js.map +1 -1
- package/dist/components/editor/editor_tags_section.d.ts.map +1 -1
- package/dist/components/editor/editor_tags_section.js +5 -2
- package/dist/components/editor/editor_tags_section.js.map +1 -1
- package/dist/components/editor/editor_topic_list.d.ts.map +1 -1
- package/dist/components/editor/editor_topic_list.js +4 -1
- package/dist/components/editor/editor_topic_list.js.map +1 -1
- package/dist/components/editor/editor_topic_list_item.d.ts.map +1 -1
- package/dist/components/editor/editor_topic_list_item.js +4 -1
- package/dist/components/editor/editor_topic_list_item.js.map +1 -1
- package/dist/components/hover_help_icon.d.ts +18 -1
- package/dist/components/hover_help_icon.d.ts.map +1 -1
- package/dist/components/hover_help_icon.js +22 -3
- package/dist/components/hover_help_icon.js.map +1 -1
- package/dist/components/ihelp_detail_panel.d.ts.map +1 -1
- package/dist/components/ihelp_detail_panel.js +5 -2
- package/dist/components/ihelp_detail_panel.js.map +1 -1
- package/dist/components/ihelp_editor.d.ts.map +1 -1
- package/dist/components/ihelp_editor.js +9 -3
- package/dist/components/ihelp_editor.js.map +1 -1
- package/dist/components/ihelp_field_help.d.ts +5 -1
- package/dist/components/ihelp_field_help.d.ts.map +1 -1
- package/dist/components/ihelp_field_help.js +5 -2
- package/dist/components/ihelp_field_help.js.map +1 -1
- package/dist/components/ihelp_icon.d.ts.map +1 -1
- package/dist/components/ihelp_icon.js +4 -1
- package/dist/components/ihelp_icon.js.map +1 -1
- package/dist/components/ihelp_page_sidebar.d.ts +21 -0
- package/dist/components/ihelp_page_sidebar.d.ts.map +1 -0
- package/dist/components/ihelp_page_sidebar.js +24 -0
- package/dist/components/ihelp_page_sidebar.js.map +1 -0
- package/dist/components/ihelp_rich_editor.d.ts.map +1 -1
- package/dist/components/ihelp_rich_editor.js +4 -1
- package/dist/components/ihelp_rich_editor.js.map +1 -1
- package/dist/components/ihelp_search_dialog.d.ts.map +1 -1
- package/dist/components/ihelp_search_dialog.js +21 -15
- package/dist/components/ihelp_search_dialog.js.map +1 -1
- package/dist/components/ihelp_topic_cards.d.ts +14 -0
- package/dist/components/ihelp_topic_cards.d.ts.map +1 -0
- package/dist/components/ihelp_topic_cards.js +22 -0
- package/dist/components/ihelp_topic_cards.js.map +1 -0
- package/dist/components/ihelp_topic_list.d.ts +14 -0
- package/dist/components/ihelp_topic_list.d.ts.map +1 -0
- package/dist/components/ihelp_topic_list.js +12 -0
- package/dist/components/ihelp_topic_list.js.map +1 -0
- package/dist/components/index.d.ts +3 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +3 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/topic_hover_icon.d.ts.map +1 -1
- package/dist/components/topic_hover_icon.js +5 -2
- package/dist/components/topic_hover_icon.js.map +1 -1
- package/dist/index.client.d.ts +3 -0
- package/dist/index.client.d.ts.map +1 -1
- package/dist/index.client.js.map +1 -1
- package/dist/index.runtime.d.ts +3 -0
- package/dist/index.runtime.d.ts.map +1 -1
- package/dist/index.runtime.js +3 -0
- package/dist/index.runtime.js.map +1 -1
- package/dist/locales/en.json +105 -0
- package/dist/types/index.d.ts +27 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +26 -22
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"editor_form.js","sourceRoot":"","sources":["../../../src/components/editor/editor_form.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor_import_export.d.ts","sourceRoot":"","sources":["../../../src/components/editor/editor_import_export.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"editor_import_export.d.ts","sourceRoot":"","sources":["../../../src/components/editor/editor_import_export.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAiB,MAAM,sBAAsB,CAAC;AAqCvF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,cAYrD;AAMD,UAAU,iBAAiB;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,YAAY,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9D,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,OAAO,GACR,EAAE,iBAAiB,qBAsJnB;AAMD,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,qBAAqB,qBAqBhF"}
|
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useRef, useState, useCallback } from 'react';
|
|
4
4
|
import { Download, Upload, AlertTriangle } from 'lucide-react';
|
|
5
|
+
import { createPackageT } from 'hazo_core/i18n';
|
|
5
6
|
import { Button } from '../ui/button.js';
|
|
6
7
|
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, } from '../ui/dialog.js';
|
|
8
|
+
import en from '../../locales/en.json' with { type: 'json' };
|
|
9
|
+
const t = createPackageT('hazo_ihelp', en);
|
|
7
10
|
// ---------------------------------------------------------------------------
|
|
8
11
|
// Helpers
|
|
9
12
|
// ---------------------------------------------------------------------------
|
|
@@ -68,18 +71,18 @@ export function ImportDialog({ open, onOpenChange, create_topic, refetch, }) {
|
|
|
68
71
|
try {
|
|
69
72
|
const raw = JSON.parse(reader.result);
|
|
70
73
|
if (!Array.isArray(raw) || raw.length === 0) {
|
|
71
|
-
set_error('
|
|
74
|
+
set_error(t('editor_import_export.error_empty_array'));
|
|
72
75
|
return;
|
|
73
76
|
}
|
|
74
77
|
if (!raw[0].title) {
|
|
75
|
-
set_error('
|
|
78
|
+
set_error(t('editor_import_export.error_missing_title'));
|
|
76
79
|
return;
|
|
77
80
|
}
|
|
78
81
|
set_parsed(prepare_import(raw));
|
|
79
82
|
set_error(null);
|
|
80
83
|
}
|
|
81
84
|
catch {
|
|
82
|
-
set_error('
|
|
85
|
+
set_error(t('editor_import_export.error_invalid_json'));
|
|
83
86
|
}
|
|
84
87
|
};
|
|
85
88
|
reader.readAsText(file);
|
|
@@ -95,7 +98,10 @@ export function ImportDialog({ open, onOpenChange, create_topic, refetch, }) {
|
|
|
95
98
|
await create_topic(input);
|
|
96
99
|
}
|
|
97
100
|
catch (err) {
|
|
98
|
-
set_error(
|
|
101
|
+
set_error(t('editor_import_export.error_failed_on', {
|
|
102
|
+
title: input.title,
|
|
103
|
+
message: err instanceof Error ? err.message : String(err),
|
|
104
|
+
}));
|
|
99
105
|
set_progress(null);
|
|
100
106
|
return;
|
|
101
107
|
}
|
|
@@ -103,9 +109,9 @@ export function ImportDialog({ open, onOpenChange, create_topic, refetch, }) {
|
|
|
103
109
|
refetch();
|
|
104
110
|
handle_close(false);
|
|
105
111
|
}, [parsed, create_topic, refetch, handle_close]);
|
|
106
|
-
return (_jsx(Dialog, { open: open, onOpenChange: handle_close, children: _jsxs(DialogContent, { className: "sm:max-w-md", children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children:
|
|
112
|
+
return (_jsx(Dialog, { open: open, onOpenChange: handle_close, children: _jsxs(DialogContent, { className: "sm:max-w-md", children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: t('editor_import_export.dialog_title') }), _jsx(DialogDescription, { children: t('editor_import_export.dialog_description') })] }), !parsed && !progress && (_jsxs("div", { className: "space-y-3", children: [_jsx("input", { ref: file_ref, type: "file", accept: ".json", onChange: handle_file, className: "block w-full text-sm text-muted-foreground file:mr-4 file:rounded-md file:border-0 file:bg-primary file:px-4 file:py-2 file:text-sm file:font-medium file:text-primary-foreground hover:file:bg-primary/90 file:cursor-pointer" }), error && (_jsxs("p", { className: "flex items-center gap-2 text-sm text-destructive", children: [_jsx(AlertTriangle, { className: "h-4 w-4 shrink-0" }), error] }))] })), parsed && !progress && (_jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "rounded-md border bg-muted/50 p-3 text-sm", children: [_jsx("p", { className: "font-medium", children: t('editor_import_export.topics_found', { count: parsed.length, plural: parsed.length !== 1 ? 's' : '' }) }), _jsx("p", { className: "mt-1 text-muted-foreground", children: t('editor_import_export.import_notice') })] }), error && (_jsxs("p", { className: "flex items-center gap-2 text-sm text-destructive", children: [_jsx(AlertTriangle, { className: "h-4 w-4 shrink-0" }), error] }))] })), progress && (_jsxs("div", { className: "space-y-2", children: [_jsx("div", { className: "h-2 w-full overflow-hidden rounded-full bg-muted", children: _jsx("div", { className: "h-full rounded-full bg-primary transition-all duration-300", style: { width: `${(progress.current / progress.total) * 100}%` } }) }), _jsx("p", { className: "text-center text-sm text-muted-foreground", children: t('editor_import_export.importing_progress', { current: progress.current, total: progress.total }) })] })), _jsx(DialogFooter, { children: !progress && (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "outline", onClick: () => handle_close(false), children: t('editor_import_export.cancel') }), parsed && (_jsxs(Button, { onClick: handle_import, children: [_jsx(Upload, { className: "mr-1.5 h-4 w-4" }), t('editor_import_export.import_button', { count: parsed.length, plural: parsed.length !== 1 ? 's' : '' })] }))] })) })] }) }));
|
|
107
113
|
}
|
|
108
114
|
export function ImportExportButtons({ onExport, onImport }) {
|
|
109
|
-
return (_jsxs(_Fragment, { children: [_jsxs("button", { type: "button", onClick: onImport, className: "flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm transition-colors hover:bg-muted", children: [_jsx(Upload, { className: "h-3.5 w-3.5" }),
|
|
115
|
+
return (_jsxs(_Fragment, { children: [_jsxs("button", { type: "button", onClick: onImport, className: "flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm transition-colors hover:bg-muted", children: [_jsx(Upload, { className: "h-3.5 w-3.5" }), t('editor_import_export.import_json')] }), _jsxs("button", { type: "button", onClick: onExport, className: "flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm transition-colors hover:bg-muted", children: [_jsx(Download, { className: "h-3.5 w-3.5" }), t('editor_import_export.export_json')] })] }));
|
|
110
116
|
}
|
|
111
117
|
//# sourceMappingURL=editor_import_export.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor_import_export.js","sourceRoot":"","sources":["../../../src/components/editor/editor_import_export.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"editor_import_export.js","sourceRoot":"","sources":["../../../src/components/editor/editor_import_export.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor_tags_section.d.ts","sourceRoot":"","sources":["../../../src/components/editor/editor_tags_section.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"editor_tags_section.d.ts","sourceRoot":"","sources":["../../../src/components/editor/editor_tags_section.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAU1D,UAAU,sBAAsB;IAC9B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,sBAAsB,qBAsF/F"}
|
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState, useCallback } from 'react';
|
|
4
4
|
import { Tag, X } from 'lucide-react';
|
|
5
|
+
import { createPackageT } from 'hazo_core/i18n';
|
|
5
6
|
import { Badge } from '../ui/badge.js';
|
|
6
7
|
import { Button } from '../ui/button.js';
|
|
7
8
|
import { Input } from '../ui/input.js';
|
|
8
9
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select.js';
|
|
9
10
|
import { CollapsibleSection } from './editor_collapsible_section.js';
|
|
11
|
+
import en from '../../locales/en.json' with { type: 'json' };
|
|
12
|
+
const t = createPackageT('hazo_ihelp', en);
|
|
10
13
|
export function EditorTagsSection({ tags, defaultOpen, onAdd, onRemove }) {
|
|
11
14
|
const [label, set_label] = useState('');
|
|
12
15
|
const [variant, set_variant] = useState('default');
|
|
@@ -23,11 +26,11 @@ export function EditorTagsSection({ tags, defaultOpen, onAdd, onRemove }) {
|
|
|
23
26
|
set_icon('');
|
|
24
27
|
set_variant('default');
|
|
25
28
|
}, [label, variant, icon, onAdd]);
|
|
26
|
-
return (_jsx(CollapsibleSection, { icon: _jsx(Tag, { className: "h-3.5 w-3.5" }), label:
|
|
29
|
+
return (_jsx(CollapsibleSection, { icon: _jsx(Tag, { className: "h-3.5 w-3.5" }), label: t('editor_tags.section_label'), badge: tags.length > 0 ? String(tags.length) : undefined, defaultOpen: defaultOpen, children: _jsxs("div", { className: "space-y-3", children: [tags.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-1.5", children: tags.map((tag, idx) => (_jsxs(Badge, { variant: tag.variant ?? 'default', children: [tag.label, _jsx("button", { type: "button", className: "ml-1 rounded-full hover:bg-black/10", onClick: () => onRemove(idx), title: t('editor_tags.remove_tag_title'), children: _jsx(X, { className: "h-3 w-3" }) })] }, idx))) })), _jsxs("div", { className: "flex items-end gap-2", children: [_jsx(Input, { value: label, onChange: (e) => set_label(e.target.value), placeholder: t('editor_tags.label_placeholder'), className: "h-8 flex-1 text-xs", onKeyDown: (e) => {
|
|
27
30
|
if (e.key === 'Enter') {
|
|
28
31
|
e.preventDefault();
|
|
29
32
|
handle_add();
|
|
30
33
|
}
|
|
31
|
-
} }), _jsxs(Select, { value: variant ?? 'default', onValueChange: (v) => set_variant(v), children: [_jsx(SelectTrigger, { className: "h-8 w-28 text-xs", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "default", children:
|
|
34
|
+
} }), _jsxs(Select, { value: variant ?? 'default', onValueChange: (v) => set_variant(v), children: [_jsx(SelectTrigger, { className: "h-8 w-28 text-xs", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "default", children: t('editor_tags.variant_default') }), _jsx(SelectItem, { value: "success", children: t('editor_tags.variant_success') }), _jsx(SelectItem, { value: "warning", children: t('editor_tags.variant_warning') }), _jsx(SelectItem, { value: "info", children: t('editor_tags.variant_info') })] })] }), _jsx(Input, { value: icon, onChange: (e) => set_icon(e.target.value), placeholder: t('editor_tags.icon_placeholder'), className: "h-8 w-20 text-xs" }), _jsx(Button, { type: "button", size: "sm", variant: "outline", className: "h-8", onClick: handle_add, disabled: !label.trim(), children: t('editor_tags.add_button') })] })] }) }));
|
|
32
35
|
}
|
|
33
36
|
//# sourceMappingURL=editor_tags_section.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor_tags_section.js","sourceRoot":"","sources":["../../../src/components/editor/editor_tags_section.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"editor_tags_section.js","sourceRoot":"","sources":["../../../src/components/editor/editor_tags_section.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor_topic_list.d.ts","sourceRoot":"","sources":["../../../src/components/editor/editor_topic_list.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"editor_topic_list.d.ts","sourceRoot":"","sources":["../../../src/components/editor/editor_topic_list.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAUvD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,WAAW,GACZ,EAAE,oBAAoB,qBA8JtB"}
|
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState, useMemo, useCallback, useRef, useEffect } from 'react';
|
|
4
4
|
import { Plus, Search, MoreVertical, Trash2 } from 'lucide-react';
|
|
5
|
+
import { createPackageT } from 'hazo_core/i18n';
|
|
5
6
|
import { Button } from '../ui/button.js';
|
|
6
7
|
import { Input } from '../ui/input.js';
|
|
7
8
|
import { TopicListItem } from './editor_topic_list_item.js';
|
|
8
9
|
import { ImportExportButtons } from './editor_import_export.js';
|
|
10
|
+
import en from '../../locales/en.json' with { type: 'json' };
|
|
11
|
+
const t = createPackageT('hazo_ihelp', en);
|
|
9
12
|
export function EditorTopicList({ topics, loading, error, selected_id, onSelect, onNew, onExport, onImport, onDeleteSelected, onDeleteAll, }) {
|
|
10
13
|
const [filter, set_filter] = useState('');
|
|
11
14
|
const [menu_open, set_menu_open] = useState(false);
|
|
@@ -51,7 +54,7 @@ export function EditorTopicList({ topics, loading, error, selected_id, onSelect,
|
|
|
51
54
|
return depth;
|
|
52
55
|
}, [topics]);
|
|
53
56
|
const topic_count = topics.length;
|
|
54
|
-
return (_jsxs("div", { className: "flex w-[320px] min-w-[260px] max-w-[380px] flex-col border-r bg-muted/20", children: [_jsxs("div", { className: "flex items-center gap-2 border-b px-3 py-3", children: [_jsxs("div", { className: "relative flex-1", children: [_jsx(Search, { className: "absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground" }), _jsx(Input, { placeholder:
|
|
57
|
+
return (_jsxs("div", { className: "flex w-[320px] min-w-[260px] max-w-[380px] flex-col border-r bg-muted/20", children: [_jsxs("div", { className: "flex items-center gap-2 border-b px-3 py-3", children: [_jsxs("div", { className: "relative flex-1", children: [_jsx(Search, { className: "absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground" }), _jsx(Input, { placeholder: t('editor_topic_list.filter_placeholder'), value: filter, onChange: (e) => set_filter(e.target.value), className: "h-9 pl-8 text-sm" })] }), _jsxs(Button, { size: "sm", onClick: onNew, title: t('editor_topic_list.new_topic_title'), className: "h-9 shrink-0", children: [_jsx(Plus, { className: "mr-1 h-4 w-4" }), t('editor_topic_list.new_button')] }), _jsxs("div", { className: "relative", ref: menu_ref, children: [_jsx(Button, { size: "sm", variant: "ghost", className: "h-9 w-9 shrink-0 p-0", onClick: () => set_menu_open((v) => !v), title: t('editor_topic_list.more_actions_title'), children: _jsx(MoreVertical, { className: "h-4 w-4" }) }), menu_open && (_jsxs("div", { className: "absolute right-0 top-full z-20 mt-1 w-48 rounded-md border bg-background p-1 shadow-lg", children: [_jsx(ImportExportButtons, { onExport: () => { onExport(); set_menu_open(false); }, onImport: () => { onImport(); set_menu_open(false); } }), _jsx("div", { className: "my-1 border-t" }), _jsxs("button", { type: "button", onClick: () => { onDeleteSelected(); set_menu_open(false); }, disabled: !selected_id, className: "flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm transition-colors hover:bg-destructive/10 text-destructive disabled:opacity-40 disabled:pointer-events-none", children: [_jsx(Trash2, { className: "h-3.5 w-3.5" }), t('editor_topic_list.delete_selected')] }), _jsxs("button", { type: "button", onClick: () => { onDeleteAll(); set_menu_open(false); }, disabled: topics.length === 0, className: "flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm transition-colors hover:bg-destructive/10 text-destructive disabled:opacity-40 disabled:pointer-events-none", children: [_jsx(Trash2, { className: "h-3.5 w-3.5" }), t('editor_topic_list.delete_all')] })] }))] })] }), _jsx("div", { className: "flex items-center justify-between border-b px-3 py-1.5", children: _jsx("span", { className: "text-[11px] font-medium text-muted-foreground", children: t('editor_topic_list.topic_count', { count: topic_count, plural: topic_count !== 1 ? 's' : '' }) }) }), _jsxs("div", { className: "flex-1 overflow-y-auto", children: [loading && (_jsx("p", { className: "p-4 text-center text-sm text-muted-foreground", children: t('editor_topic_list.loading') })), error && (_jsx("p", { className: "p-4 text-center text-sm text-destructive", children: error })), !loading && !error && Object.keys(grouped_topics).length === 0 && (_jsx("p", { className: "p-4 text-center text-sm text-muted-foreground", children: filter ? t('editor_topic_list.no_matching') : t('editor_topic_list.no_topics') })), Object.entries(grouped_topics)
|
|
55
58
|
.sort(([a], [b]) => a.localeCompare(b))
|
|
56
59
|
.map(([category, cat_topics]) => (_jsxs("div", { children: [_jsx("div", { className: "sticky top-0 z-10 bg-muted/40 backdrop-blur-sm px-3 py-1.5", children: _jsx("p", { className: "text-[11px] font-bold uppercase tracking-widest text-muted-foreground", children: category }) }), _jsx("div", { className: "px-1 pb-1", children: cat_topics.map((topic) => (_jsx(TopicListItem, { topic: topic, depth: get_depth(topic), selected: topic.id === selected_id, onSelect: onSelect }, topic.id))) })] }, category)))] })] }));
|
|
57
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor_topic_list.js","sourceRoot":"","sources":["../../../src/components/editor/editor_topic_list.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"editor_topic_list.js","sourceRoot":"","sources":["../../../src/components/editor/editor_topic_list.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor_topic_list_item.d.ts","sourceRoot":"","sources":["../../../src/components/editor/editor_topic_list_item.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"editor_topic_list_item.d.ts","sourceRoot":"","sources":["../../../src/components/editor/editor_topic_list_item.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMvD,UAAU,kBAAkB;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,kBAAkB,qBAuBrF"}
|
|
@@ -1,10 +1,13 @@
|
|
|
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 { createPackageT } from 'hazo_core/i18n';
|
|
4
5
|
import { cn } from 'hazo_ui';
|
|
6
|
+
import en from '../../locales/en.json' with { type: 'json' };
|
|
7
|
+
const t = createPackageT('hazo_ihelp', en);
|
|
5
8
|
export function TopicListItem({ topic, depth, selected, onSelect }) {
|
|
6
9
|
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
10
|
? 'bg-accent text-accent-foreground border-l-2 border-primary pl-[10px]'
|
|
8
|
-
: 'border-l-2 border-transparent hover:bg-muted/60'), style: { paddingLeft: `${(selected ? 10 : 12) + depth * 16}px` }, children: [topic.is_published ? (_jsx(CheckCircle, { className: "h-3.5 w-3.5 shrink-0 text-emerald-500" })) : (_jsx("span", { className: "inline-flex h-3.5 shrink-0 items-center rounded bg-muted px-1 text-[9px] font-bold uppercase tracking-wider text-muted-foreground", children:
|
|
11
|
+
: 'border-l-2 border-transparent hover:bg-muted/60'), style: { paddingLeft: `${(selected ? 10 : 12) + depth * 16}px` }, children: [topic.is_published ? (_jsx(CheckCircle, { className: "h-3.5 w-3.5 shrink-0 text-emerald-500" })) : (_jsx("span", { className: "inline-flex h-3.5 shrink-0 items-center rounded bg-muted px-1 text-[9px] font-bold uppercase tracking-wider text-muted-foreground", children: t('editor_topic_list_item.draft_badge') })), _jsx("span", { className: "truncate", children: topic.title })] }));
|
|
9
12
|
}
|
|
10
13
|
//# sourceMappingURL=editor_topic_list_item.js.map
|
|
@@ -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;
|
|
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;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE7D,MAAM,CAAC,GAAG,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAS3C,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,YAChJ,CAAC,CAAC,oCAAoC,CAAC,GACnC,CACR,EACD,eAAM,SAAS,EAAC,UAAU,YAAE,KAAK,CAAC,KAAK,GAAQ,IACxC,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -27,6 +27,23 @@ export interface HoverHelpIconProps {
|
|
|
27
27
|
on_more?: () => void;
|
|
28
28
|
/** Label for the optional "More" link. Default "More". */
|
|
29
29
|
more_label?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Forwarded to Radix `HoverCard.Portal`'s own `container` prop — mounts
|
|
32
|
+
* the popover's DOM subtree under this element instead of the default
|
|
33
|
+
* `document.body`. Useful when a host wants the popover physically
|
|
34
|
+
* contained inside e.g. a modal it renders (keyboard focus scoping,
|
|
35
|
+
* `inert`/aria-hidden siblings, etc.).
|
|
36
|
+
*
|
|
37
|
+
* Not required to fix stacking-order issues: `HoverCard.Content` already
|
|
38
|
+
* renders with Radix's `strategy: "fixed"` Popper positioning, which
|
|
39
|
+
* escapes an ancestor's `overflow: hidden` on its own (fixed-position
|
|
40
|
+
* boxes are only trapped by an ancestor that establishes a new containing
|
|
41
|
+
* block via `transform`/`filter`/`perspective`/`will-change`) — and the
|
|
42
|
+
* `z-[200]` below already clears every host this package has been asked
|
|
43
|
+
* to render inside. Reach for `container` only when you specifically need
|
|
44
|
+
* DOM containment, not just visibility above a host dialog.
|
|
45
|
+
*/
|
|
46
|
+
container?: HTMLElement | null;
|
|
30
47
|
}
|
|
31
48
|
/**
|
|
32
49
|
* Standalone "?" icon that opens a Radix HoverCard with a titled help body.
|
|
@@ -44,5 +61,5 @@ export interface HoverHelpIconProps {
|
|
|
44
61
|
* For topic-store-backed help (full rich content, search, editor), keep
|
|
45
62
|
* using `IhelpIcon` which delegates to the provider's `open_search`.
|
|
46
63
|
*/
|
|
47
|
-
export declare function HoverHelpIcon({ title, body, aria_label, size, side, className, content_className, on_more, more_label, }: HoverHelpIconProps): React.JSX.Element;
|
|
64
|
+
export declare function HoverHelpIcon({ title, body, aria_label, size, side, className, content_className, on_more, more_label, container, }: HoverHelpIconProps): React.JSX.Element;
|
|
48
65
|
//# sourceMappingURL=hover_help_icon.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover_help_icon.d.ts","sourceRoot":"","sources":["../../src/components/hover_help_icon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"hover_help_icon.d.ts","sourceRoot":"","sources":["../../src/components/hover_help_icon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AASxD,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;IAC3B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAChC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,IAAI,EACJ,UAAU,EACV,IAAS,EACT,IAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,UAAU,EACV,SAAS,GACV,EAAE,kBAAkB,qBAkFpB"}
|
|
@@ -4,6 +4,9 @@ import { useState } from "react";
|
|
|
4
4
|
import * as HoverCard from "@radix-ui/react-hover-card";
|
|
5
5
|
import { HelpCircle, ArrowRight } from "lucide-react";
|
|
6
6
|
import { cn } from 'hazo_ui';
|
|
7
|
+
import en from '../locales/en.json' with { type: 'json' };
|
|
8
|
+
import { createPackageT } from 'hazo_core/i18n';
|
|
9
|
+
const t = createPackageT('hazo_ihelp', en);
|
|
7
10
|
/**
|
|
8
11
|
* Standalone "?" icon that opens a Radix HoverCard with a titled help body.
|
|
9
12
|
*
|
|
@@ -20,13 +23,29 @@ import { cn } from 'hazo_ui';
|
|
|
20
23
|
* For topic-store-backed help (full rich content, search, editor), keep
|
|
21
24
|
* using `IhelpIcon` which delegates to the provider's `open_search`.
|
|
22
25
|
*/
|
|
23
|
-
export function HoverHelpIcon({ title, body, aria_label, size = 14, side = "top", className, content_className, on_more, more_label
|
|
26
|
+
export function HoverHelpIcon({ title, body, aria_label, size = 14, side = "top", className, content_className, on_more, more_label, container, }) {
|
|
27
|
+
const resolved_more_label = more_label ?? t('hover_help_icon.more_label');
|
|
24
28
|
// HoverCard ignores touch events by design (Radix decision: hover semantics
|
|
25
29
|
// are pointer-only). Pair it with a click toggle so taps still open it.
|
|
26
30
|
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(
|
|
31
|
+
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, { container: container, children: _jsxs(HoverCard.Content, { side: side, sideOffset: 8, align: "center", className: cn(
|
|
32
|
+
// `z-[200]`, not Radix/Tailwind's usual `z-50` default: this
|
|
33
|
+
// component is meant to render on top of whatever dialog hosts
|
|
34
|
+
// it, and a host app's own dialog stack can easily run past 50
|
|
35
|
+
// (this package's own `test-app` aside, the retirement-planner
|
|
36
|
+
// consumer's documented ladder alone reaches 140 for a dialog
|
|
37
|
+
// opened from inside another dialog — see that repo's
|
|
38
|
+
// `design/DECISIONS.md` "z-index ladder" entry). `200` clears
|
|
39
|
+
// every rung any known consumer's own dialogs currently use,
|
|
40
|
+
// while staying below the kind of app-reserved "are you sure"
|
|
41
|
+
// confirm-prompt ceiling `hazo_ui`'s own confirm dialog gets
|
|
42
|
+
// bumped to in that same consumer (400) — a help popover should
|
|
43
|
+
// never outrank a destructive-action confirm. Override via
|
|
44
|
+
// `content_className` (tailwind-merge'd on top, so a caller's
|
|
45
|
+
// own `z-*` wins) if a specific host needs something different.
|
|
46
|
+
"z-[200] 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), on_more && (_jsxs("button", { type: "button", onClick: () => {
|
|
28
47
|
set_tap_open(false);
|
|
29
48
|
on_more();
|
|
30
|
-
}, className: cn("mt-3 inline-flex items-center gap-1 text-xs font-semibold text-blue-600", "hover:text-blue-800 hover:underline", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-400 focus-visible:ring-offset-1 rounded"), children: [
|
|
49
|
+
}, className: cn("mt-3 inline-flex items-center gap-1 text-xs font-semibold text-blue-600", "hover:text-blue-800 hover:underline", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-400 focus-visible:ring-offset-1 rounded"), children: [resolved_more_label, _jsx(ArrowRight, { size: 12, "aria-hidden": true })] })), _jsx(HoverCard.Arrow, { className: "fill-white" })] }) })] }));
|
|
31
50
|
}
|
|
32
51
|
//# sourceMappingURL=hover_help_icon.js.map
|
|
@@ -1 +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,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"hover_help_icon.js","sourceRoot":"","sources":["../../src/components/hover_help_icon.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ihelp_detail_panel.d.ts","sourceRoot":"","sources":["../../src/components/ihelp_detail_panel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAc,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ihelp_detail_panel.d.ts","sourceRoot":"","sources":["../../src/components/ihelp_detail_panel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAc,MAAM,mBAAmB,CAAC;AAoCxF;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,UAAU,EACV,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,MAAM,GACP,EAAE,qBAAqB,GAAG;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CAC/B,qBAiFA"}
|
|
@@ -3,6 +3,9 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
4
|
import { cn } from 'hazo_ui';
|
|
5
5
|
import { Badge } from './ui/badge.js';
|
|
6
|
+
import en from '../locales/en.json' with { type: 'json' };
|
|
7
|
+
import { createPackageT } from 'hazo_core/i18n';
|
|
8
|
+
const t = createPackageT('hazo_ihelp', en);
|
|
6
9
|
/**
|
|
7
10
|
* Resolve image src attributes in HTML content.
|
|
8
11
|
*
|
|
@@ -34,8 +37,8 @@ function resolveImageUrls(html, asset_base_url, topic_scope_id) {
|
|
|
34
37
|
* - Child topic links
|
|
35
38
|
*/
|
|
36
39
|
export function IhelpDetailPanel({ topic, onNavigate, className, asset_base_url, provider_scope_id, labels, }) {
|
|
37
|
-
const more_info_prefix = labels?.more_info_prefix ?? '
|
|
38
|
-
const related_topics_label = labels?.related_topics ?? '
|
|
40
|
+
const more_info_prefix = labels?.more_info_prefix ?? t('search_dialog.more_info_prefix');
|
|
41
|
+
const related_topics_label = labels?.related_topics ?? t('search_dialog.related_topics');
|
|
39
42
|
const resolved_content = useMemo(() => {
|
|
40
43
|
if (!topic.content)
|
|
41
44
|
return '';
|
|
@@ -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,SAAS,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;
|
|
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,SAAS,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,CAAC,GAAG,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAE3C;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CACvB,IAAY,EACZ,cAAkC,EAClC,cAAyC;IAEzC,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,SAAS,GAAG,cAAc,IAAI,QAAQ,CAAC;IAC7C,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEhD,OAAO,IAAI,CAAC,OAAO,CACjB,kCAAkC,EAClC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,IAAI,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,GAAG,MAAM,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,GAAG,MAAM,GAAG,IAAI,IAAI,SAAS,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;IACxD,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,KAAK,EACL,UAAU,EACV,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,MAAM,GAKP;IACC,MAAM,gBAAgB,GAAG,MAAM,EAAE,gBAAgB,IAAI,CAAC,CAAC,gCAAgC,CAAC,CAAC;IACzF,MAAM,oBAAoB,GAAG,MAAM,EAAE,cAAc,IAAI,CAAC,CAAC,8BAA8B,CAAC,CAAC;IACzF,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAC9B,OAAO,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzE,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEpD,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,aAE5C,eAAK,SAAS,EAAC,MAAM,aAClB,KAAK,CAAC,QAAQ,IAAI,CACjB,aAAG,SAAS,EAAC,mHAAmH,aAC7H,gBAAgB,OAAG,KAAK,CAAC,QAAQ,IAChC,CACL,EACD,aAAI,SAAS,EAAC,0EAA0E,YACrF,KAAK,CAAC,KAAK,GACT,EACJ,KAAK,CAAC,WAAW,IAAI,CACpB,YAAG,SAAS,EAAC,kFAAkF,YAC5F,KAAK,CAAC,WAAW,GAChB,CACL,IACG,EAEL,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CACxB,cAAK,SAAS,EAAC,2BAA2B,YACvC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACvB,KAAC,KAAK,IAAiB,OAAO,EAAE,GAAG,CAAC,OAAO,YACxC,GAAG,CAAC,KAAK,IADA,GAAG,CAAC,KAAK,CAEb,CACT,CAAC,GACE,CACP,EAED,aAAI,SAAS,EAAC,0BAA0B,GAAG,EAG1C,gBAAgB,IAAI,CACnB,cACE,SAAS,EAAE,EAAE,CACX,eAAe,EACf,2BAA2B,EAC3B,0CAA0C,EAC1C,yDAAyD,EACzD,uDAAuD,EACvD,0FAA0F,EAC1F,qEAAqE,EACrE,mIAAmI,EACnI,sCAAsC,EACtC,6BAA6B,EAC7B,6BAA6B,EAC7B,+GAA+G,EAC/G,2KAA2K,EAC3K,qJAAqJ,CACtJ,EACD,uBAAuB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,GACrD,CACH,EAEA,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAC9C,eAAK,SAAS,EAAC,wCAAwC,aACrD,YAAG,SAAS,EAAC,mHAAmH,YAAE,oBAAoB,GAAK,EAC3J,cAAK,SAAS,EAAC,uBAAuB,YACnC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAiB,EAAE,EAAE,CAAC,CACzC,iBAEE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EACrC,SAAS,EAAC,yFAAyF,YAElG,KAAK,CAAC,KAAK,IALP,KAAK,CAAC,EAAE,CAMN,CACV,CAAC,GACE,IACF,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ihelp_editor.d.ts","sourceRoot":"","sources":["../../src/components/ihelp_editor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ihelp_editor.d.ts","sourceRoot":"","sources":["../../src/components/ihelp_editor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,gBAAgB,EAAgE,MAAM,mBAAmB,CAAC;AAuDxH,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,gBAAgB,qBA2OzG"}
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useState, useMemo, useCallback } from 'react';
|
|
4
|
+
import { createPackageT } from 'hazo_core/i18n';
|
|
4
5
|
import { use_ihelp_editor } from '../hooks/use_ihelp_editor.js';
|
|
5
6
|
import { use_ihelp_config } from '../hooks/use_ihelp_config.js';
|
|
6
7
|
import { cn } from 'hazo_ui';
|
|
7
8
|
import { EditorTopicList } from './editor/editor_topic_list.js';
|
|
8
9
|
import { EditorForm } from './editor/editor_form.js';
|
|
9
10
|
import { ImportDialog, use_export_topics } from './editor/editor_import_export.js';
|
|
11
|
+
import en from '../locales/en.json' with { type: 'json' };
|
|
12
|
+
const t = createPackageT('hazo_ihelp', en);
|
|
10
13
|
// ---------------------------------------------------------------------------
|
|
11
14
|
// Helpers
|
|
12
15
|
// ---------------------------------------------------------------------------
|
|
13
16
|
const EMPTY_FORM = {
|
|
14
17
|
title: '',
|
|
18
|
+
slug: null,
|
|
15
19
|
category: '',
|
|
16
20
|
parent_id: null,
|
|
17
21
|
description: '',
|
|
@@ -24,6 +28,7 @@ const EMPTY_FORM = {
|
|
|
24
28
|
function topic_to_form(t) {
|
|
25
29
|
return {
|
|
26
30
|
title: t.title,
|
|
31
|
+
slug: t.slug,
|
|
27
32
|
category: t.category,
|
|
28
33
|
parent_id: t.parent_id,
|
|
29
34
|
description: t.description ?? '',
|
|
@@ -102,6 +107,7 @@ export function IhelpEditor({ scope_id, className, api_url, upload_url, config_a
|
|
|
102
107
|
...form,
|
|
103
108
|
tags: form_tags,
|
|
104
109
|
context_keys: form_context_keys,
|
|
110
|
+
slug: form.slug || null,
|
|
105
111
|
description: form.description || null,
|
|
106
112
|
content: form.content || null,
|
|
107
113
|
icon: form.icon || null,
|
|
@@ -125,7 +131,7 @@ export function IhelpEditor({ scope_id, className, api_url, upload_url, config_a
|
|
|
125
131
|
const handle_delete = useCallback(async () => {
|
|
126
132
|
if (!selected_id)
|
|
127
133
|
return;
|
|
128
|
-
const confirmed = window.confirm('
|
|
134
|
+
const confirmed = window.confirm(t('ihelp_editor.confirm_delete_topic'));
|
|
129
135
|
if (!confirmed)
|
|
130
136
|
return;
|
|
131
137
|
set_saving(true);
|
|
@@ -148,7 +154,7 @@ export function IhelpEditor({ scope_id, className, api_url, upload_url, config_a
|
|
|
148
154
|
const handle_delete_all = useCallback(async () => {
|
|
149
155
|
if (topics.length === 0)
|
|
150
156
|
return;
|
|
151
|
-
const confirmed = window.confirm(
|
|
157
|
+
const confirmed = window.confirm(t('ihelp_editor.confirm_delete_all', { count: topics.length }));
|
|
152
158
|
if (!confirmed)
|
|
153
159
|
return;
|
|
154
160
|
set_saving(true);
|
|
@@ -189,6 +195,6 @@ export function IhelpEditor({ scope_id, className, api_url, upload_url, config_a
|
|
|
189
195
|
}, []);
|
|
190
196
|
// -- render ---------------------------------------------------------------
|
|
191
197
|
const show_form = is_new || selected_id !== null;
|
|
192
|
-
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: cn('flex h-full min-h-[500px] rounded-lg border bg-background', className), children: [_jsx(EditorTopicList, { topics: topics, loading: loading, error: error, selected_id: selected_id, onSelect: handle_select, onNew: handle_new, onExport: handle_export, onImport: () => set_import_open(true), onDeleteSelected: handle_delete, onDeleteAll: handle_delete_all }), _jsx("div", { className: "flex flex-1 flex-col", children: !show_form ? (_jsx("div", { className: "flex flex-1 items-center justify-center", children: _jsx("p", { className: "text-sm text-muted-foreground", children:
|
|
198
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: cn('flex h-full min-h-[500px] rounded-lg border bg-background', className), children: [_jsx(EditorTopicList, { topics: topics, loading: loading, error: error, selected_id: selected_id, onSelect: handle_select, onNew: handle_new, onExport: handle_export, onImport: () => set_import_open(true), onDeleteSelected: handle_delete, onDeleteAll: handle_delete_all }), _jsx("div", { className: "flex flex-1 flex-col", children: !show_form ? (_jsx("div", { className: "flex flex-1 items-center justify-center", children: _jsx("p", { className: "text-sm text-muted-foreground", children: t('ihelp_editor.empty_state') }) })) : (_jsx(EditorForm, { form: form, form_tags: form_tags, form_context_keys: form_context_keys, is_new: is_new, saving: saving, save_error: save_error, selected_id: selected_id, topics: topics, categories: categories, onUpdateField: update_field, onAddTag: add_tag, onRemoveTag: remove_tag, onAddContextKey: add_context_key, onRemoveContextKey: remove_context_key, available_context_keys: available_context_keys, available_context_keys_loading: ctx_keys_loading, onManageContextKeys: handle_manage_context_keys, onSave: handle_save, onDelete: handle_delete, upload_url: upload_url, scope_id: scope_id })) })] }), _jsx(ImportDialog, { open: import_open, onOpenChange: set_import_open, create_topic: create_topic, refetch: refetch })] }));
|
|
193
199
|
}
|
|
194
200
|
//# sourceMappingURL=ihelp_editor.js.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"ihelp_editor.js","sourceRoot":"","sources":["../../src/components/ihelp_editor.tsx"],"names":[],"mappings":"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"}
|