@aleph-alpha/chat-kit 1.17.1 → 1.17.3

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.
@@ -719,7 +719,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
719
719
  createVNode(unref(UiDialogContent), {
720
720
  title: title.value,
721
721
  "max-width": "max-w-4xl",
722
- class: "ck-feedback-dialog",
722
+ class: "ck-feedback-dialog h-[min(85vh,_40rem)]",
723
723
  "show-close-button": !(__props.submitting || __props.disabled)
724
724
  }, {
725
725
  actions: withCtx(() => [
@@ -758,7 +758,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
758
758
  }),
759
759
  createElementVNode("div", {
760
760
  class: normalizeClass([
761
- "grid gap-12",
761
+ "grid min-h-0 flex-1 grid-rows-1 gap-12",
762
762
  showResponseColumn.value ? "grid-cols-2" : "grid-cols-1"
763
763
  ])
764
764
  }, [
@@ -835,7 +835,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
835
835
  };
836
836
  }
837
837
  });
838
- const CkFeedbackDialog = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-eaffd2d5"]]);
838
+ const CkFeedbackDialog = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-181a7aa9"]]);
839
839
  const _sfc_main$b = /* @__PURE__ */ defineComponent({
840
840
  ...{
841
841
  name: "CkFileItemRow",
package/dist/chat-kit.css CHANGED
@@ -23,7 +23,7 @@
23
23
  }
24
24
  }
25
25
 
26
- .ck-feedback-dialog__chip[data-v-eaffd2d5] {
26
+ .ck-feedback-dialog__chip[data-v-181a7aa9] {
27
27
  width: 100%;
28
28
  min-height: 36px;
29
29
  height: auto;
@@ -31,14 +31,14 @@
31
31
  text-align: center;
32
32
  line-height: 1rem;
33
33
  }
34
- .ck-feedback-dialog__response[data-v-eaffd2d5] p,
35
- .ck-feedback-dialog__response[data-v-eaffd2d5] li {
34
+ .ck-feedback-dialog__response[data-v-181a7aa9] p,
35
+ .ck-feedback-dialog__response[data-v-181a7aa9] li {
36
36
  line-height: 1.5rem;
37
37
  }
38
- .ck-feedback-dialog__response[data-v-eaffd2d5] p {
38
+ .ck-feedback-dialog__response[data-v-181a7aa9] p {
39
39
  margin: 0 0 0.5rem 0;
40
40
  }
41
- .ck-feedback-dialog__response[data-v-eaffd2d5] p:last-child {
41
+ .ck-feedback-dialog__response[data-v-181a7aa9] p:last-child {
42
42
  margin-bottom: 0;
43
43
  }
44
44
 
@@ -22,6 +22,12 @@ export declare const NoResponseColumn: Story;
22
22
  * are non-interactive.
23
23
  */
24
24
  export declare const Submitting: Story;
25
+ /**
26
+ * Long response that exceeds viewport height. The response column should scroll
27
+ * internally so the dialog stays within the viewport and the submit/cancel
28
+ * actions remain reachable.
29
+ */
30
+ export declare const LongResponse: Story;
25
31
  /**
26
32
  * Realistic end-to-end flow wired to `CkFeedbackButton`. Click a thumb to open
27
33
  * the dialog; submit or cancel; the button locks only on submit.
@@ -1 +1 @@
1
- {"version":3,"file":"CkFeedbackDialog.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFeedbackDialog/CkFeedbackDialog.stories.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AAOtD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAsC3D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAgBvC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAoEnC;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,KAOtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAOtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAO9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAqEhC,CAAC"}
1
+ {"version":3,"file":"CkFeedbackDialog.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFeedbackDialog/CkFeedbackDialog.stories.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AAOtD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AA2D3D,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAgBvC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAoEnC;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,KAOtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAOtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAO9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAO1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAqEhC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CkFeedbackDialog.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFeedbackDialog/CkFeedbackDialog.vue"],"names":[],"mappings":"AAwSA,OAAO,KAAK,EACV,qBAAqB,EACrB,6BAA6B,EAC9B,MAAM,SAAS,CAAC;AAqgBjB,QAAA,MAAM,YAAY;;;;;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"CkFeedbackDialog.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFeedbackDialog/CkFeedbackDialog.vue"],"names":[],"mappings":"AAwSA,OAAO,KAAK,EACV,qBAAqB,EACrB,6BAA6B,EAC9B,MAAM,SAAS,CAAC;AAygBjB,QAAA,MAAM,YAAY;;;;;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1,4 +1,4 @@
1
- import { _, a, b, C, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r } from "../CkInput.vue_vue_type_script_setup_true_lang-DxUWj4Vh.js";
1
+ import { _, a, b, C, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r } from "../CkInput.vue_vue_type_script_setup_true_lang-DYBCJPBn.js";
2
2
  export {
3
3
  _ as CkAgentMessage,
4
4
  a as CkConversation,
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { u } from "./useMessageHandler-CMdy-lm0.js";
2
2
  import { C, d, p, u as u2, a } from "./useChatKitLabels-BC6ItJc6.js";
3
3
  import { S, c, d as d2, a as a2, u as u3, b, e, f } from "./index-Ct5hD214.js";
4
- import { _, a as a3, b as b2, C as C2, c as c2, d as d3, e as e2, f as f2, g, h, i, j, k, l, m, n, o, p as p2, q, r, s } from "./CkInput.vue_vue_type_script_setup_true_lang-DxUWj4Vh.js";
4
+ import { _, a as a3, b as b2, C as C2, c as c2, d as d3, e as e2, f as f2, g, h, i, j, k, l, m, n, o, p as p2, q, r, s } from "./CkInput.vue_vue_type_script_setup_true_lang-DYBCJPBn.js";
5
5
  export {
6
6
  C as CHAT_KIT_LABELS,
7
7
  _ as CkAgentMessage,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aleph-alpha/chat-kit",
3
- "version": "1.17.1",
3
+ "version": "1.17.3",
4
4
  "description": "Chat kit package for building chat interfaces with Vue",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -65,7 +65,7 @@
65
65
  "vue": "^3.5.27"
66
66
  },
67
67
  "dependencies": {
68
- "@aleph-alpha/ui-library": "^2.7.0",
68
+ "@aleph-alpha/ui-library": "^2.8.3",
69
69
  "dompurify": "^3.3.2",
70
70
  "rehype-stringify": "^10.0.1",
71
71
  "remark-gfm": "^4.0.1",
@@ -43,6 +43,27 @@ Key Lessons Learned:
43
43
  - **Stakeholder Involvement:** The most critical lesson was the need for early and **continuous stakeholder involvement** from all affected departments. A lack of initial engagement led to significant user resistance and process rework in the initial rollout.
44
44
  - **User Training:** Tailored, hands-on training was found to be far more effective than generic sessions. Departments that received customized training saw a **25% higher adoption rate** of the new tools compared to those with generic training.`;
45
45
 
46
+ const LONG_RESPONSE = `Below is the complete corporate travel and expense policy. Several sections expand the original guidelines based on feedback from the 2026 internal audit.
47
+
48
+ 1. **General Travel Principles** – travel must serve clear business objectives, be cost-conscious, sustainable, and respect time and well-being. Short trips (e.g., Berlin → Heidelberg) are discouraged unless essential.
49
+ 2. **Booking Travels** – all trips must be booked via the mandatory Lanes & Planes platform. Reasons are classified (company events, team workshops, partner meetings, trade fairs, office visits, onboarding, onsite interviews, etc.). No pre-approval is needed if the booking follows policy.
50
+ 3. **Travel Guidelines (Mobility)**
51
+ - **Train travel** – preferred mode; book early, aim for 2nd-class Supersparpreis tickets ≤ €100, reserve seats, use a BahnCard where appropriate.
52
+ - **Car travel** – allowed only when logistically or economically justified; own-vehicle mileage reimbursed at €0.30/km. Inter-office car trips require explicit manager approval.
53
+ - **Taxi & Ride Services** – exceptional cases only (e.g., strikes, urgent client arrival).
54
+ - **Air Travel** – used when train travel is infeasible or >100% longer; economy class is default; premium options need manager approval.
55
+ 4. **Accommodation** – book mid-range hotels (€80–100/night, up to €120/night in major cities). Free cancellation preferred. Hotel stays in the contract location are not permitted except for approved team events.
56
+ 5. **International Business Travel** – all international bookings must be made in Lanes & Planes, triggering an automatic WorkFlex compliance check. Travelers must complete a WorkFlex profile, book at least 3 working days in advance, and carry an A1 certificate.
57
+ 6. **Costs Outside Lanes & Planes** – per-diems are only reimbursed for external client/partner trips (€14 for 8–24 h, €28 for longer trips). Other expenses need a pre-approved cost-acceptance form and itemised receipts.
58
+ 7. **Receipts & Reimbursement** – all receipts must be submitted via the Receipts portal within 14 days of return. Submissions older than 60 days are not reimbursed unless approved by Finance and the line manager.
59
+ 8. **Sustainability** – combined train+overnight travel is preferred over short-haul flights wherever total travel time stays within 6 hours of the equivalent flight itinerary.
60
+ 9. **Personal Time Combined with Business Travel** – allowed for up to 3 calendar days adjacent to the business portion. The personal segment must be clearly itemised so the company only covers business-related expenses.
61
+ 10. **Per-Diem Edge Cases** – when meals are provided by a customer, the daily per-diem is reduced (breakfast: -20%, lunch: -40%, dinner: -40%). Travelers must self-declare this in the reimbursement form.
62
+ 11. **Visa & Documentation** – travelers are responsible for keeping their passports valid for at least 6 months beyond the trip end date. The company covers business visa application fees but not expedited service unless explicitly approved.
63
+ 12. **Travel Insurance** – the corporate travel insurance covers all business trips booked via Lanes & Planes by default. For trips outside that channel, contact the People Operations team at least 5 working days before departure.
64
+
65
+ Please review the full policy carefully before your next booking and reach out to People Operations with any questions.`;
66
+
46
67
  const meta: Meta<typeof CkFeedbackDialog> = {
47
68
  title: 'Base/CkFeedbackDialog',
48
69
  component: CkFeedbackDialog,
@@ -182,6 +203,20 @@ export const Submitting: Story = {
182
203
  },
183
204
  };
184
205
 
206
+ /**
207
+ * Long response that exceeds viewport height. The response column should scroll
208
+ * internally so the dialog stays within the viewport and the submit/cancel
209
+ * actions remain reachable.
210
+ */
211
+ export const LongResponse: Story = {
212
+ args: {
213
+ open: true,
214
+ sentiment: 'negative',
215
+ reasons: NEGATIVE_REASONS,
216
+ responseText: LONG_RESPONSE,
217
+ },
218
+ };
219
+
185
220
  /**
186
221
  * Realistic end-to-end flow wired to `CkFeedbackButton`. Click a thumb to open
187
222
  * the dialog; submit or cancel; the button locks only on submit.
@@ -177,7 +177,7 @@ function handleSubmit(): void {
177
177
  <UiDialogContent
178
178
  :title="title"
179
179
  max-width="max-w-4xl"
180
- class="ck-feedback-dialog"
180
+ class="ck-feedback-dialog h-[min(85vh,_40rem)]"
181
181
  :show-close-button="!(submitting || disabled)"
182
182
  >
183
183
  <UiDialogDescription class="sr-only">
@@ -185,7 +185,7 @@ function handleSubmit(): void {
185
185
  </UiDialogDescription>
186
186
  <div
187
187
  :class="[
188
- 'grid gap-12',
188
+ 'grid min-h-0 flex-1 grid-rows-1 gap-12',
189
189
  showResponseColumn ? 'grid-cols-2' : 'grid-cols-1',
190
190
  ]"
191
191
  >