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.
Files changed (81) hide show
  1. package/README.md +26 -1
  2. package/db_setup_postgres.sql +2 -0
  3. package/db_setup_sqlite.sql +2 -0
  4. package/dist/api/create_config_handler.d.ts +7 -0
  5. package/dist/api/create_config_handler.d.ts.map +1 -1
  6. package/dist/api/create_config_handler.js +31 -2
  7. package/dist/api/create_config_handler.js.map +1 -1
  8. package/dist/api/create_ihelp_handler.d.ts.map +1 -1
  9. package/dist/api/create_ihelp_handler.js +62 -4
  10. package/dist/api/create_ihelp_handler.js.map +1 -1
  11. package/dist/components/editor/editor_context_keys_section.d.ts.map +1 -1
  12. package/dist/components/editor/editor_context_keys_section.js +9 -6
  13. package/dist/components/editor/editor_context_keys_section.js.map +1 -1
  14. package/dist/components/editor/editor_form.d.ts.map +1 -1
  15. package/dist/components/editor/editor_form.js +5 -2
  16. package/dist/components/editor/editor_form.js.map +1 -1
  17. package/dist/components/editor/editor_import_export.d.ts.map +1 -1
  18. package/dist/components/editor/editor_import_export.js +12 -6
  19. package/dist/components/editor/editor_import_export.js.map +1 -1
  20. package/dist/components/editor/editor_tags_section.d.ts.map +1 -1
  21. package/dist/components/editor/editor_tags_section.js +5 -2
  22. package/dist/components/editor/editor_tags_section.js.map +1 -1
  23. package/dist/components/editor/editor_topic_list.d.ts.map +1 -1
  24. package/dist/components/editor/editor_topic_list.js +4 -1
  25. package/dist/components/editor/editor_topic_list.js.map +1 -1
  26. package/dist/components/editor/editor_topic_list_item.d.ts.map +1 -1
  27. package/dist/components/editor/editor_topic_list_item.js +4 -1
  28. package/dist/components/editor/editor_topic_list_item.js.map +1 -1
  29. package/dist/components/hover_help_icon.d.ts +18 -1
  30. package/dist/components/hover_help_icon.d.ts.map +1 -1
  31. package/dist/components/hover_help_icon.js +22 -3
  32. package/dist/components/hover_help_icon.js.map +1 -1
  33. package/dist/components/ihelp_detail_panel.d.ts.map +1 -1
  34. package/dist/components/ihelp_detail_panel.js +5 -2
  35. package/dist/components/ihelp_detail_panel.js.map +1 -1
  36. package/dist/components/ihelp_editor.d.ts.map +1 -1
  37. package/dist/components/ihelp_editor.js +9 -3
  38. package/dist/components/ihelp_editor.js.map +1 -1
  39. package/dist/components/ihelp_field_help.d.ts +5 -1
  40. package/dist/components/ihelp_field_help.d.ts.map +1 -1
  41. package/dist/components/ihelp_field_help.js +5 -2
  42. package/dist/components/ihelp_field_help.js.map +1 -1
  43. package/dist/components/ihelp_icon.d.ts.map +1 -1
  44. package/dist/components/ihelp_icon.js +4 -1
  45. package/dist/components/ihelp_icon.js.map +1 -1
  46. package/dist/components/ihelp_page_sidebar.d.ts +21 -0
  47. package/dist/components/ihelp_page_sidebar.d.ts.map +1 -0
  48. package/dist/components/ihelp_page_sidebar.js +24 -0
  49. package/dist/components/ihelp_page_sidebar.js.map +1 -0
  50. package/dist/components/ihelp_rich_editor.d.ts.map +1 -1
  51. package/dist/components/ihelp_rich_editor.js +4 -1
  52. package/dist/components/ihelp_rich_editor.js.map +1 -1
  53. package/dist/components/ihelp_search_dialog.d.ts.map +1 -1
  54. package/dist/components/ihelp_search_dialog.js +21 -15
  55. package/dist/components/ihelp_search_dialog.js.map +1 -1
  56. package/dist/components/ihelp_topic_cards.d.ts +14 -0
  57. package/dist/components/ihelp_topic_cards.d.ts.map +1 -0
  58. package/dist/components/ihelp_topic_cards.js +22 -0
  59. package/dist/components/ihelp_topic_cards.js.map +1 -0
  60. package/dist/components/ihelp_topic_list.d.ts +14 -0
  61. package/dist/components/ihelp_topic_list.d.ts.map +1 -0
  62. package/dist/components/ihelp_topic_list.js +12 -0
  63. package/dist/components/ihelp_topic_list.js.map +1 -0
  64. package/dist/components/index.d.ts +3 -0
  65. package/dist/components/index.d.ts.map +1 -1
  66. package/dist/components/index.js +3 -0
  67. package/dist/components/index.js.map +1 -1
  68. package/dist/components/topic_hover_icon.d.ts.map +1 -1
  69. package/dist/components/topic_hover_icon.js +5 -2
  70. package/dist/components/topic_hover_icon.js.map +1 -1
  71. package/dist/index.client.d.ts +3 -0
  72. package/dist/index.client.d.ts.map +1 -1
  73. package/dist/index.client.js.map +1 -1
  74. package/dist/index.runtime.d.ts +3 -0
  75. package/dist/index.runtime.d.ts.map +1 -1
  76. package/dist/index.runtime.js +3 -0
  77. package/dist/index.runtime.js.map +1 -1
  78. package/dist/locales/en.json +105 -0
  79. package/dist/types/index.d.ts +27 -0
  80. package/dist/types/index.d.ts.map +1 -1
  81. package/package.json +26 -22
