hazo_ihelp 2.0.4 → 2.0.9
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 +236 -0
- package/dist/api/create_ihelp_handler.d.ts +3 -2
- package/dist/api/create_ihelp_handler.d.ts.map +1 -1
- package/dist/api/create_ihelp_handler.js +101 -106
- package/dist/api/create_ihelp_handler.js.map +1 -1
- package/dist/components/editor/editor_topic_list.d.ts +3 -1
- package/dist/components/editor/editor_topic_list.d.ts.map +1 -1
- package/dist/components/editor/editor_topic_list.js +3 -3
- package/dist/components/editor/editor_topic_list.js.map +1 -1
- package/dist/components/ihelp_detail_panel.js +1 -1
- 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 +26 -1
- package/dist/components/ihelp_editor.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.d.ts.map +1 -1
- package/dist/components/ihelp_search_dialog.js +12 -3
- package/dist/components/ihelp_search_dialog.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.map +1 -1
- package/dist/types/index.d.ts +45 -34
- package/dist/types/index.d.ts.map +1 -1
- package/migrations/001_create_ihelp_tables.sql +96 -45
- package/package.json +19 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,58 +1,109 @@
|
|
|
1
1
|
-- hazo_ihelp database schema
|
|
2
|
-
--
|
|
2
|
+
-- Simplified 2-table design: topics with embedded tags/contexts as JSON
|
|
3
|
+
--
|
|
4
|
+
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
5
|
+
-- SQLite Version
|
|
6
|
+
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
7
|
+
-- SQLite stores UUIDs as TEXT and JSON as TEXT. No native UUID or JSONB type.
|
|
8
|
+
--
|
|
9
|
+
-- CREATE TABLE IF NOT EXISTS hazo_ihelp_topics (
|
|
10
|
+
-- id TEXT PRIMARY KEY, -- UUID as text
|
|
11
|
+
-- parent_id TEXT, -- UUID ref → hazo_ihelp_topics(id)
|
|
12
|
+
-- scope_id TEXT, -- UUID, NULL = global
|
|
13
|
+
-- category TEXT NOT NULL DEFAULT 'General',
|
|
14
|
+
-- title TEXT NOT NULL,
|
|
15
|
+
-- description TEXT,
|
|
16
|
+
-- content TEXT, -- Rich HTML from Tiptap editor
|
|
17
|
+
-- icon TEXT, -- Lucide icon name
|
|
18
|
+
-- sort_order INTEGER NOT NULL DEFAULT 0,
|
|
19
|
+
-- is_published INTEGER NOT NULL DEFAULT 1, -- SQLite boolean (0/1)
|
|
20
|
+
-- tags TEXT NOT NULL DEFAULT '[]', -- JSON array: [{label, variant, icon}]
|
|
21
|
+
-- contexts TEXT NOT NULL DEFAULT '[]', -- JSON array: [{key, priority}]
|
|
22
|
+
-- created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
23
|
+
-- changed_at TEXT,
|
|
24
|
+
-- FOREIGN KEY (parent_id) REFERENCES hazo_ihelp_topics(id) ON DELETE SET NULL
|
|
25
|
+
-- );
|
|
26
|
+
--
|
|
27
|
+
-- CREATE INDEX IF NOT EXISTS idx_hazo_ihelp_topics_scope ON hazo_ihelp_topics(scope_id);
|
|
28
|
+
-- CREATE INDEX IF NOT EXISTS idx_hazo_ihelp_topics_parent ON hazo_ihelp_topics(parent_id);
|
|
29
|
+
--
|
|
30
|
+
-- CREATE TABLE IF NOT EXISTS hazo_config (
|
|
31
|
+
-- id TEXT PRIMARY KEY, -- UUID as text
|
|
32
|
+
-- config_key TEXT NOT NULL,
|
|
33
|
+
-- config_value TEXT NOT NULL, -- JSON string
|
|
34
|
+
-- scope_id TEXT, -- UUID, NULL = global
|
|
35
|
+
-- created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
36
|
+
-- changed_at TEXT,
|
|
37
|
+
-- UNIQUE(config_key, scope_id)
|
|
38
|
+
-- );
|
|
39
|
+
--
|
|
40
|
+
-- CREATE INDEX IF NOT EXISTS idx_hazo_config_key ON hazo_config(config_key);
|
|
41
|
+
--
|
|
42
|
+
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
43
|
+
-- PostgreSQL Version
|
|
44
|
+
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
45
|
+
-- PostgreSQL uses native UUID, JSONB, BOOLEAN, and TIMESTAMPTZ types.
|
|
46
|
+
-- Requires: CREATE EXTENSION IF NOT EXISTS "pgcrypto"; (for gen_random_uuid)
|
|
3
47
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
id
|
|
7
|
-
|
|
8
|
-
scope_id TEXT, -- NULL = global, UUID = org-specific
|
|
48
|
+
CREATE TABLE IF NOT EXISTS hazo_ihelp_topics (
|
|
49
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
50
|
+
parent_id UUID REFERENCES hazo_ihelp_topics(id) ON DELETE SET NULL,
|
|
51
|
+
scope_id UUID, -- NULL = global, UUID = org-specific
|
|
9
52
|
category TEXT NOT NULL DEFAULT 'General',
|
|
10
53
|
title TEXT NOT NULL,
|
|
11
|
-
description TEXT,
|
|
12
|
-
content TEXT,
|
|
13
|
-
icon TEXT,
|
|
54
|
+
description TEXT, -- Short summary for search cards
|
|
55
|
+
content TEXT, -- Rich HTML content from Tiptap editor
|
|
56
|
+
icon TEXT, -- Lucide icon name
|
|
14
57
|
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
15
|
-
is_published
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
58
|
+
is_published BOOLEAN NOT NULL DEFAULT TRUE,
|
|
59
|
+
tags JSONB NOT NULL DEFAULT '[]', -- [{label, variant, icon}]
|
|
60
|
+
contexts JSONB NOT NULL DEFAULT '[]', -- [{key, priority}]
|
|
61
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
62
|
+
changed_at TIMESTAMPTZ
|
|
19
63
|
);
|
|
20
64
|
|
|
21
|
-
CREATE INDEX IF NOT EXISTS
|
|
22
|
-
CREATE INDEX IF NOT EXISTS
|
|
65
|
+
CREATE INDEX IF NOT EXISTS idx_hazo_ihelp_topics_scope ON hazo_ihelp_topics(scope_id);
|
|
66
|
+
CREATE INDEX IF NOT EXISTS idx_hazo_ihelp_topics_parent ON hazo_ihelp_topics(parent_id);
|
|
67
|
+
CREATE INDEX IF NOT EXISTS idx_hazo_ihelp_topics_tags ON hazo_ihelp_topics USING GIN (tags);
|
|
68
|
+
CREATE INDEX IF NOT EXISTS idx_hazo_ihelp_topics_contexts ON hazo_ihelp_topics USING GIN (contexts);
|
|
23
69
|
|
|
24
|
-
-- Tags table (badges shown on topic cards)
|
|
25
|
-
CREATE TABLE IF NOT EXISTS ihelp_tags (
|
|
26
|
-
id TEXT PRIMARY KEY,
|
|
27
|
-
topic_id TEXT NOT NULL,
|
|
28
|
-
label TEXT NOT NULL, -- e.g. "Receipt Required", "Tip"
|
|
29
|
-
variant TEXT NOT NULL DEFAULT 'default', -- default|success|warning|info
|
|
30
|
-
icon TEXT, -- Optional lucide icon name
|
|
31
|
-
FOREIGN KEY (topic_id) REFERENCES ihelp_topics(id) ON DELETE CASCADE
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
CREATE INDEX IF NOT EXISTS idx_ihelp_tags_topic ON ihelp_tags(topic_id);
|
|
35
|
-
|
|
36
|
-
-- Context mapping table (links topics to UI elements)
|
|
37
|
-
CREATE TABLE IF NOT EXISTS ihelp_context_map (
|
|
38
|
-
id TEXT PRIMARY KEY,
|
|
39
|
-
topic_id TEXT NOT NULL,
|
|
40
|
-
context_key TEXT NOT NULL, -- e.g. "deductions.work_from_home"
|
|
41
|
-
priority INTEGER NOT NULL DEFAULT 0,
|
|
42
|
-
FOREIGN KEY (topic_id) REFERENCES ihelp_topics(id) ON DELETE CASCADE
|
|
43
|
-
);
|
|
44
|
-
|
|
45
|
-
CREATE INDEX IF NOT EXISTS idx_ihelp_ctx_key ON ihelp_context_map(context_key);
|
|
46
|
-
|
|
47
|
-
-- App configuration table (key-value store, scoped)
|
|
48
70
|
CREATE TABLE IF NOT EXISTS hazo_config (
|
|
49
|
-
id
|
|
50
|
-
config_key TEXT NOT NULL,
|
|
51
|
-
config_value TEXT NOT NULL,
|
|
52
|
-
scope_id
|
|
53
|
-
created_at
|
|
54
|
-
changed_at
|
|
71
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
72
|
+
config_key TEXT NOT NULL,
|
|
73
|
+
config_value TEXT NOT NULL, -- JSON string
|
|
74
|
+
scope_id UUID, -- NULL = global, UUID = org-specific
|
|
75
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
76
|
+
changed_at TIMESTAMPTZ,
|
|
55
77
|
UNIQUE(config_key, scope_id)
|
|
56
78
|
);
|
|
57
79
|
|
|
58
80
|
CREATE INDEX IF NOT EXISTS idx_hazo_config_key ON hazo_config(config_key);
|
|
81
|
+
|
|
82
|
+
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
83
|
+
-- JSON Column Shapes
|
|
84
|
+
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
85
|
+
--
|
|
86
|
+
-- tags: [
|
|
87
|
+
-- { "label": "Receipt Required", "variant": "warning", "icon": "AlertTriangle" },
|
|
88
|
+
-- { "label": "Pre-filled", "variant": "success", "icon": "Check" }
|
|
89
|
+
-- ]
|
|
90
|
+
--
|
|
91
|
+
-- contexts: [
|
|
92
|
+
-- { "key": "deductions.work_from_home", "priority": 0 },
|
|
93
|
+
-- { "key": "onboarding.step3", "priority": 1 }
|
|
94
|
+
-- ]
|
|
95
|
+
--
|
|
96
|
+
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
97
|
+
-- PostgreSQL Context Key Query Examples
|
|
98
|
+
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
99
|
+
--
|
|
100
|
+
-- Find topics mapped to a context key:
|
|
101
|
+
-- SELECT * FROM hazo_ihelp_topics
|
|
102
|
+
-- WHERE contexts @> '[{"key": "deductions.work_from_home"}]'
|
|
103
|
+
-- ORDER BY (SELECT MIN((ctx->>'priority')::int)
|
|
104
|
+
-- FROM jsonb_array_elements(contexts) ctx
|
|
105
|
+
-- WHERE ctx->>'key' = 'deductions.work_from_home');
|
|
106
|
+
--
|
|
107
|
+
-- Find topics with a specific tag label:
|
|
108
|
+
-- SELECT * FROM hazo_ihelp_topics
|
|
109
|
+
-- WHERE tags @> '[{"label": "Pre-filled"}]';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hazo_ihelp",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.client.js",
|
|
6
6
|
"module": "./dist/index.client.js",
|
|
@@ -30,10 +30,8 @@
|
|
|
30
30
|
"files": [
|
|
31
31
|
"dist",
|
|
32
32
|
"migrations",
|
|
33
|
-
"config"
|
|
34
|
-
|
|
35
|
-
"workspaces": [
|
|
36
|
-
"test-app"
|
|
33
|
+
"config",
|
|
34
|
+
"README.md"
|
|
37
35
|
],
|
|
38
36
|
"scripts": {
|
|
39
37
|
"build": "tsc -p tsconfig.build.json",
|
|
@@ -45,6 +43,9 @@
|
|
|
45
43
|
"prepublishOnly": "npm run build"
|
|
46
44
|
},
|
|
47
45
|
"dependencies": {
|
|
46
|
+
"@dnd-kit/core": "^6.3.1",
|
|
47
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
48
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
48
49
|
"@radix-ui/react-accordion": "^1.2.12",
|
|
49
50
|
"@radix-ui/react-checkbox": "^1.3.3",
|
|
50
51
|
"@radix-ui/react-dialog": "^1.0.5",
|
|
@@ -59,18 +60,26 @@
|
|
|
59
60
|
"@radix-ui/react-switch": "^1.0.3",
|
|
60
61
|
"@radix-ui/react-tabs": "^1.1.13",
|
|
61
62
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
62
|
-
"@tiptap/extension-image": "^
|
|
63
|
-
"@tiptap/extension-link": "^
|
|
64
|
-
"@tiptap/react": "^
|
|
65
|
-
"@tiptap/starter-kit": "^
|
|
63
|
+
"@tiptap/extension-image": "^3.20.5",
|
|
64
|
+
"@tiptap/extension-link": "^3.20.5",
|
|
65
|
+
"@tiptap/react": "^3.20.5",
|
|
66
|
+
"@tiptap/starter-kit": "^3.20.5",
|
|
66
67
|
"class-variance-authority": "^0.7.1",
|
|
67
68
|
"clsx": "^2.1.1",
|
|
68
69
|
"cmdk": "^1.1.1",
|
|
69
70
|
"date-fns": "^4.1.0",
|
|
70
71
|
"fuse.js": "^7.0.0",
|
|
72
|
+
"hazo_auth": "^5.1.30",
|
|
73
|
+
"hazo_chat": "^5.2.2",
|
|
74
|
+
"hazo_config": "^2.1.0",
|
|
75
|
+
"hazo_files": "^1.4.4",
|
|
76
|
+
"hazo_llm_api": "^1.2.10",
|
|
77
|
+
"hazo_logs": "^1.0.10",
|
|
78
|
+
"hazo_notes": "^1.1.5",
|
|
71
79
|
"lucide-react": "^0.344.0",
|
|
72
80
|
"react-day-picker": "^9.14.0",
|
|
73
|
-
"react-
|
|
81
|
+
"react-icons": "^5.6.0",
|
|
82
|
+
"react-resizable-panels": "^4.7.6",
|
|
74
83
|
"sonner": "^2.0.7",
|
|
75
84
|
"tailwind-merge": "^2.5.4"
|
|
76
85
|
},
|