@jant/core 0.5.1 → 0.5.2

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 (35) hide show
  1. package/dist/{app-D_ke5q_u.js → app-CPVwpmb3.js} +35 -15
  2. package/dist/{app-BpyntjN7.js → app-Z83YzveI.js} +1 -1
  3. package/dist/client/.vite/manifest.json +3 -3
  4. package/dist/client/_assets/{client-DkbGkmgp.js → client-8pp1btGZ.js} +1 -1
  5. package/dist/client/_assets/{client-Hxj-LpVt.css → client-CFegXQty.css} +1 -1
  6. package/dist/client/_assets/{client-auth-BRrao4p4.js → client-auth-Ds3SVvGh.js} +79 -62
  7. package/dist/index.js +1 -1
  8. package/dist/node.js +2 -2
  9. package/package.json +1 -1
  10. package/src/client/__tests__/slash-discovery.test.ts +150 -0
  11. package/src/client/components/__tests__/jant-compose-dialog.test.ts +1 -0
  12. package/src/client/components/__tests__/jant-compose-editor.test.ts +1 -0
  13. package/src/client/components/compose-types.ts +1 -0
  14. package/src/client/components/jant-compose-dialog.ts +8 -0
  15. package/src/client/components/jant-compose-editor.ts +51 -7
  16. package/src/client/slash-discovery-bridge.ts +9 -0
  17. package/src/client/slash-discovery.ts +200 -0
  18. package/src/client/tiptap/slash-commands.ts +5 -0
  19. package/src/client-auth.ts +1 -0
  20. package/src/i18n/locales/public/en.po +5 -0
  21. package/src/i18n/locales/public/en.ts +1 -1
  22. package/src/i18n/locales/public/zh-Hans.po +5 -0
  23. package/src/i18n/locales/public/zh-Hans.ts +1 -1
  24. package/src/i18n/locales/public/zh-Hant.po +5 -0
  25. package/src/i18n/locales/public/zh-Hant.ts +1 -1
  26. package/src/lib/render.tsx +3 -0
  27. package/src/routes/api/__tests__/settings.test.ts +59 -0
  28. package/src/routes/api/settings.ts +19 -0
  29. package/src/routes/pages/new.tsx +6 -0
  30. package/src/styles/ui.css +40 -0
  31. package/src/types/config.ts +5 -0
  32. package/src/types/views.ts +1 -0
  33. package/src/ui/compose/ComposeDialog.tsx +12 -0
  34. package/src/ui/layouts/SiteLayout.tsx +2 -0
  35. package/src/ui/pages/ComposePage.tsx +3 -0
@@ -269,6 +269,11 @@ export const CONFIG_FIELDS = {
269
269
  envOnly: false,
270
270
  internal: true,
271
271
  },
