@devalok/shilp-sutra 0.33.2 → 0.34.1

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 (175) hide show
  1. package/dist/_chunks/badge-group.js +306 -246
  2. package/dist/_chunks/chat.js +513 -0
  3. package/dist/_chunks/date-picker.js +748 -0
  4. package/dist/_chunks/document-preview.js +109 -90
  5. package/dist/_chunks/file-preview.js +492 -504
  6. package/dist/_chunks/framer.js +5564 -5613
  7. package/dist/_chunks/image-preview.js +127 -88
  8. package/dist/_chunks/keybinding.js +12 -14
  9. package/dist/_chunks/link-context.js +19 -16
  10. package/dist/_chunks/mention-suggestion.js +353 -350
  11. package/dist/_chunks/motion-provider.js +26 -20
  12. package/dist/_chunks/popover.js +127 -0
  13. package/dist/_chunks/primitives.js +7584 -6425
  14. package/dist/_chunks/rich-chat-input.js +2070 -0
  15. package/dist/_chunks/rolldown-runtime.js +21 -0
  16. package/dist/_chunks/shared.js +126 -0
  17. package/dist/_chunks/sonner.js +605 -734
  18. package/dist/_chunks/stat-row.js +418 -440
  19. package/dist/_chunks/tiptap.js +15850 -19964
  20. package/dist/_chunks/tree-view.js +231 -290
  21. package/dist/_chunks/use-calendar.js +161 -208
  22. package/dist/_chunks/vendor-client.js +314 -2199
  23. package/dist/_chunks/vendor-utils.js +1721 -2978
  24. package/dist/ai/ai-command-provider.js +23 -17
  25. package/dist/ai/block-renderer.js +68 -51
  26. package/dist/ai/blocks/index.js +2 -12
  27. package/dist/ai/command-bar.js +470 -519
  28. package/dist/ai/conversation.js +241 -227
  29. package/dist/ai/index.js +181 -167
  30. package/dist/ai/types.js +0 -1
  31. package/dist/composed/activity-feed.js +232 -202
  32. package/dist/composed/avatar-group.js +164 -222
  33. package/dist/composed/bulk-action-bar.js +174 -165
  34. package/dist/composed/command-palette.js +290 -308
  35. package/dist/composed/confirm-dialog.js +28 -48
  36. package/dist/composed/content-card.js +69 -108
  37. package/dist/composed/date-picker/index.js +3 -13
  38. package/dist/composed/deadline-indicator.js +68 -74
  39. package/dist/composed/emoji-picker.js +83 -110
  40. package/dist/composed/empty-state.js +64 -103
  41. package/dist/composed/error-boundary.js +129 -127
  42. package/dist/composed/file-preview.js +2 -12
  43. package/dist/composed/filter-bar.js +98 -130
  44. package/dist/composed/form-section.js +61 -45
  45. package/dist/composed/global-loading.js +34 -47
  46. package/dist/composed/index.js +34 -92
  47. package/dist/composed/inline-edit.js +92 -107
  48. package/dist/composed/lib/string-utils.js +8 -8
  49. package/dist/composed/loading-skeleton.js +103 -171
  50. package/dist/composed/markdown-viewer.js +187 -139
  51. package/dist/composed/master-detail.js +147 -156
  52. package/dist/composed/member-picker.js +46 -49
  53. package/dist/composed/multi-select-popover.js +181 -179
  54. package/dist/composed/page-header.js +54 -76
  55. package/dist/composed/page-skeletons.js +143 -127
  56. package/dist/composed/priority-indicator.js +105 -111
  57. package/dist/composed/responsive-overlay.js +36 -41
  58. package/dist/composed/rich-chat-input.js +2 -1860
  59. package/dist/composed/rich-text-editor.js +561 -424
  60. package/dist/composed/schedule-view.js +134 -185
  61. package/dist/composed/simple-tooltip.js +21 -21
  62. package/dist/composed/status-badge.js +133 -137
  63. package/dist/hooks/index.js +7 -12
  64. package/dist/hooks/use-color-mode.js +28 -25
  65. package/dist/hooks/use-mobile.js +13 -13
  66. package/dist/hooks/use-toast.js +2 -4
  67. package/dist/hooks/use-touch-device.js +9 -11
  68. package/dist/hooks/use-viewport-height.js +14 -14
  69. package/dist/motion/index.js +3 -11
  70. package/dist/motion/primitives-index.js +226 -186
  71. package/dist/shell/app-command-palette.js +203 -234
  72. package/dist/shell/bottom-navbar.js +150 -190
  73. package/dist/shell/command-registry.js +13 -14
  74. package/dist/shell/index.js +10 -20
  75. package/dist/shell/link-context.js +2 -5
  76. package/dist/shell/notification-center.js +238 -259
  77. package/dist/shell/notification-preferences.js +241 -184
  78. package/dist/shell/sidebar.js +251 -281
  79. package/dist/shell/top-bar.js +203 -237
  80. package/dist/tailwind/index.cjs +426 -451
  81. package/dist/tailwind/index.js +2 -4
  82. package/dist/tailwind/preset.d.ts.map +1 -1
  83. package/dist/tailwind/preset.js +443 -468
  84. package/dist/ui/accordion.js +52 -60
  85. package/dist/ui/alert-dialog.js +111 -156
  86. package/dist/ui/alert.js +177 -99
  87. package/dist/ui/aspect-ratio.js +13 -16
  88. package/dist/ui/autocomplete.js +112 -148
  89. package/dist/ui/avatar.js +196 -169
  90. package/dist/ui/badge-group.js +2 -7
  91. package/dist/ui/badge-indicator.js +42 -51
  92. package/dist/ui/badge.js +2 -15
  93. package/dist/ui/banner.js +76 -68
  94. package/dist/ui/breadcrumb.js +65 -84
  95. package/dist/ui/button-group.js +109 -102
  96. package/dist/ui/button-processing.js +69 -73
  97. package/dist/ui/button.js +393 -279
  98. package/dist/ui/card.js +151 -157
  99. package/dist/ui/charts/index.js +1002 -1319
  100. package/dist/ui/chat/index.js +2 -11
  101. package/dist/ui/checkbox.js +77 -100
  102. package/dist/ui/code.js +18 -32
  103. package/dist/ui/collapsible.js +21 -29
  104. package/dist/ui/color-input.js +453 -372
  105. package/dist/ui/color-swatch.js +60 -90
  106. package/dist/ui/combobox.js +244 -293
  107. package/dist/ui/container.js +18 -24
  108. package/dist/ui/context-menu.js +154 -203
  109. package/dist/ui/data-table-body.js +116 -213
  110. package/dist/ui/data-table-bulk-actions.js +43 -59
  111. package/dist/ui/data-table-card.js +84 -71
  112. package/dist/ui/data-table-context.js +39 -42
  113. package/dist/ui/data-table-header.js +98 -139
  114. package/dist/ui/data-table-pagination.js +69 -82
  115. package/dist/ui/data-table-toolbar.js +104 -130
  116. package/dist/ui/data-table.js +278 -354
  117. package/dist/ui/devalok-grain.js +77 -66
  118. package/dist/ui/dialog.js +122 -151
  119. package/dist/ui/dropdown-menu.js +152 -203
  120. package/dist/ui/file-upload.js +242 -266
  121. package/dist/ui/form.js +60 -56
  122. package/dist/ui/hover-card.js +54 -54
  123. package/dist/ui/icon-button.js +21 -26
  124. package/dist/ui/icon-context.js +17 -17
  125. package/dist/ui/icon-group.js +22 -29
  126. package/dist/ui/icon.js +201 -121
  127. package/dist/ui/index.js +74 -350
  128. package/dist/ui/input-otp.d.ts.map +1 -1
  129. package/dist/ui/input-otp.js +44 -48
  130. package/dist/ui/input.js +92 -169
  131. package/dist/ui/label.js +17 -22
  132. package/dist/ui/lib/date-utils.js +14 -11
  133. package/dist/ui/lib/motion.js +77 -36
  134. package/dist/ui/lib/utils.js +39 -16
  135. package/dist/ui/link.js +13 -24
  136. package/dist/ui/menubar.js +132 -210
  137. package/dist/ui/navigation-menu.js +164 -194
  138. package/dist/ui/number-input.js +72 -95
  139. package/dist/ui/pagination.js +122 -159
  140. package/dist/ui/popover.js +2 -131
  141. package/dist/ui/progress-ring.js +133 -143
  142. package/dist/ui/progress.js +51 -95
  143. package/dist/ui/radio.js +41 -50
  144. package/dist/ui/search-input.js +51 -53
  145. package/dist/ui/segmented-control.js +93 -114
  146. package/dist/ui/select.js +131 -157
  147. package/dist/ui/separator.js +15 -25
  148. package/dist/ui/sheet.js +135 -163
  149. package/dist/ui/sidebar.js +357 -600
  150. package/dist/ui/skeleton.js +179 -231
  151. package/dist/ui/slider.js +24 -34
  152. package/dist/ui/spinner.js +226 -205
  153. package/dist/ui/split-button.js +227 -276
  154. package/dist/ui/stack.js +56 -70
  155. package/dist/ui/stat-card.js +259 -251
  156. package/dist/ui/status-dot.js +67 -63
  157. package/dist/ui/stepper.js +119 -168
  158. package/dist/ui/switch.js +51 -54
  159. package/dist/ui/table.js +57 -90
  160. package/dist/ui/tabs.js +139 -156
  161. package/dist/ui/text.js +52 -59
  162. package/dist/ui/textarea.js +40 -57
  163. package/dist/ui/toast-types.js +0 -1
  164. package/dist/ui/toast.js +554 -536
  165. package/dist/ui/toaster.js +23 -33
  166. package/dist/ui/toggle-group.js +37 -41
  167. package/dist/ui/toggle.js +36 -40
  168. package/dist/ui/tooltip.js +80 -65
  169. package/dist/ui/tree-view/index.js +2 -6
  170. package/dist/ui/visually-hidden.js +12 -10
  171. package/llms-full.txt +1 -1
  172. package/llms.txt +12 -0
  173. package/package.json +3 -3
  174. package/dist/_chunks/date-time-picker.js +0 -851
  175. package/dist/_chunks/typing-indicator.js +0 -565