package/README.md CHANGED
@@ -117,6 +117,31 @@ const { PATCH, DELETE } = createIhelpHandler({
117
117
  export { PATCH, DELETE };
118
118
  ```
119
119
 
120
+ > **Security note:** by default, POST/PATCH/DELETE on these routes are
121
+ > **unauthenticated** — anyone who can reach the route can write. Pass an
122
+ > `authorize` hook to gate mutations behind your own auth check; GET stays
123
+ > public either way (topic reads are meant to be public) and is never
124
+ > gated by `authorize`:
125
+ >
126
+ > ```typescript
127
+ > const { GET, POST, PATCH, DELETE } = createIhelpHandler({
128
+ > getHazoConnect: () => getHazoConnectSingleton(),
129
+ > authorize: async (req) => {
130
+ > // Your own auth check — e.g. verify a session/JWT and role.
131
+ > const user = await getUserFromRequest(req);
132
+ > return !!user?.is_admin;
133
+ > },
134
+ > });
135
+ > ```
136
+ >
137
+ > Resolving `false` (or throwing) responds `401` and the mutation never
138
+ > runs. Omitting `authorize` preserves the original unauthenticated
139
+ > behaviour — this is an opt-in hook, not a default-on gate.
140
+ >
141
+ > `createConfigHandler`'s PUT route (`hazo_config` key/value upserts)
142
+ > takes the same `authorize` option, enforced the same way, before PUT.
143
+ > Its GET is never gated either.
144
+
120
145
  ### 3. Add the Provider
121
146
 
122
147
  Wrap your app (or a subtree) with `IhelpProvider`:
@@ -195,7 +220,7 @@ import { IhelpFieldHelp } from 'hazo_ihelp';
195
220
  </label>
196
221
  ```
197
222
 
198
- Props: `title` (string), `body` (string or ReactNode), `size` (default 13), `side` (`"top"` | `"right"` | `"bottom"` | `"left"`, default `"top"`), `className`.
223
+ Props: `title` (string), `body` (string or ReactNode), `size` (default 13), `side` (`"top"` | `"right"` | `"bottom"` | `"left"`, default `"top"`), `className`, `content_className` (extra class on the popover itself — a `z-*` utility here wins over the default `z-[200]`), `container` (mount the popover's DOM under this element instead of `document.body`).
199
224
 
200
225
  ### IhelpIcon
201
226
 
@@ -14,6 +14,7 @@ CREATE TABLE IF NOT EXISTS hazo_ihelp_topics (
14
14
  scope_id UUID, -- NULL = global, UUID = org-specific
15
15
  category TEXT NOT NULL DEFAULT 'General',
16
16
  title TEXT NOT NULL,
17
+ slug TEXT, -- URL-addressable path (e.g. getting-started/welcome)
17
18
  description TEXT, -- short summary for search cards
18
19
  content TEXT, -- rich HTML from Tiptap editor
19
20
  icon TEXT, -- Lucide icon name
@@ -29,6 +30,7 @@ CREATE INDEX IF NOT EXISTS idx_hazo_ihelp_topics_scope ON hazo_ihelp_topics(s
29
30
  CREATE INDEX IF NOT EXISTS idx_hazo_ihelp_topics_parent ON hazo_ihelp_topics(parent_id);
30
31
  CREATE INDEX IF NOT EXISTS idx_hazo_ihelp_topics_tags ON hazo_ihelp_topics USING GIN (tags);
31
32
  CREATE INDEX IF NOT EXISTS idx_hazo_ihelp_topics_contexts ON hazo_ihelp_topics USING GIN (contexts);
33
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_hazo_ihelp_topics_slug ON hazo_ihelp_topics(scope_id, slug) WHERE slug IS NOT NULL;
32
34
 
33
35
  -- =============================================================================
34
36
  -- JSON column shapes
@@ -9,6 +9,7 @@ CREATE TABLE IF NOT EXISTS hazo_ihelp_topics (
9
9
  scope_id TEXT, -- UUID, NULL = global
10
10
  category TEXT NOT NULL DEFAULT 'General',
11
11
  title TEXT NOT NULL,
12
+ slug TEXT, -- URL-addressable path
12
13
  description TEXT,
13
14
  content TEXT, -- rich HTML from Tiptap editor
14
15
  icon TEXT, -- Lucide icon name
@@ -23,3 +24,4 @@ CREATE TABLE IF NOT EXISTS hazo_ihelp_topics (
23
24
 
24
25
  CREATE INDEX IF NOT EXISTS idx_hazo_ihelp_topics_scope ON hazo_ihelp_topics(scope_id);
25
26
  CREATE INDEX IF NOT EXISTS idx_hazo_ihelp_topics_parent ON hazo_ihelp_topics(parent_id);
27
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_hazo_ihelp_topics_slug ON hazo_ihelp_topics(scope_id, slug);
@@ -21,6 +21,13 @@ import { NextRequest, NextResponse } from 'next/server';
21
21
  import type { IhelpApiResponse } from '../types/index.js';
22
22
  export interface CreateConfigHandlerOptions {
23
23
  getHazoConnect: () => Promise<any> | any;
24
+ /**
25
+ * Optional authorization hook, run before PUT. Resolve `false` or throw
26
+ * to reject the write with a 401. A no-op when omitted — PUT proceeds
27
+ * unchecked, preserving the pre-existing, unauthenticated behaviour.
28
+ * GET never calls this — config reads stay public.
29
+ */
30
+ authorize?: (req: NextRequest) => Promise<boolean>;
24
31
  }
25
32
  export declare function createConfigHandler(options: CreateConfigHandlerOptions): {
26
33
  GET: (request: NextRequest) => Promise<NextResponse<IhelpApiResponse>>;
@@ -1 +1 @@
1
- {"version":3,"file":"create_config_handler.d.ts","sourceRoot":"","sources":["../../src/api/create_config_handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAUxD,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA0BzE,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;CAC1C;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B;mBAKzC,WAAW,KAAG,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;mBAiDrD,WAAW,KAAG,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;EAwElF"}
1
+ {"version":3,"file":"create_config_handler.d.ts","sourceRoot":"","sources":["../../src/api/create_config_handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAWxD,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA0BzE,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACzC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACpD;AAkCD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B;mBAKzC,WAAW,KAAG,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;mBAiDrD,WAAW,KAAG,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;EA0ElF"}
@@ -19,7 +19,7 @@
19
19
  */
20
20
  import { NextResponse } from 'next/server';
21
21
  import { createCrudService } from 'hazo_connect/server';
22
- import { HazoError, HazoValidationError, generateRequestId, getCorrelationId, withContext, } from 'hazo_core';
22
+ import { HazoError, HazoAuthError, HazoValidationError, generateRequestId, getCorrelationId, withContext, } from 'hazo_core';
23
23
  import { get_logger } from '../utils/logger.js';
24
24
  function generateUUID() {
25
25
  return generateRequestId().slice(4);
@@ -41,8 +41,36 @@ function handleError(logger, event, error) {
41
41
  logger.error(event, { error: error instanceof Error ? error.message : String(error) });
42
42
  return errResponse(error instanceof Error ? error.message : 'Internal server error', 500);
43
43
  }
44
+ /**
45
+ * Run the consumer-supplied `authorize` hook (if any) and reject the
46
+ * request with a `HazoAuthError` (401) when it resolves `false` or throws.
47
+ * Mirrors `create_ihelp_handler.ts`'s `ensureAuthorized`.
48
+ */
49
+ async function ensureAuthorized(authorize, request) {
50
+ if (!authorize)
51
+ return;
52
+ let allowed;
53
+ try {
54
+ allowed = await authorize(request);
55
+ }
56
+ catch (error) {
57
+ throw new HazoAuthError({
58
+ code: 'HAZO_IHELP_UNAUTHORIZED',
59
+ pkg: 'hazo_ihelp',
60
+ message: 'Unauthorized',
61
+ cause: error instanceof Error ? error : undefined,
62
+ });
63
+ }
64
+ if (!allowed) {
65
+ throw new HazoAuthError({
66
+ code: 'HAZO_IHELP_UNAUTHORIZED',
67
+ pkg: 'hazo_ihelp',
68
+ message: 'Unauthorized',
69
+ });
70
+ }
71
+ }
44
72
  export function createConfigHandler(options) {
45
- const { getHazoConnect } = options;
73
+ const { getHazoConnect, authorize } = options;
46
74
  const logger = get_logger();
47
75
  // GET ?config_key=context_keys&scope_id=...
48
76
  async function GET(request) {
@@ -91,6 +119,7 @@ export function createConfigHandler(options) {
91
119
  async function PUT(request) {
92
120
  return withContext({ correlationId: getCorrelationId() ?? generateRequestId() }, async () => {
93
121
  try {
122
+ await ensureAuthorized(authorize, request);
94
123
  const adapter = await getHazoConnect();
95
124
  const configService = createCrudService(adapter, 'hazo_config');
96
125
  const body = await request.json();
@@ -1 +1 @@
1
- {"version":3,"file":"create_config_handler.js","sourceRoot":"","sources":["../../src/api/create_config_handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create_config_handler.js","sourceRoot":"","sources":["../../src/api/create_config_handler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create_ihelp_handler.d.ts","sourceRoot":"","sources":["../../src/api/create_ihelp_handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAWxD,OAAO,KAAK,EACV,yBAAyB,EACzB,gBAAgB,EAChB,UAAU,EAIX,MAAM,mBAAmB,CAAC;AA+D3B;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB;mBAuCxD,WAAW,KACnB,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;oBAoG1D,WAAW,KACnB,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;qBAuF3C,WAAW,WACX;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;sBA2F3C,WAAW,WACX;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;EAkCjD"}
1
+ {"version":3,"file":"create_ihelp_handler.d.ts","sourceRoot":"","sources":["../../src/api/create_ihelp_handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAYxD,OAAO,KAAK,EACV,yBAAyB,EACzB,gBAAgB,EAChB,UAAU,EAIX,MAAM,mBAAmB,CAAC;AAgG3B;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB;mBAuCxD,WAAW,KACnB,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;oBA4H1D,WAAW,KACnB,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;qBA0F3C,WAAW,WACX;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;sBA8F3C,WAAW,WACX;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,KAC5C,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;EAoCjD"}
@@ -26,7 +26,7 @@
26
26
  */
27
27
  import { NextResponse } from 'next/server';
28
28
  import { createCrudService } from 'hazo_connect/server';
29
- import { HazoError, HazoValidationError, HazoNotFoundError, generateRequestId, getCorrelationId, withContext, } from 'hazo_core';
29
+ import { HazoError, HazoAuthError, HazoValidationError, HazoNotFoundError, generateRequestId, getCorrelationId, withContext, } from 'hazo_core';
30
30
  import { get_logger, set_logger } from '../utils/logger.js';
31
31
  // ============================================================================
32
32
  // Helper Functions
@@ -54,6 +54,35 @@ function handleError(logger, event, error) {
54
54
  logger.error(event, { error: error instanceof Error ? error.message : String(error) });
55
55
  return createErrorResponse('Internal server error', 500);
56
56
  }
57
+ /**
58
+ * Run the consumer-supplied `authorize` hook (if any) and reject the
59
+ * request with a `HazoAuthError` (401) when it resolves `false` or throws.
60
+ * A no-op when `authorize` is undefined — mutations proceed unchecked,
61
+ * preserving the pre-existing, unauthenticated behaviour.
62
+ */
63
+ async function ensureAuthorized(authorize, request) {
64
+ if (!authorize)
65
+ return;
66
+ let allowed;
67
+ try {
68
+ allowed = await authorize(request);
69
+ }
70
+ catch (error) {
71
+ throw new HazoAuthError({
72
+ code: 'HAZO_IHELP_UNAUTHORIZED',
73
+ pkg: 'hazo_ihelp',
74
+ message: 'Unauthorized',
75
+ cause: error instanceof Error ? error : undefined,
76
+ });
77
+ }
78
+ if (!allowed) {
79
+ throw new HazoAuthError({
80
+ code: 'HAZO_IHELP_UNAUTHORIZED',
81
+ pkg: 'hazo_ihelp',
82
+ message: 'Unauthorized',
83
+ });
84
+ }
85
+ }
57
86
  /** Parse a JSON column value that may be a string or already parsed */
58
87
  function parseJsonColumn(value) {
59
88
  if (typeof value === 'string') {
@@ -76,7 +105,7 @@ function parseJsonColumn(value) {
76
105
  * @returns Object with GET, POST, PATCH, and DELETE handlers
77
106
  */
78
107
  export function createIhelpHandler(options) {
79
- const { getHazoConnect, getLogger } = options;
108
+ const { getHazoConnect, getLogger, authorize } = options;
80
109
  if (getLogger) {
81
110
  // Consumer override — wire through the package-level logger.
82
111
  set_logger(getLogger());
@@ -113,14 +142,15 @@ export function createIhelpHandler(options) {
113
142
  try {
114
143
  const searchParams = request.nextUrl.searchParams;
115
144
  const id = searchParams.get('id');
145
+ const slug = searchParams.get('slug');
116
146
  const context_key = searchParams.get('context_key');
117
147
  const scope_id = searchParams.get('scope_id');
118
148
  const category = searchParams.get('category');
119
149
  const search = searchParams.get('search');
120
- logger.debug('topic.list.request', { id, context_key, scope_id, category, search });
150
+ logger.debug('topic.list.request', { id, slug, context_key, scope_id, category, search });
121
151
  const adapter = await getHazoConnect();
122
152
  const topicsService = createCrudService(adapter, 'hazo_ihelp_topics');
123
- // ---- Single topic fetch ----
153
+ // ---- Single topic fetch by id ----
124
154
  if (id) {
125
155
  const topic = await topicsService.findById(id);
126
156
  if (!topic) {
@@ -133,6 +163,28 @@ export function createIhelpHandler(options) {
133
163
  }
134
164
  return NextResponse.json({ success: true, data: normaliseTopic(topic) });
135
165
  }
166
+ // ---- Single topic fetch by slug ----
167
+ if (slug) {
168
+ const rows = await topicsService.list((qb) => {
169
+ let q = qb.where('slug', 'eq', slug);
170
+ if (scope_id) {
171
+ q = q.whereOr([
172
+ { field: 'scope_id', operator: 'is', value: null },
173
+ { field: 'scope_id', operator: 'eq', value: scope_id },
174
+ ]);
175
+ }
176
+ return q;
177
+ });
178
+ if (rows.length === 0) {
179
+ throw new HazoNotFoundError({
180
+ code: 'HAZO_IHELP_TOPIC_NOT_FOUND',
181
+ pkg: 'hazo_ihelp',
182
+ message: 'Topic not found',
183
+ context: { slug },
184
+ });
185
+ }
186
+ return NextResponse.json({ success: true, data: normaliseTopic(rows[0]) });
187
+ }
136
188
  // ---- Context key lookup ----
137
189
  if (context_key) {
138
190
  // Fetch all topics, filter by context key in application code
@@ -196,6 +248,7 @@ export function createIhelpHandler(options) {
196
248
  async function POST(request) {
197
249
  return withContext({ correlationId: getCorrelationId() ?? generateRequestId() }, async () => {
198
250
  try {
251
+ await ensureAuthorized(authorize, request);
199
252
  const body = (await request.json());
200
253
  if (!body.title) {
201
254
  throw new HazoValidationError({
@@ -238,6 +291,7 @@ export function createIhelpHandler(options) {
238
291
  scope_id: body.scope_id ?? null,
239
292
  category: body.category ?? '',
240
293
  title: body.title,
294
+ slug: body.slug ?? null,
241
295
  description: body.description ?? null,
242
296
  content: body.content ?? null,
243
297
  icon: body.icon ?? null,
@@ -282,6 +336,7 @@ export function createIhelpHandler(options) {
282
336
  message: 'id is required',
283
337
  });
284
338
  }
339
+ await ensureAuthorized(authorize, request);
285
340
  const body = (await request.json());
286
341
  logger.debug('topic.update.request', { id });
287
342
  const adapter = await getHazoConnect();
@@ -296,6 +351,8 @@ export function createIhelpHandler(options) {
296
351
  patch.category = body.category;
297
352
  if (body.title !== undefined)
298
353
  patch.title = body.title;
354
+ if (body.slug !== undefined)
355
+ patch.slug = body.slug;
299
356
  if (body.description !== undefined)
300
357
  patch.description = body.description;
301
358
  if (body.content !== undefined)
@@ -371,6 +428,7 @@ export function createIhelpHandler(options) {
371
428
  message: 'id is required',
372
429
  });
373
430
  }
431
+ await ensureAuthorized(authorize, request);
374
432
  logger.debug('topic.delete.request', { id });
375
433
  const adapter = await getHazoConnect();
376
434
  const topicsService = createCrudService(adapter, 'hazo_ihelp_topics');
@@ -1 +1 @@
1
- {"version":3,"file":"create_ihelp_handler.js","sourceRoot":"","sources":["../../src/api/create_ihelp_handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,GACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAe,MAAM,oBAAoB,CAAC;AAUzE,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,4FAA4F;AAC5F,SAAS,YAAY;IACnB,OAAO,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,2CAA2C;AAC3C,SAAS,mBAAmB,CAC1B,KAAa,EACb,MAAc;IAEd,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,mFAAmF;AACnF,SAAS,WAAW,CAClB,MAAc,EACd,KAAa,EACb,KAAc;IAEd,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,IAAI,GAAG,CAAC;QACvC,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,mBAAmB,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvF,OAAO,mBAAmB,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED,uEAAuE;AACvE,SAAS,eAAe,CAAI,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAkB,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,KAAK,IAAI,EAAE,CAAM,CAAC;AAC5B,CAAC;AAWD,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAkC;IACnE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9C,IAAI,SAAS,EAAE,CAAC;QACd,6DAA6D;QAC7D,UAAU,CAAC,SAAS,EAAY,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,8EAA8E;IAC9E,6DAA6D;IAC7D,8EAA8E;IAE9E,SAAS,cAAc,CAAC,GAAkB;QACxC,MAAM,IAAI,GAAG,eAAe,CAAa,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,eAAe,CAAiB,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE/D,OAAO;YACL,GAAG,GAAG;YACN,IAAI;YACJ,QAAQ;YACR,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;SACzC,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,0EAA0E;IAC1E,8EAA8E;IAE9E;;;;;;;;;OASG;IACH,KAAK,UAAU,GAAG,CAChB,OAAoB;QAEpB,OAAO,WAAW,CAAC,EAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,iBAAiB,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE;YAC1F,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;gBAClD,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACpD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAE1C,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;gBAEpF,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;gBACvC,MAAM,aAAa,GAAG,iBAAiB,CAAgB,OAAO,EAAE,mBAAmB,CAAC,CAAC;gBAErF,+BAA+B;gBAC/B,IAAI,EAAE,EAAE,CAAC;oBACP,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,MAAM,IAAI,iBAAiB,CAAC;4BAC1B,IAAI,EAAE,4BAA4B;4BAClC,GAAG,EAAE,YAAY;4BACjB,OAAO,EAAE,iBAAiB;4BAC1B,OAAO,EAAE,EAAE,EAAE,EAAE;yBAChB,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC3E,CAAC;gBAED,+BAA+B;gBAC/B,IAAI,WAAW,EAAE,CAAC;oBAChB,8DAA8D;oBAC9D,qDAAqD;oBACrD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;wBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;wBACX,IAAI,QAAQ,EAAE,CAAC;4BACb,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;gCACZ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;gCAClD,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;6BACvD,CAAC,CAAC;wBACL,CAAC;wBACD,OAAO,CAAC,CAAC;oBACX,CAAC,CAAC,CAAC;oBAEH,MAAM,OAAO,GAAG,IAAI;yBACjB,GAAG,CAAC,cAAc,CAAC;yBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;yBAC5D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBACb,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;wBACxE,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;wBACxE,OAAO,EAAE,GAAG,EAAE,CAAC;oBACjB,CAAC,CAAC,CAAC;oBAEL,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC7D,CAAC;gBAED,uCAAuC;gBACvC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;oBAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;oBAEX,IAAI,QAAQ,EAAE,CAAC;wBACb,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;4BACZ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;4BAClD,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;yBACvD,CAAC,CAAC;oBACL,CAAC;oBAED,IAAI,QAAQ,EAAE,CAAC;wBACb,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAC1C,CAAC;oBAED,IAAI,MAAM,EAAE,CAAC;wBACX,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;4BACZ,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,MAAM,GAAG,EAAE;4BAC3D,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,MAAM,GAAG,EAAE;yBAClE,CAAC,CAAC;oBACL,CAAC;oBAED,OAAO,CAAC,CAAC;gBACX,CAAC,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;gBAE3C,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,WAAW,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;YACzD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,oCAAoC;IACpC,8EAA8E;IAE9E;;;;OAIG;IACH,KAAK,UAAU,IAAI,CACjB,OAAoB;QAEpB,OAAO,WAAW,CAAC,EAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,iBAAiB,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE;YAC1F,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAoB,CAAC;gBAEvD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAChB,MAAM,IAAI,mBAAmB,CAAC;wBAC5B,IAAI,EAAE,6BAA6B;wBACnC,GAAG,EAAE,YAAY;wBACjB,OAAO,EAAE,mBAAmB;qBAC7B,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAE5D,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;gBACvC,MAAM,aAAa,GAAG,iBAAiB,CAAgB,OAAO,EAAE,mBAAmB,CAAC,CAAC;gBAErF,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAErC,mBAAmB;gBACnB,MAAM,IAAI,GAAe,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrD,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,SAAS;oBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;iBACrB,CAAC,CAAC,CAAC;gBAEJ,uFAAuF;gBACvF,IAAI,QAAwB,CAAC;gBAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACnC,GAAG,EAAE,CAAC,CAAC,GAAG;wBACV,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC;qBAC1B,CAAC,CAAC,CAAC;gBACN,CAAC;qBAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC7B,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC5C,GAAG;wBACH,QAAQ,EAAE,CAAC;qBACZ,CAAC,CAAC,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACN,QAAQ,GAAG,EAAE,CAAC;gBAChB,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC;oBAC1C,EAAE,EAAE,OAAO;oBACX,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;oBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;oBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;oBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;oBACrC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;oBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;oBACvB,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC;oBAChC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,KAAK;oBACxC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC1B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;oBAClC,UAAU,EAAE,GAAG;oBACf,UAAU,EAAE,IAAI;iBACjB,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAClE,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAEvC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;gBAEvF,OAAO,YAAY,CAAC,IAAI,CACtB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAC9B,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,WAAW,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,2CAA2C;IAC3C,8EAA8E;IAE9E;;;;;OAKG;IACH,KAAK,UAAU,KAAK,CAClB,OAAoB,EACpB,OAA6C;QAE7C,OAAO,WAAW,CAAC,EAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,iBAAiB,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE;YAC1F,IAAI,CAAC;gBACH,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;gBAC7C,IAAI,EAAE,GAAuB,OAAO,CAAC;gBACrC,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;gBAC3D,CAAC;gBAED,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,MAAM,IAAI,mBAAmB,CAAC;wBAC5B,IAAI,EAAE,6BAA6B;wBACnC,GAAG,EAAE,YAAY;wBACjB,OAAO,EAAE,gBAAgB;qBAC1B,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAA6B,CAAC;gBAEhE,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBAE7C,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;gBACvC,MAAM,aAAa,GAAG,iBAAiB,CAAgB,OAAO,EAAE,mBAAmB,CAAC,CAAC;gBAErF,0BAA0B;gBAC1B,MAAM,KAAK,GAA4B,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;gBAChF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;oBAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;oBAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAChE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;oBAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAChE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;oBAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;oBAAE,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;gBACzE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;oBAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;oBAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACpD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;oBAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACtE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;oBAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;gBAE5E,2BAA2B;gBAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC5B,MAAM,IAAI,GAAe,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC7C,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,SAAS;wBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;qBACrB,CAAC,CAAC,CAAC;oBACJ,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC;gBAED,+BAA+B;gBAC/B,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAChC,MAAM,QAAQ,GAAmB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBACzD,GAAG,EAAE,CAAC,CAAC,GAAG;wBACV,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC;qBAC1B,CAAC,CAAC,CAAC;oBACJ,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC5C,CAAC;qBAAM,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;oBAC3C,MAAM,QAAQ,GAAmB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;wBAClE,GAAG;wBACH,QAAQ,EAAE,CAAC;qBACZ,CAAC,CAAC,CAAC;oBACJ,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC5C,CAAC;gBAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC1D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrC,MAAM,IAAI,iBAAiB,CAAC;wBAC1B,IAAI,EAAE,4BAA4B;wBAClC,GAAG,EAAE,YAAY;wBACjB,OAAO,EAAE,iBAAiB;wBAC1B,OAAO,EAAE,EAAE,EAAE,EAAE;qBAChB,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;gBAE/C,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,WAAW,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,kCAAkC;IAClC,8EAA8E;IAE9E;;;;OAIG;IACH,KAAK,UAAU,MAAM,CACnB,OAAoB,EACpB,OAA6C;QAE7C,OAAO,WAAW,CAAC,EAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,iBAAiB,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE;YAC1F,IAAI,CAAC;gBACH,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;gBAC7C,IAAI,EAAE,GAAuB,OAAO,CAAC;gBACrC,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;gBAC3D,CAAC;gBAED,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,MAAM,IAAI,mBAAmB,CAAC;wBAC5B,IAAI,EAAE,6BAA6B;wBACnC,GAAG,EAAE,YAAY;wBACjB,OAAO,EAAE,gBAAgB;qBAC1B,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBAE7C,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;gBACvC,MAAM,aAAa,GAAG,iBAAiB,CAAgB,OAAO,EAAE,mBAAmB,CAAC,CAAC;gBAErF,MAAM,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAEnC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;gBAE/C,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,WAAW,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"create_ihelp_handler.js","sourceRoot":"","sources":["../../src/api/create_ihelp_handler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"editor_context_keys_section.d.ts","sourceRoot":"","sources":["../../../src/components/editor/editor_context_keys_section.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAU7D,UAAU,6BAA6B;IACrC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;CACnD;AAwMD,wBAAgB,wBAAwB,CAAC,EACvC,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,KAAK,EACL,QAAQ,EACR,YAAY,GACb,EAAE,6BAA6B,qBAwE/B"}
1
+ {"version":3,"file":"editor_context_keys_section.d.ts","sourceRoot":"","sources":["../../../src/components/editor/editor_context_keys_section.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAa7D,UAAU,6BAA6B;IACrC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;CACnD;AAwMD,wBAAgB,wBAAwB,CAAC,EACvC,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,KAAK,EACL,QAAQ,EACR,YAAY,GACb,EAAE,6BAA6B,qBAwE/B"}
@@ -2,10 +2,13 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useState, useCallback, useRef, useEffect, useMemo } from 'react';
4
4
  import { Key, X, ChevronDown, Plus, Settings2 } 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 { CollapsibleSection } from './editor_collapsible_section.js';
10
+ import en from '../../locales/en.json' with { type: 'json' };
11
+ const t = createPackageT('hazo_ihelp', en);
9
12
  // ---------------------------------------------------------------------------
10
13
  // Searchable dropdown for selecting from available keys
11
14
  // ---------------------------------------------------------------------------
@@ -40,14 +43,14 @@ function ContextKeyDropdown({ available_keys, assigned_keys, onSelect, }) {
40
43
  if (!open)
41
44
  setTimeout(() => inputRef.current?.focus(), 0);
42
45
  }, children: [_jsx("input", { ref: inputRef, value: filter, onChange: (e) => { set_filter(e.target.value); if (!open)
43
- set_open(true); }, onFocus: () => set_open(true), placeholder: "Select context key...", className: "flex-1 bg-transparent outline-none placeholder:text-muted-foreground/50 text-xs", onKeyDown: (e) => {
46
+ set_open(true); }, onFocus: () => set_open(true), placeholder: t('editor_context_keys.dropdown_placeholder'), className: "flex-1 bg-transparent outline-none placeholder:text-muted-foreground/50 text-xs", onKeyDown: (e) => {
44
47
  if (e.key === 'Enter' && filtered.length === 1) {
45
48
  e.preventDefault();
46
49
  handleSelect(filtered[0].key);
47
50
  }
48
51
  if (e.key === 'Escape')
49
52
  set_open(false);
50
- } }), _jsx(ChevronDown, { className: "h-3 w-3 text-muted-foreground ml-1 shrink-0" })] }), open && (_jsx("div", { className: "absolute z-50 mt-1 w-full rounded-md border bg-popover shadow-md max-h-48 overflow-y-auto", style: { backgroundColor: 'var(--popover, #ffffff)' }, children: filtered.length === 0 ? (_jsx("div", { className: "px-3 py-2 text-xs text-muted-foreground", children: available_keys.length === 0 ? 'No context keys defined' : 'No matching keys' })) : (filtered.map((opt) => (_jsxs("button", { type: "button", className: "w-full px-3 py-1.5 text-left text-xs hover:bg-accent hover:text-accent-foreground flex flex-col", onClick: () => handleSelect(opt.key), children: [_jsx("span", { className: "font-medium", children: opt.label }), _jsx("span", { className: "text-[10px] text-muted-foreground", children: opt.key })] }, opt.key)))) }))] }));
53
+ } }), _jsx(ChevronDown, { className: "h-3 w-3 text-muted-foreground ml-1 shrink-0" })] }), open && (_jsx("div", { className: "absolute z-50 mt-1 w-full rounded-md border bg-popover shadow-md max-h-48 overflow-y-auto", style: { backgroundColor: 'var(--popover, #ffffff)' }, children: filtered.length === 0 ? (_jsx("div", { className: "px-3 py-2 text-xs text-muted-foreground", children: available_keys.length === 0 ? t('editor_context_keys.no_keys_defined') : t('editor_context_keys.no_matching_keys') })) : (filtered.map((opt) => (_jsxs("button", { type: "button", className: "w-full px-3 py-1.5 text-left text-xs hover:bg-accent hover:text-accent-foreground flex flex-col", onClick: () => handleSelect(opt.key), children: [_jsx("span", { className: "font-medium", children: opt.label }), _jsx("span", { className: "text-[10px] text-muted-foreground", children: opt.key })] }, opt.key)))) }))] }));
51
54
  }
52
55
  // ---------------------------------------------------------------------------
53
56
  // Manage keys dialog (inline popover)
@@ -79,13 +82,13 @@ function ManageKeysPopover({ available_keys, onSave, onClose, }) {
79
82
  const handleRemove = (key) => {
80
83
  set_keys((prev) => prev.filter((x) => x.key !== key));
81
84
  };
82
- return (_jsxs("div", { ref: ref, className: "absolute z-50 right-0 top-full mt-1 w-80 rounded-md border bg-popover p-3 shadow-lg", style: { backgroundColor: 'var(--popover, #ffffff)' }, children: [_jsx("p", { className: "text-xs font-semibold mb-2", children: "Manage Available Context Keys" }), _jsxs("div", { className: "max-h-40 overflow-y-auto space-y-1 mb-3", children: [keys.map((opt) => (_jsxs("div", { className: "flex items-center justify-between gap-2 text-xs py-0.5", children: [_jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("span", { className: "font-medium", children: opt.label }), _jsxs("span", { className: "text-muted-foreground ml-1", children: ["(", opt.key, ")"] })] }), _jsx("button", { type: "button", onClick: () => handleRemove(opt.key), className: "shrink-0 text-muted-foreground hover:text-destructive", children: _jsx(X, { className: "h-3 w-3" }) })] }, opt.key))), keys.length === 0 && (_jsx("p", { className: "text-xs text-muted-foreground py-1", children: "No keys defined." }))] }), _jsxs("div", { className: "flex gap-1.5 mb-2", children: [_jsx(Input, { value: new_key, onChange: (e) => set_new_key(e.target.value), placeholder: "key (e.g. tax.field)", className: "h-7 text-xs flex-1", onKeyDown: (e) => { if (e.key === 'Enter') {
85
+ return (_jsxs("div", { ref: ref, className: "absolute z-50 right-0 top-full mt-1 w-80 rounded-md border bg-popover p-3 shadow-lg", style: { backgroundColor: 'var(--popover, #ffffff)' }, children: [_jsx("p", { className: "text-xs font-semibold mb-2", children: t('editor_context_keys.manage_popover_title') }), _jsxs("div", { className: "max-h-40 overflow-y-auto space-y-1 mb-3", children: [keys.map((opt) => (_jsxs("div", { className: "flex items-center justify-between gap-2 text-xs py-0.5", children: [_jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("span", { className: "font-medium", children: opt.label }), _jsxs("span", { className: "text-muted-foreground ml-1", children: ["(", opt.key, ")"] })] }), _jsx("button", { type: "button", onClick: () => handleRemove(opt.key), className: "shrink-0 text-muted-foreground hover:text-destructive", children: _jsx(X, { className: "h-3 w-3" }) })] }, opt.key))), keys.length === 0 && (_jsx("p", { className: "text-xs text-muted-foreground py-1", children: t('editor_context_keys.manage_no_keys') }))] }), _jsxs("div", { className: "flex gap-1.5 mb-2", children: [_jsx(Input, { value: new_key, onChange: (e) => set_new_key(e.target.value), placeholder: t('editor_context_keys.new_key_placeholder'), className: "h-7 text-xs flex-1", onKeyDown: (e) => { if (e.key === 'Enter') {
83
86
  e.preventDefault();
84
87
  handleAdd();
85
- } } }), _jsx(Input, { value: new_label, onChange: (e) => set_new_label(e.target.value), placeholder: "Label", className: "h-7 text-xs flex-1", onKeyDown: (e) => { if (e.key === 'Enter') {
88
+ } } }), _jsx(Input, { value: new_label, onChange: (e) => set_new_label(e.target.value), placeholder: t('editor_context_keys.new_label_placeholder'), className: "h-7 text-xs flex-1", onKeyDown: (e) => { if (e.key === 'Enter') {
86
89
  e.preventDefault();
87
90
  handleAdd();
88
- } } }), _jsx(Button, { type: "button", size: "sm", variant: "outline", className: "h-7 px-2", onClick: handleAdd, disabled: !new_key.trim() || !new_label.trim(), children: _jsx(Plus, { className: "h-3 w-3" }) })] }), _jsxs("div", { className: "flex justify-end gap-2", children: [_jsx(Button, { type: "button", size: "sm", variant: "ghost", className: "h-7 text-xs", onClick: onClose, children: "Cancel" }), _jsx(Button, { type: "button", size: "sm", className: "h-7 text-xs", onClick: () => { onSave(keys); onClose(); }, children: "Save" })] })] }));
91
+ } } }), _jsx(Button, { type: "button", size: "sm", variant: "outline", className: "h-7 px-2", onClick: handleAdd, disabled: !new_key.trim() || !new_label.trim(), children: _jsx(Plus, { className: "h-3 w-3" }) })] }), _jsxs("div", { className: "flex justify-end gap-2", children: [_jsx(Button, { type: "button", size: "sm", variant: "ghost", className: "h-7 text-xs", onClick: onClose, children: t('editor_context_keys.cancel') }), _jsx(Button, { type: "button", size: "sm", className: "h-7 text-xs", onClick: () => { onSave(keys); onClose(); }, children: t('editor_context_keys.save') })] })] }));
89
92
  }
90
93
  // ---------------------------------------------------------------------------
91
94
  // Main component
@@ -94,6 +97,6 @@ export function EditorContextKeysSection({ context_keys, available_keys, availab
94
97
  const [manage_open, set_manage_open] = useState(false);
95
98
  // Resolve label for a key
96
99
  const labelFor = useCallback((key) => available_keys.find((o) => o.key === key)?.label ?? key, [available_keys]);
97
- return (_jsx(CollapsibleSection, { icon: _jsx(Key, { className: "h-3.5 w-3.5" }), label: "Context Keys", badge: context_keys.length > 0 ? String(context_keys.length) : undefined, defaultOpen: defaultOpen, children: _jsxs("div", { className: "space-y-3", children: [context_keys.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-1.5", children: context_keys.map((key, idx) => (_jsxs(Badge, { variant: "default", children: [labelFor(key), _jsx("button", { type: "button", className: "ml-1 rounded-full hover:bg-black/10", onClick: () => onRemove(idx), title: `Remove ${key}`, children: _jsx(X, { className: "h-3 w-3" }) })] }, idx))) })), _jsxs("div", { className: "relative flex items-end gap-2", children: [available_keys_loading ? (_jsx("div", { className: "h-8 flex-1 flex items-center text-xs text-muted-foreground", children: "Loading keys..." })) : (_jsx(ContextKeyDropdown, { available_keys: available_keys, assigned_keys: context_keys, onSelect: onAdd })), onManageKeys && (_jsx(Button, { type: "button", size: "sm", variant: "ghost", className: "h-8 w-8 p-0 shrink-0", onClick: () => set_manage_open(!manage_open), title: "Manage available context keys", children: _jsx(Settings2, { className: "h-3.5 w-3.5" }) })), manage_open && onManageKeys && (_jsx(ManageKeysPopover, { available_keys: available_keys, onSave: onManageKeys, onClose: () => set_manage_open(false) }))] })] }) }));
100
+ return (_jsx(CollapsibleSection, { icon: _jsx(Key, { className: "h-3.5 w-3.5" }), label: t('editor_context_keys.section_label'), badge: context_keys.length > 0 ? String(context_keys.length) : undefined, defaultOpen: defaultOpen, children: _jsxs("div", { className: "space-y-3", children: [context_keys.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-1.5", children: context_keys.map((key, idx) => (_jsxs(Badge, { variant: "default", children: [labelFor(key), _jsx("button", { type: "button", className: "ml-1 rounded-full hover:bg-black/10", onClick: () => onRemove(idx), title: t('editor_context_keys.remove_key_title', { key }), children: _jsx(X, { className: "h-3 w-3" }) })] }, idx))) })), _jsxs("div", { className: "relative flex items-end gap-2", children: [available_keys_loading ? (_jsx("div", { className: "h-8 flex-1 flex items-center text-xs text-muted-foreground", children: t('editor_context_keys.loading_keys') })) : (_jsx(ContextKeyDropdown, { available_keys: available_keys, assigned_keys: context_keys, onSelect: onAdd })), onManageKeys && (_jsx(Button, { type: "button", size: "sm", variant: "ghost", className: "h-8 w-8 p-0 shrink-0", onClick: () => set_manage_open(!manage_open), title: t('editor_context_keys.manage_button_title'), children: _jsx(Settings2, { className: "h-3.5 w-3.5" }) })), manage_open && onManageKeys && (_jsx(ManageKeysPopover, { available_keys: available_keys, onSave: onManageKeys, onClose: () => set_manage_open(false) }))] })] }) }));
98
101
  }
99
102
  //# sourceMappingURL=editor_context_keys_section.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor_context_keys_section.js","sourceRoot":"","sources":["../../../src/components/editor/editor_context_keys_section.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor_context_keys_section.js","sourceRoot":"","sources":["../../../src/components/editor/editor_context_keys_section.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"editor_form.d.ts","sourceRoot":"","sources":["../../../src/components/editor/editor_form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAazG,UAAU,eAAe;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC5F,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACvC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,sBAAsB,EAAE,gBAAgB,EAAE,CAAC;IAC3C,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IACzD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,SAAS,EACT,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,UAAU,EACV,WAAW,EACX,MAAM,EACN,UAAU,EACV,aAAa,EACb,QAAQ,EACR,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,8BAA8B,EAC9B,mBAAmB,EACnB,MAAM,EACN,QAAQ,EACR,UAAU,EACV,QAAQ,GACT,EAAE,eAAe,qBAkNjB"}
1
+ {"version":3,"file":"editor_form.d.ts","sourceRoot":"","sources":["../../../src/components/editor/editor_form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAgBzG,UAAU,eAAe;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC5F,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACvC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,sBAAsB,EAAE,gBAAgB,EAAE,CAAC;IAC3C,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IACzD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,SAAS,EACT,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,UAAU,EACV,WAAW,EACX,MAAM,EACN,UAAU,EACV,aAAa,EACb,QAAQ,EACR,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,8BAA8B,EAC9B,mBAAmB,EACnB,MAAM,EACN,QAAQ,EACR,UAAU,EACV,QAAQ,GACT,EAAE,eAAe,qBA6NjB"}
@@ -2,6 +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 { createPackageT } from 'hazo_core/i18n';
5
6
  import { cn } from 'hazo_ui';
6
7
  import { Button } from '../ui/button.js';
7
8
  import { Input } from '../ui/input.js';
@@ -12,14 +13,16 @@ import { IhelpRichEditor } from '../ihelp_rich_editor.js';
12
13
  import { CollapsibleSection } from './editor_collapsible_section.js';
13
14
  import { EditorTagsSection } from './editor_tags_section.js';
14
15
  import { EditorContextKeysSection } from './editor_context_keys_section.js';
16
+ import en from '../../locales/en.json' with { type: 'json' };
17
+ const t = createPackageT('hazo_ihelp', en);
15
18
  export function EditorForm({ form, form_tags, form_context_keys, is_new, saving, save_error, selected_id, topics, categories, onUpdateField, onAddTag, onRemoveTag, onAddContextKey, onRemoveContextKey, available_context_keys, available_context_keys_loading, onManageContextKeys, onSave, onDelete, upload_url, scope_id, }) {
16
19
  const parent_name = useMemo(() => {
17
20
  if (!form.parent_id)
18
21
  return null;
19
22
  return topics.find((t) => t.id === form.parent_id)?.title ?? null;
20
23
  }, [form.parent_id, topics]);
21
- return (_jsxs("div", { className: "flex flex-1 flex-col overflow-y-auto", children: [_jsxs("div", { className: "sticky top-0 z-10 flex items-center justify-between border-b bg-background/95 px-6 py-3 backdrop-blur-sm", children: [_jsx("span", { className: "text-xs font-semibold uppercase tracking-widest text-muted-foreground", children: is_new ? 'New Topic' : 'Edit Topic' }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Switch, { id: "ihelp-ed-published", checked: form.is_published ?? false, onCheckedChange: (val) => onUpdateField('is_published', val) }), _jsx("label", { htmlFor: "ihelp-ed-published", className: cn('text-xs font-medium transition-colors', form.is_published ? 'text-emerald-600' : 'text-muted-foreground'), children: form.is_published ? 'Published' : 'Draft' })] }), _jsxs(Button, { size: "sm", onClick: onSave, disabled: saving || !form.title.trim(), className: "h-8", children: [_jsx(Save, { className: "mr-1.5 h-3.5 w-3.5" }), saving ? 'Saving...' : is_new ? 'Create' : 'Save'] }), !is_new && selected_id && (_jsx(Button, { size: "sm", variant: "ghost", onClick: onDelete, disabled: saving, className: "h-8 w-8 p-0 text-destructive hover:bg-destructive/10 hover:text-destructive", title: "Delete topic", children: _jsx(Trash2, { className: "h-3.5 w-3.5" }) }))] })] }), _jsxs("div", { className: "flex-1 px-6 py-5", children: [save_error && (_jsx("p", { className: "mb-4 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-sm text-destructive", children: save_error })), _jsx("input", { value: form.title, onChange: (e) => onUpdateField('title', e.target.value), placeholder: "Topic title...", className: "w-full border-0 bg-transparent text-2xl font-bold tracking-tight text-foreground outline-none placeholder:text-muted-foreground/30" }), _jsxs("div", { className: "mt-1 flex items-center gap-1.5", children: [_jsx("span", { className: "text-xs text-muted-foreground/60", children: "in" }), _jsx("input", { value: form.category ?? '', onChange: (e) => onUpdateField('category', e.target.value), placeholder: "Category...", list: "ihelp-ed-categories", className: "border-0 bg-transparent text-sm text-muted-foreground outline-none placeholder:text-muted-foreground/30" }), _jsx("datalist", { id: "ihelp-ed-categories", children: categories.map((c) => (_jsx("option", { value: c }, c))) })] }), _jsx("textarea", { value: form.description ?? '', onChange: (e) => onUpdateField('description', e.target.value), placeholder: "Short summary...", rows: 2, className: "mt-4 w-full resize-none border-0 bg-transparent text-sm text-muted-foreground outline-none placeholder:text-muted-foreground/30" }), _jsx("div", { className: "mt-4", children: _jsx(IhelpRichEditor, { content: form.content ?? '', onChange: (html) => onUpdateField('content', html), placeholder: "Write help content...", className: "min-h-[300px]", upload_url: upload_url, scope_id: scope_id ?? undefined }) }), _jsxs("div", { className: "mt-6", children: [_jsx(CollapsibleSection, { icon: _jsx(Settings, { className: "h-3.5 w-3.5" }), label: "Settings", badge: parent_name ? `Parent: ${parent_name}` : undefined, defaultOpen: is_new, children: _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "col-span-2 space-y-1", children: [_jsx(Label, { className: "text-xs", children: "Parent Topic" }), _jsxs(Select, { value: form.parent_id ?? '__none__', onValueChange: (val) => onUpdateField('parent_id', val === '__none__' ? null : val), children: [_jsx(SelectTrigger, { className: "h-9", children: _jsx(SelectValue, { placeholder: "None (root level)" }) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "__none__", children: "None (root level)" }), topics
24
+ return (_jsxs("div", { className: "flex flex-1 flex-col overflow-y-auto", children: [_jsxs("div", { className: "sticky top-0 z-10 flex items-center justify-between border-b bg-background/95 px-6 py-3 backdrop-blur-sm", children: [_jsx("span", { className: "text-xs font-semibold uppercase tracking-widest text-muted-foreground", children: is_new ? t('editor_form.title_new') : t('editor_form.title_edit') }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Switch, { id: "ihelp-ed-published", checked: form.is_published ?? false, onCheckedChange: (val) => onUpdateField('is_published', val) }), _jsx("label", { htmlFor: "ihelp-ed-published", className: cn('text-xs font-medium transition-colors', form.is_published ? 'text-emerald-600' : 'text-muted-foreground'), children: form.is_published ? t('editor_form.published') : t('editor_form.draft') })] }), _jsxs(Button, { size: "sm", onClick: onSave, disabled: saving || !form.title.trim(), className: "h-8", children: [_jsx(Save, { className: "mr-1.5 h-3.5 w-3.5" }), saving ? t('editor_form.saving') : is_new ? t('editor_form.create') : t('editor_form.save')] }), !is_new && selected_id && (_jsx(Button, { size: "sm", variant: "ghost", onClick: onDelete, disabled: saving, className: "h-8 w-8 p-0 text-destructive hover:bg-destructive/10 hover:text-destructive", title: t('editor_form.delete_topic_title'), children: _jsx(Trash2, { className: "h-3.5 w-3.5" }) }))] })] }), _jsxs("div", { className: "flex-1 px-6 py-5", children: [save_error && (_jsx("p", { className: "mb-4 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-sm text-destructive", children: save_error })), _jsx("input", { value: form.title, onChange: (e) => onUpdateField('title', e.target.value), placeholder: t('editor_form.title_placeholder'), className: "w-full border-0 bg-transparent text-2xl font-bold tracking-tight text-foreground outline-none placeholder:text-muted-foreground/30" }), _jsxs("div", { className: "mt-1 flex items-center gap-1.5", children: [_jsx("span", { className: "text-xs text-muted-foreground/60", children: t('editor_form.slug_prefix') }), _jsx("input", { value: form.slug ?? '', onChange: (e) => onUpdateField('slug', e.target.value || null), placeholder: t('editor_form.slug_placeholder'), className: "border-0 bg-transparent text-sm font-mono text-muted-foreground outline-none placeholder:text-muted-foreground/30" })] }), _jsxs("div", { className: "mt-1 flex items-center gap-1.5", children: [_jsx("span", { className: "text-xs text-muted-foreground/60", children: t('editor_form.category_prefix') }), _jsx("input", { value: form.category ?? '', onChange: (e) => onUpdateField('category', e.target.value), placeholder: t('editor_form.category_placeholder'), list: "ihelp-ed-categories", className: "border-0 bg-transparent text-sm text-muted-foreground outline-none placeholder:text-muted-foreground/30" }), _jsx("datalist", { id: "ihelp-ed-categories", children: categories.map((c) => (_jsx("option", { value: c }, c))) })] }), _jsx("textarea", { value: form.description ?? '', onChange: (e) => onUpdateField('description', e.target.value), placeholder: t('editor_form.description_placeholder'), rows: 2, className: "mt-4 w-full resize-none border-0 bg-transparent text-sm text-muted-foreground outline-none placeholder:text-muted-foreground/30" }), _jsx("div", { className: "mt-4", children: _jsx(IhelpRichEditor, { content: form.content ?? '', onChange: (html) => onUpdateField('content', html), placeholder: t('editor_form.content_placeholder'), className: "min-h-[300px]", upload_url: upload_url, scope_id: scope_id ?? undefined }) }), _jsxs("div", { className: "mt-6", children: [_jsx(CollapsibleSection, { icon: _jsx(Settings, { className: "h-3.5 w-3.5" }), label: t('editor_form.settings_label'), badge: parent_name ? t('editor_form.parent_badge', { name: parent_name }) : undefined, defaultOpen: is_new, children: _jsxs("div", { className: "grid grid-cols-2 gap-4", children: [_jsxs("div", { className: "col-span-2 space-y-1", children: [_jsx(Label, { className: "text-xs", children: t('editor_form.parent_topic_label') }), _jsxs(Select, { value: form.parent_id ?? '__none__', onValueChange: (val) => onUpdateField('parent_id', val === '__none__' ? null : val), children: [_jsx(SelectTrigger, { className: "h-9", children: _jsx(SelectValue, { placeholder: t('editor_form.none_root_level') }) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "__none__", children: t('editor_form.none_root_level') }), topics
22
25
  .filter((t) => t.id !== selected_id)
23
- .map((t) => (_jsx(SelectItem, { value: t.id, children: t.title }, t.id)))] })] })] }), _jsxs("div", { className: "space-y-1", children: [_jsx(Label, { className: "text-xs", children: "Sort Order" }), _jsx(Input, { type: "number", value: form.sort_order ?? 0, onChange: (e) => onUpdateField('sort_order', parseInt(e.target.value, 10) || 0), className: "h-9" })] }), _jsxs("div", { className: "space-y-1", children: [_jsx(Label, { className: "text-xs", children: "Icon (Lucide name)" }), _jsx(Input, { value: form.icon ?? '', onChange: (e) => onUpdateField('icon', e.target.value), placeholder: "e.g. help-circle", className: "h-9" })] }), _jsxs("div", { className: "col-span-2 space-y-1", children: [_jsx(Label, { className: "text-xs", children: "Scope ID" }), _jsx(Input, { value: form.scope_id ?? '', onChange: (e) => onUpdateField('scope_id', e.target.value || null), placeholder: "Global (leave empty for all)", className: "h-9" })] })] }) }), _jsx(EditorTagsSection, { tags: form_tags, defaultOpen: is_new, onAdd: onAddTag, onRemove: onRemoveTag }), _jsx(EditorContextKeysSection, { context_keys: form_context_keys, available_keys: available_context_keys, available_keys_loading: available_context_keys_loading, defaultOpen: is_new, onAdd: onAddContextKey, onRemove: onRemoveContextKey, onManageKeys: onManageContextKeys })] })] })] }));
26
+ .map((t) => (_jsx(SelectItem, { value: t.id, children: t.title }, t.id)))] })] })] }), _jsxs("div", { className: "space-y-1", children: [_jsx(Label, { className: "text-xs", children: t('editor_form.sort_order_label') }), _jsx(Input, { type: "number", value: form.sort_order ?? 0, onChange: (e) => onUpdateField('sort_order', parseInt(e.target.value, 10) || 0), className: "h-9" })] }), _jsxs("div", { className: "space-y-1", children: [_jsx(Label, { className: "text-xs", children: t('editor_form.icon_label') }), _jsx(Input, { value: form.icon ?? '', onChange: (e) => onUpdateField('icon', e.target.value), placeholder: t('editor_form.icon_placeholder'), className: "h-9" })] }), _jsxs("div", { className: "col-span-2 space-y-1", children: [_jsx(Label, { className: "text-xs", children: t('editor_form.scope_id_label') }), _jsx(Input, { value: form.scope_id ?? '', onChange: (e) => onUpdateField('scope_id', e.target.value || null), placeholder: t('editor_form.scope_id_placeholder'), className: "h-9" })] })] }) }), _jsx(EditorTagsSection, { tags: form_tags, defaultOpen: is_new, onAdd: onAddTag, onRemove: onRemoveTag }), _jsx(EditorContextKeysSection, { context_keys: form_context_keys, available_keys: available_context_keys, available_keys_loading: available_context_keys_loading, defaultOpen: is_new, onAdd: onAddContextKey, onRemove: onRemoveContextKey, onManageKeys: onManageContextKeys })] })] })] }));
24
27
  }
25
28
  //# sourceMappingURL=editor_form.js.map