272
+ DISCOVERY_SLASH_COMMAND_AT: {
273
+ defaultValue: "",
274
+ envOnly: false,
275
+ internal: true,
276
+ },
272
277
  ONBOARDING_STATUS: {
273
278
  defaultValue: "pending",
274
279
  envOnly: false,
@@ -253,6 +253,7 @@ export interface SiteLayoutProps {
253
253
  showComposeDialog?: boolean;
254
254
  showHeader?: boolean;
255
255
  composeOpenShortcutDiscovered?: boolean;
256
+ slashCommandDiscovered?: boolean;
256
257
  /** When set, the mobile compose FAB pre-selects this collection. */
257
258
  composeCollectionId?: string;
258
259
  }
@@ -17,6 +17,7 @@ import { getCollectionFormLabels } from "../shared/collection-management-labels.
17
17
  export interface ComposeDialogProps {
18
18
  collections?: Collection[];
19
19
  uploadMaxFileSize?: number;
20
+ slashCommandDiscovered?: boolean;
20
21
  }
21
22
 
22
23
  export interface ComposeFormProps extends ComposeDialogProps {
@@ -28,6 +29,7 @@ export interface ComposeFormProps extends ComposeDialogProps {
28
29
  export const ComposeForm: FC<ComposeFormProps> = ({
29
30
  collections,
30
31
  uploadMaxFileSize,
32
+ slashCommandDiscovered = false,
31
33
  pageMode = false,
32
34
  closeHref,
33
35
  autoRestoreDraft = false,
@@ -741,6 +743,13 @@ export const ComposeForm: FC<ComposeFormProps> = ({
741
743
  "@context: Compose dialog header title when composing a thread",
742
744
  }),
743
745
  ),
746
+ slashHint: i18n._(
747
+ msg({
748
+ message: "Type / for commands",
749
+ comment:
750
+ "@context: First-use hint shown over the compose editor to surface the slash command menu",
751
+ }),
752
+ ),
744
753
  collectionFormLabels: getCollectionFormLabels(i18n),
745
754
  }).replace(/</g, "\\u003c");
746
755
 
@@ -760,6 +769,7 @@ export const ComposeForm: FC<ComposeFormProps> = ({
760
769
  {...(pageMode ? { "page-mode": "" } : {})}
761
770
  {...(closeHref ? { "close-href": closeHref } : {})}
762
771
  {...(autoRestoreDraft ? { "auto-restore-draft": "" } : {})}
772
+ {...(slashCommandDiscovered ? { "slash-command-discovered": "" } : {})}
763
773
  >
764
774
  {/* SSR fallback skeleton */}
765
775
  <div class="compose-dialog-inner">
@@ -773,12 +783,14 @@ export const ComposeForm: FC<ComposeFormProps> = ({
773
783
  export const ComposeDialog: FC<ComposeDialogProps> = ({
774
784
  collections,
775
785
  uploadMaxFileSize,
786
+ slashCommandDiscovered = false,
776
787
  }) => {
777
788
  return (
778
789
  <dialog id="compose-dialog" class="compose-dialog">
779
790
  <ComposeForm
780
791
  collections={collections}
781
792
  uploadMaxFileSize={uploadMaxFileSize}
793
+ slashCommandDiscovered={slashCommandDiscovered}
782
794
  />
783
795
  </dialog>
784
796
  );
@@ -129,6 +129,7 @@ export const SiteLayout: FC<PropsWithChildren<SiteLayoutProps>> = ({
129
129
  showComposeDialog = true,
130
130
  showHeader = true,
131
131
  composeOpenShortcutDiscovered = false,
132
+ slashCommandDiscovered = false,
132
133
  composeCollectionId,
133
134
  children,
134
135
  }) => {
@@ -567,6 +568,7 @@ export const SiteLayout: FC<PropsWithChildren<SiteLayoutProps>> = ({
567
568
  <ComposeDialog
568
569
  collections={collections}
569
570
  uploadMaxFileSize={uploadMaxFileSize}
571
+ slashCommandDiscovered={slashCommandDiscovered}
570
572
  />
571
573
  )}
572
574
  </div>
@@ -8,12 +8,14 @@ export interface ComposePageProps {
8
8
  collections?: Collection[];
9
9
  uploadMaxFileSize?: number;
10
10
  closeHref?: string;
11
+ slashCommandDiscovered?: boolean;
11
12
  }
12
13
 
13
14
  export const ComposePage: FC<ComposePageProps> = ({
14
15
  collections,
15
16
  uploadMaxFileSize,
16
17
  closeHref = "/",
18
+ slashCommandDiscovered = false,
17
19
  }) => {
18
20
  const { i18n } = useLingui();
19
21
  const backLabel = i18n._(
@@ -52,6 +54,7 @@ export const ComposePage: FC<ComposePageProps> = ({
52
54
  pageMode
53
55
  closeHref={closeHref}
54
56
  autoRestoreDraft
57
+ slashCommandDiscovered={slashCommandDiscovered}
55
58
  />
56
59
  </div>
57
60
  </section>