@@ -1,362 +1,365 @@
1
1
  "use client";
2
- import { jsx as i, jsxs as u } from "react/jsx-runtime";
3
- import { N as v, R as w, m as N, f as g, g as $, h as S, j as R } from "./tiptap.js";
4
- import { IconFile as I, IconDownload as A } from "@tabler/icons-react";
5
- import { Icon as x } from "../ui/icon.js";
6
- import * as d from "react";
7
- import { createRoot as j } from "react-dom/client";
8
- import { cn as k } from "../ui/lib/utils.js";
9
- import { emojiDataLoaders as h } from "../composed/emoji-picker.js";
10
- function L(e) {
11
- return e < 1024 ? `${e} B` : e < 1024 * 1024 ? `${(e / 1024).toFixed(1)} KB` : `${(e / (1024 * 1024)).toFixed(1)} MB`;
2
+ import { cn as e } from "../ui/lib/utils.js";
3
+ import { Icon as t } from "../ui/icon.js";
4
+ import { emojiDataLoaders as n } from "../composed/emoji-picker.js";
5
+ import { _ as r, f as i, g as a, p as o, r as s, v as c, y as l } from "./tiptap.js";
6
+ import * as u from "react";
7
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
8
+ import { IconDownload as p, IconFile as m } from "@tabler/icons-react";
9
+ import { createRoot as h } from "react-dom/client";
10
+ //#region src/composed/extensions/file-attachment.tsx
11
+ function g(e) {
12
+ return e < 1024 ? `${e} B` : e < 1024 * 1024 ? `${(e / 1024).toFixed(1)} KB` : `${(e / (1024 * 1024)).toFixed(1)} MB`;
12
13
  }
13
- function z({ node: e }) {
14
- const r = /^https?:\/\//.test(e.attrs.url) ? e.attrs.url : "#";
15
- return /* @__PURE__ */ i(g, { className: "my-ds-02", children: /* @__PURE__ */ u(
16
- "a",
17
- {
18
- href: r,
19
- target: "_blank",
20
- rel: "noopener noreferrer",
21
- className: "inline-flex items-center gap-ds-03 rounded-ds-md border border-surface-border-strong bg-surface-raised px-ds-04 py-ds-03 text-ds-sm text-surface-fg transition-colors hover:border-surface-border-strong hover:bg-surface-raised-hover",
22
- contentEditable: !1,
23
- children: [
24
- /* @__PURE__ */ i(x, { icon: I, size: "sm", className: "shrink-0 text-surface-fg-subtle" }),
25
- /* @__PURE__ */ i("span", { className: "truncate", children: e.attrs.name }),
26
- /* @__PURE__ */ u("span", { className: "shrink-0 text-surface-fg-subtle", children: [
27
- "(",
28
- L(e.attrs.size),
29
- ")"
30
- ] }),
31
- /* @__PURE__ */ i(x, { icon: A, size: "sm", className: "shrink-0 text-surface-fg-subtle" })
32
- ]
33
- }
34
- ) });
14
+ function _({ node: e }) {
15
+ return /* @__PURE__ */ d(i, {
16
+ className: "my-ds-02",
17
+ children: /* @__PURE__ */ f("a", {
18
+ href: /^https?:\/\//.test(e.attrs.url) ? e.attrs.url : "#",
19
+ target: "_blank",
20
+ rel: "noopener noreferrer",
21
+ className: "inline-flex items-center gap-ds-03 rounded-ds-md border border-surface-border-strong bg-surface-raised px-ds-04 py-ds-03 text-ds-sm text-surface-fg transition-colors hover:border-surface-border-strong hover:bg-surface-raised-hover",
22
+ contentEditable: !1,
23
+ children: [
24
+ /* @__PURE__ */ d(t, {
25
+ icon: m,
26
+ size: "sm",
27
+ className: "shrink-0 text-surface-fg-subtle"
28
+ }),
29
+ /* @__PURE__ */ d("span", {
30
+ className: "truncate",
31
+ children: e.attrs.name
32
+ }),
33
+ /* @__PURE__ */ f("span", {
34
+ className: "shrink-0 text-surface-fg-subtle",
35
+ children: [
36
+ "(",
37
+ g(e.attrs.size),
38
+ ")"
39
+ ]
40
+ }),
41
+ /* @__PURE__ */ d(t, {
42
+ icon: p,
43
+ size: "sm",
44
+ className: "shrink-0 text-surface-fg-subtle"
45
+ })
46
+ ]
47
+ })
48
+ });
35
49
  }
36
- const O = v.create({
37
- name: "fileAttachment",
38
- group: "block",
39
- atom: !0,
40
- addAttributes() {
41
- return {
42
- url: { default: null },
43
- name: { default: "Untitled" },
44
- size: { default: 0 }
45
- };
46
- },
47
- parseHTML() {
48
- return [{ tag: "div[data-file-attachment]" }];
49
- },
50
- renderHTML({ HTMLAttributes: e }) {
51
- return ["div", N({ "data-file-attachment": "" }, e)];
52
- },
53
- addNodeView() {
54
- return w(z);
55
- }
56
- }), E = (e) => `https://cdn.jsdelivr.net/npm/emoji-datasource-${e}@15.0.1/img/${e}/sheets-256/64.png`, f = 61, m = 61;
57
- let y = null, c = null;
58
- async function D(e) {
59
- if (y === e && c) return c;
60
- const t = await (h[e] ?? h.native)();
61
- return c = t.default ?? t, y = e, c;
50
+ var v = r.create({
51
+ name: "fileAttachment",
52
+ group: "block",
53
+ atom: !0,
54
+ addAttributes() {
55
+ return {
56
+ url: { default: null },
57
+ name: { default: "Untitled" },
58
+ size: { default: 0 }
59
+ };
60
+ },
61
+ parseHTML() {
62
+ return [{ tag: "div[data-file-attachment]" }];
63
+ },
64
+ renderHTML({ HTMLAttributes: e }) {
65
+ return ["div", c({ "data-file-attachment": "" }, e)];
66
+ },
67
+ addNodeView() {
68
+ return o(_);
69
+ }
70
+ }), y = (e) => `https://cdn.jsdelivr.net/npm/emoji-datasource-${e}@15.0.1/img/${e}/sheets-256/64.png`, b = null, x = null;
71
+ async function S(e) {
72
+ if (b === e && x) return x;
73
+ let t = await (n[e] ?? n.native)();
74
+ return x = t.default ?? t, b = e, x;
62
75
  }
63
- function W(e, r) {
64
- const t = e.emojis[r];
65
- if (!t) return null;
66
- const s = t.skins[0];
67
- return s ? {
68
- id: t.id,
69
- name: t.name,
70
- native: s.native,
71
- x: s.x ?? 0,
72
- y: s.y ?? 0
73
- } : null;
76
+ function C(e, t) {
77
+ let n = e.emojis[t];
78
+ if (!n) return null;
79
+ let r = n.skins[0];
80
+ return r ? {
81
+ id: n.id,
82
+ name: n.name,
83
+ native: r.native,
84
+ x: r.x ?? 0,
85
+ y: r.y ?? 0
86
+ } : null;
74
87
  }
75
- function C(e, r, t = 8) {
76
- const s = Object.values(e.emojis);
77
- if (!r)
78
- return s.slice(0, t).map((n) => ({
79
- id: n.id,
80
- name: n.name,
81
- native: n.skins[0]?.native ?? "",
82
- x: n.skins[0]?.x ?? 0,
83
- y: n.skins[0]?.y ?? 0
84
- }));
85
- const a = r.toLowerCase(), o = [];
86
- for (const n of s) {
87
- if (o.length >= t) break;
88
- (n.id.includes(a) || n.name.toLowerCase().includes(a) || n.keywords?.some((l) => l.includes(a))) && o.push({
89
- id: n.id,
90
- name: n.name,
91
- native: n.skins[0]?.native ?? "",
92
- x: n.skins[0]?.x ?? 0,
93
- y: n.skins[0]?.y ?? 0
94
- });
95
- }
96
- return o;
88
+ function w(e, t, n = 8) {
89
+ let r = Object.values(e.emojis);
90
+ if (!t) return r.slice(0, n).map((e) => ({
91
+ id: e.id,
92
+ name: e.name,
93
+ native: e.skins[0]?.native ?? "",
94
+ x: e.skins[0]?.x ?? 0,
95
+ y: e.skins[0]?.y ?? 0
96
+ }));
97
+ let i = t.toLowerCase(), a = [];
98
+ for (let e of r) {
99
+ if (a.length >= n) break;
100
+ (e.id.includes(i) || e.name.toLowerCase().includes(i) || e.keywords?.some((e) => e.includes(i))) && a.push({
101
+ id: e.id,
102
+ name: e.name,
103
+ native: e.skins[0]?.native ?? "",
104
+ x: e.skins[0]?.x ?? 0,
105
+ y: e.skins[0]?.y ?? 0
106
+ });
107
+ }
108
+ return a;
97
109
  }
98
- function H({ node: e }) {
99
- const { native: r, set: t, x: s, y: a } = e.attrs;
100
- if (t === "native")
101
- return /* @__PURE__ */ i(g, { as: "span", className: "inline", children: /* @__PURE__ */ i("span", { children: r }) });
102
- const o = `${100 * f}% ${100 * m}%`, n = `${100 / (f - 1) * s}% ${100 / (m - 1) * a}%`;
103
- return /* @__PURE__ */ i(g, { as: "span", className: "inline", children: /* @__PURE__ */ i(
104
- "span",
105
- {
106
- role: "img",
107
- "aria-label": r,
108
- className: "inline-block h-[1.2em] w-[1.2em] align-text-bottom",
109
- style: {
110
- backgroundImage: `url(${E(t)})`,
111
- backgroundSize: o,
112
- backgroundPosition: n
113
- }
114
- }
115
- ) });
110
+ //#endregion
111
+ //#region src/composed/extensions/emoji-node.tsx
112
+ function T({ node: e }) {
113
+ let { native: t, set: n, x: r, y: a } = e.attrs;
114
+ if (n === "native") return /* @__PURE__ */ d(i, {
115
+ as: "span",
116
+ className: "inline",
117
+ children: /* @__PURE__ */ d("span", { children: t })
118
+ });
119
+ let o = `${100 / 60 * r}% ${100 / 60 * a}%`;
120
+ return /* @__PURE__ */ d(i, {
121
+ as: "span",
122
+ className: "inline",
123
+ children: /* @__PURE__ */ d("span", {
124
+ role: "img",
125
+ "aria-label": t,
126
+ className: "inline-block h-[1.2em] w-[1.2em] align-text-bottom",
127
+ style: {
128
+ backgroundImage: `url(${y(n)})`,
129
+ backgroundSize: "6100% 6100%",
130
+ backgroundPosition: o
131
+ }
132
+ })
133
+ });
116
134
  }
117
- const q = v.create({
118
- name: "emojiNode",
119
- group: "inline",
120
- inline: !0,
121
- atom: !0,
122
- selectable: !1,
123
- addAttributes() {
124
- return {
125
- id: { default: null },
126
- native: { default: null },
127
- set: { default: "native" },
128
- x: { default: 0 },
129
- y: { default: 0 }
130
- };
131
- },
132
- renderText({ node: e }) {
133
- return e.attrs.native ?? "";
134
- },
135
- parseHTML() {
136
- return [{
137
- tag: "span[data-emoji-id]",
138
- getAttrs: (e) => {
139
- const r = e;
140
- return {
141
- id: r.getAttribute("data-emoji-id"),
142
- set: r.getAttribute("data-emoji-set") ?? "native",
143
- x: parseInt(r.getAttribute("data-emoji-x") ?? "0", 10),
144
- y: parseInt(r.getAttribute("data-emoji-y") ?? "0", 10),
145
- native: r.textContent ?? ""
146
- };
147
- }
148
- }];
149
- },
150
- renderHTML({ node: e }) {
151
- return ["span", {
152
- "data-emoji-id": e.attrs.id,
153
- "data-emoji-set": e.attrs.set,
154
- "data-emoji-x": e.attrs.x,
155
- "data-emoji-y": e.attrs.y,
156
- role: "img",
157
- "aria-label": e.attrs.native
158
- }, e.attrs.native ?? ""];
159
- },
160
- addNodeView() {
161
- return w(H);
162
- }
135
+ var E = r.create({
136
+ name: "emojiNode",
137
+ group: "inline",
138
+ inline: !0,
139
+ atom: !0,
140
+ selectable: !1,
141
+ addAttributes() {
142
+ return {
143
+ id: { default: null },
144
+ native: { default: null },
145
+ set: { default: "native" },
146
+ x: { default: 0 },
147
+ y: { default: 0 }
148
+ };
149
+ },
150
+ renderText({ node: e }) {
151
+ return e.attrs.native ?? "";
152
+ },
153
+ parseHTML() {
154
+ return [{
155
+ tag: "span[data-emoji-id]",
156
+ getAttrs: (e) => {
157
+ let t = e;
158
+ return {
159
+ id: t.getAttribute("data-emoji-id"),
160
+ set: t.getAttribute("data-emoji-set") ?? "native",
161
+ x: parseInt(t.getAttribute("data-emoji-x") ?? "0", 10),
162
+ y: parseInt(t.getAttribute("data-emoji-y") ?? "0", 10),
163
+ native: t.textContent ?? ""
164
+ };
165
+ }
166
+ }];
167
+ },
168
+ renderHTML({ node: e }) {
169
+ return [
170
+ "span",
171
+ {
172
+ "data-emoji-id": e.attrs.id,
173
+ "data-emoji-set": e.attrs.set,
174
+ "data-emoji-x": e.attrs.x,
175
+ "data-emoji-y": e.attrs.y,
176
+ role: "img",
177
+ "aria-label": e.attrs.native
178
+ },
179
+ e.attrs.native ?? ""
180
+ ];
181
+ },
182
+ addNodeView() {
183
+ return o(T);
184
+ }
163
185
  });
164
- function K({ emoji: e, set: r, size: t = "1.2em" }) {
165
- return r === "native" ? /* @__PURE__ */ i("span", { style: { fontSize: t }, children: e.native }) : /* @__PURE__ */ i(
166
- "span",
167
- {
168
- role: "img",
169
- "aria-label": e.native,
170
- className: "inline-block",
171
- style: {
172
- width: t,
173
- height: t,
174
- backgroundImage: `url(${E(r)})`,
175
- backgroundSize: `${100 * f}% ${100 * m}%`,
176
- backgroundPosition: `${100 / (f - 1) * e.x}% ${100 / (m - 1) * e.y}%`
177
- }
178
- }
179
- );
186
+ //#endregion
187
+ //#region src/composed/extensions/emoji-suggestion.tsx
188
+ function D({ emoji: e, set: t, size: n = "1.2em" }) {
189
+ return t === "native" ? /* @__PURE__ */ d("span", {
190
+ style: { fontSize: n },
191
+ children: e.native
192
+ }) : /* @__PURE__ */ d("span", {
193
+ role: "img",
194
+ "aria-label": e.native,
195
+ className: "inline-block",
196
+ style: {
197
+ width: n,
198
+ height: n,
199
+ backgroundImage: `url(${y(t)})`,
200
+ backgroundSize: "6100% 6100%",
201
+ backgroundPosition: `${100 / 60 * e.x}% ${100 / 60 * e.y}%`
202
+ }
203
+ });
180
204
  }
181
- const p = d.forwardRef(
182
- ({ items: e, set: r, command: t }, s) => {
183
- const [a, o] = d.useState(0);
184
- return d.useEffect(() => o(0), [e]), d.useImperativeHandle(s, () => ({
185
- onKeyDown: ({ event: n }) => n.key === "ArrowUp" ? (o((l) => (l + e.length - 1) % e.length), !0) : n.key === "ArrowDown" ? (o((l) => (l + 1) % e.length), !0) : n.key === "Enter" ? (e[a] && t(e[a]), !0) : !1
186
- })), e.length ? /* @__PURE__ */ i("div", { role: "listbox", "aria-label": "Emoji suggestions", className: "z-popover max-h-[200px] overflow-x-hidden overflow-y-auto rounded-ds-md border border-surface-border-strong bg-surface-overlay shadow-raised-hover", children: e.map((n, l) => /* @__PURE__ */ u(
187
- "button",
188
- {
189
- type: "button",
190
- role: "option",
191
- "aria-selected": l === a,
192
- onClick: () => t(n),
193
- className: k(
194
- "flex w-full items-center gap-ds-03 px-ds-04 py-ds-02b text-left text-ds-sm",
195
- l === a ? "bg-surface-raised text-surface-fg" : "text-surface-fg-muted hover:bg-surface-raised"
196
- ),
197
- children: [
198
- /* @__PURE__ */ i(K, { emoji: n, set: r, size: "1.25em" }),
199
- /* @__PURE__ */ u("span", { className: "truncate", children: [
200
- ":",
201
- n.id,
202
- ":"
203
- ] })
204
- ]
205
- },
206
- n.id
207
- )) }) : null;
208
- }
209
- );
210
- p.displayName = "EmojiList";
211
- function T(e) {
212
- return () => {
213
- let r = null, t = null, s = null;
214
- return {
215
- onStart: (a) => {
216
- t = document.createElement("div"), t.style.position = "absolute", t.style.zIndex = "1400";
217
- const o = a.clientRect?.();
218
- o && (t.style.left = `${o.left}px`, t.style.top = `${o.bottom + 4}px`), document.body.appendChild(t), r = j(t), r.render(
219
- /* @__PURE__ */ i(
220
- p,
221
- {
222
- ref: (n) => {
223
- s = n;
224
- },
225
- items: a.items,
226
- set: e,
227
- command: (n) => a.command(n)
228
- }
229
- )
230
- );
231
- },
232
- onUpdate: (a) => {
233
- if (!r || !t) return;
234
- const o = a.clientRect?.();
235
- o && (t.style.left = `${o.left}px`, t.style.top = `${o.bottom + 4}px`), r.render(
236
- /* @__PURE__ */ i(
237
- p,
238
- {
239
- ref: (n) => {
240
- s = n;
241
- },
242
- items: a.items,
243
- set: e,
244
- command: (n) => a.command(n)
245
- }
246
- )
247
- );
248
- },
249
- onKeyDown: (a) => a.event.key === "Escape" ? (t && (r?.unmount(), t.remove(), t = null, r = null), !0) : s?.onKeyDown(a) ?? !1,
250
- onExit: () => {
251
- t && (r?.unmount(), t.remove(), t = null, r = null);
252
- }
253
- };
254
- };
205
+ var O = u.forwardRef(({ items: t, set: n, command: r }, i) => {
206
+ let [a, o] = u.useState(0);
207
+ return u.useEffect(() => o(0), [t]), u.useImperativeHandle(i, () => ({ onKeyDown: ({ event: e }) => e.key === "ArrowUp" ? (o((e) => (e + t.length - 1) % t.length), !0) : e.key === "ArrowDown" ? (o((e) => (e + 1) % t.length), !0) : e.key === "Enter" ? (t[a] && r(t[a]), !0) : !1 })), t.length ? /* @__PURE__ */ d("div", {
208
+ role: "listbox",
209
+ "aria-label": "Emoji suggestions",
210
+ className: "z-popover max-h-[200px] overflow-x-hidden overflow-y-auto rounded-ds-md border border-surface-border-strong bg-surface-overlay shadow-raised-hover",
211
+ children: t.map((t, i) => /* @__PURE__ */ f("button", {
212
+ type: "button",
213
+ role: "option",
214
+ "aria-selected": i === a,
215
+ onClick: () => r(t),
216
+ className: e("flex w-full items-center gap-ds-03 px-ds-04 py-ds-02b text-left text-ds-sm", i === a ? "bg-surface-raised text-surface-fg" : "text-surface-fg-muted hover:bg-surface-raised"),
217
+ children: [/* @__PURE__ */ d(D, {
218
+ emoji: t,
219
+ set: n,
220
+ size: "1.25em"
221
+ }), /* @__PURE__ */ f("span", {
222
+ className: "truncate",
223
+ children: [
224
+ ":",
225
+ t.id,
226
+ ":"
227
+ ]
228
+ })]
229
+ }, t.id))
230
+ }) : null;
231
+ });
232
+ O.displayName = "EmojiList";
233
+ function k(e) {
234
+ return () => {
235
+ let t = null, n = null, r = null;
236
+ return {
237
+ onStart: (i) => {
238
+ n = document.createElement("div"), n.style.position = "absolute", n.style.zIndex = "1400";
239
+ let a = i.clientRect?.();
240
+ a && (n.style.left = `${a.left}px`, n.style.top = `${a.bottom + 4}px`), document.body.appendChild(n), t = h(n), t.render(/* @__PURE__ */ d(O, {
241
+ ref: (e) => {
242
+ r = e;
243
+ },
244
+ items: i.items,
245
+ set: e,
246
+ command: (e) => i.command(e)
247
+ }));
248
+ },
249
+ onUpdate: (i) => {
250
+ if (!t || !n) return;
251
+ let a = i.clientRect?.();
252
+ a && (n.style.left = `${a.left}px`, n.style.top = `${a.bottom + 4}px`), t.render(/* @__PURE__ */ d(O, {
253
+ ref: (e) => {
254
+ r = e;
255
+ },
256
+ items: i.items,
257
+ set: e,
258
+ command: (e) => i.command(e)
259
+ }));
260
+ },
261
+ onKeyDown: (e) => e.event.key === "Escape" ? (n && (t?.unmount(), n.remove(), n = null, t = null), !0) : r?.onKeyDown(e) ?? !1,
262
+ onExit: () => {
263
+ n && (t?.unmount(), n.remove(), n = null, t = null);
264
+ }
265
+ };
266
+ };
255
267
  }
256
- function G(e = "native") {
257
- return $.create({
258
- name: "emojiSuggestion",
259
- addProseMirrorPlugins() {
260
- return [
261
- S({
262
- pluginKey: new R("emojiSuggestion"),
263
- editor: this.editor,
264
- char: ":",
265
- items: async ({ query: r }) => {
266
- const t = await D(e);
267
- return C(t, r, 8);
268
- },
269
- command: ({ editor: r, range: t, props: s }) => {
270
- const a = s;
271
- r.chain().focus().deleteRange(t).insertContent({
272
- type: "emojiNode",
273
- attrs: { id: a.id, native: a.native, set: e, x: a.x, y: a.y }
274
- }).run();
275
- },
276
- render: T(e)
277
- })
278
- ];
279
- }
280
- });
268
+ function A(e = "native") {
269
+ return a.create({
270
+ name: "emojiSuggestion",
271
+ addProseMirrorPlugins() {
272
+ return [s({
273
+ pluginKey: new l("emojiSuggestion"),
274
+ editor: this.editor,
275
+ char: ":",
276
+ items: async ({ query: t }) => w(await S(e), t, 8),
277
+ command: ({ editor: t, range: n, props: r }) => {
278
+ let i = r;
279
+ t.chain().focus().deleteRange(n).insertContent({
280
+ type: "emojiNode",
281
+ attrs: {
282
+ id: i.id,
283
+ native: i.native,
284
+ set: e,
285
+ x: i.x,
286
+ y: i.y
287
+ }
288
+ }).run();
289
+ },
290
+ render: k(e)
291
+ })];
292
+ }
293
+ });
281
294
  }
282
- const b = d.forwardRef(
283
- ({ items: e, command: r }, t) => {
284
- const [s, a] = d.useState(0);
285
- return d.useEffect(() => a(0), [e]), d.useImperativeHandle(t, () => ({
286
- onKeyDown: ({ event: o }) => o.key === "ArrowUp" ? (a((n) => (n + e.length - 1) % e.length), !0) : o.key === "ArrowDown" ? (a((n) => (n + 1) % e.length), !0) : o.key === "Enter" ? (e[s] && r(e[s]), !0) : !1
287
- })), e.length ? /* @__PURE__ */ i("div", { role: "listbox", "aria-label": "Mention suggestions", className: "z-popover overflow-hidden rounded-ds-md border border-surface-border-strong bg-surface-overlay shadow-raised-hover", children: e.map((o, n) => /* @__PURE__ */ u(
288
- "button",
289
- {
290
- type: "button",
291
- role: "option",
292
- "aria-selected": n === s,
293
- onClick: () => r(o),
294
- className: k(
295
- "flex w-full items-center gap-ds-03 px-ds-04 py-ds-02b text-left text-ds-sm",
296
- n === s ? "bg-surface-raised text-surface-fg" : "text-surface-fg-muted hover:bg-surface-raised"
297
- ),
298
- children: [
299
- o.avatar ? /* @__PURE__ */ i("img", { src: o.avatar, alt: "", className: "h-ico-md w-ico-md rounded-ds-full object-cover" }) : /* @__PURE__ */ i("span", { className: "flex h-ico-md w-ico-md items-center justify-center rounded-ds-full bg-accent-2 text-[10px] font-semibold text-accent-11", children: o.label.charAt(0).toUpperCase() }),
300
- /* @__PURE__ */ i("span", { children: o.label })
301
- ]
302
- },
303
- o.id
304
- )) }) : null;
305
- }
306
- );
307
- b.displayName = "MentionList";
308
- function J(e) {
309
- return () => {
310
- let r = null, t = null, s = null;
311
- return {
312
- onStart: (a) => {
313
- t = document.createElement("div"), t.style.position = "absolute", t.style.zIndex = "1400";
314
- const o = a.clientRect?.();
315
- o && (t.style.left = `${o.left}px`, t.style.top = `${o.bottom + 4}px`), document.body.appendChild(t), r = j(t), r.render(
316
- /* @__PURE__ */ i(
317
- b,
318
- {
319
- ref: (n) => {
320
- s = n;
321
- },
322
- items: a.items,
323
- command: (n) => {
324
- a.command({ id: n.id, label: n.label }), e?.(n);
325
- }
326
- }
327
- )
328
- );
329
- },
330
- onUpdate: (a) => {
331
- if (!r || !t) return;
332
- const o = a.clientRect?.();
333
- o && (t.style.left = `${o.left}px`, t.style.top = `${o.bottom + 4}px`), r.render(
334
- /* @__PURE__ */ i(
335
- b,
336
- {
337
- ref: (n) => {
338
- s = n;
339
- },
340
- items: a.items,
341
- command: (n) => {
342
- a.command({ id: n.id, label: n.label }), e?.(n);
343
- }
344
- }
345
- )
346
- );
347
- },
348
- onKeyDown: (a) => a.event.key === "Escape" ? (t && (r?.unmount(), t.remove(), t = null, r = null), !0) : s?.onKeyDown(a) ?? !1,
349
- onExit: () => {
350
- t && (r?.unmount(), t.remove(), t = null, r = null);
351
- }
352
- };
353
- };
295
+ //#endregion
296
+ //#region src/composed/extensions/mention-suggestion.tsx
297
+ var j = u.forwardRef(({ items: t, command: n }, r) => {
298
+ let [i, a] = u.useState(0);
299
+ return u.useEffect(() => a(0), [t]), u.useImperativeHandle(r, () => ({ onKeyDown: ({ event: e }) => e.key === "ArrowUp" ? (a((e) => (e + t.length - 1) % t.length), !0) : e.key === "ArrowDown" ? (a((e) => (e + 1) % t.length), !0) : e.key === "Enter" ? (t[i] && n(t[i]), !0) : !1 })), t.length ? /* @__PURE__ */ d("div", {
300
+ role: "listbox",
301
+ "aria-label": "Mention suggestions",
302
+ className: "z-popover overflow-hidden rounded-ds-md border border-surface-border-strong bg-surface-overlay shadow-raised-hover",
303
+ children: t.map((t, r) => /* @__PURE__ */ f("button", {
304
+ type: "button",
305
+ role: "option",
306
+ "aria-selected": r === i,
307
+ onClick: () => n(t),
308
+ className: e("flex w-full items-center gap-ds-03 px-ds-04 py-ds-02b text-left text-ds-sm", r === i ? "bg-surface-raised text-surface-fg" : "text-surface-fg-muted hover:bg-surface-raised"),
309
+ children: [t.avatar ? /* @__PURE__ */ d("img", {
310
+ src: t.avatar,
311
+ alt: "",
312
+ className: "h-ico-md w-ico-md rounded-ds-full object-cover"
313
+ }) : /* @__PURE__ */ d("span", {
314
+ className: "flex h-ico-md w-ico-md items-center justify-center rounded-ds-full bg-accent-2 text-[10px] font-semibold text-accent-11",
315
+ children: t.label.charAt(0).toUpperCase()
316
+ }), /* @__PURE__ */ d("span", { children: t.label })]
317
+ }, t.id))
318
+ }) : null;
319
+ });
320
+ j.displayName = "MentionList";
321
+ function M(e) {
322
+ return () => {
323
+ let t = null, n = null, r = null;
324
+ return {
325
+ onStart: (i) => {
326
+ n = document.createElement("div"), n.style.position = "absolute", n.style.zIndex = "1400";
327
+ let a = i.clientRect?.();
328
+ a && (n.style.left = `${a.left}px`, n.style.top = `${a.bottom + 4}px`), document.body.appendChild(n), t = h(n), t.render(/* @__PURE__ */ d(j, {
329
+ ref: (e) => {
330
+ r = e;
331
+ },
332
+ items: i.items,
333
+ command: (t) => {
334
+ i.command({
335
+ id: t.id,
336
+ label: t.label
337
+ }), e?.(t);
338
+ }
339
+ }));
340
+ },
341
+ onUpdate: (i) => {
342
+ if (!t || !n) return;
343
+ let a = i.clientRect?.();
344
+ a && (n.style.left = `${a.left}px`, n.style.top = `${a.bottom + 4}px`), t.render(/* @__PURE__ */ d(j, {
345
+ ref: (e) => {
346
+ r = e;
347
+ },
348
+ items: i.items,
349
+ command: (t) => {
350
+ i.command({
351
+ id: t.id,
352
+ label: t.label
353
+ }), e?.(t);
354
+ }
355
+ }));
356
+ },
357
+ onKeyDown: (e) => e.event.key === "Escape" ? (n && (t?.unmount(), n.remove(), n = null, t = null), !0) : r?.onKeyDown(e) ?? !1,
358
+ onExit: () => {
359
+ n && (t?.unmount(), n.remove(), n = null, t = null);
360
+ }
361
+ };
362
+ };
354
363
  }
355
- export {
356
- q as E,
357
- O as F,
358
- J as a,
359
- W as b,
360
- G as c,
361
- D as l
362
- };
364
+ //#endregion
365
+ export { C as a, S as i, A as n, v as o, E as r, M as t };