blixify-ui-web 1.2.90 → 1.2.92

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 (61) hide show
  1. package/lib/components/advanced/collapse/index.d.ts +1 -0
  2. package/lib/components/advanced/collapse/index.d.ts.map +1 -1
  3. package/lib/components/advanced/collapse/index.js +4 -1
  4. package/lib/components/advanced/collapse/index.js.map +1 -1
  5. package/lib/components/data/dataTemplate/dataStateModel.d.ts +2 -0
  6. package/lib/components/data/dataTemplate/dataStateModel.d.ts.map +1 -1
  7. package/lib/components/data/dataTemplate/dataStateModel.js.map +1 -1
  8. package/lib/components/data/dataTemplate/index.d.ts.map +1 -1
  9. package/lib/components/data/dataTemplate/index.js +322 -205
  10. package/lib/components/data/dataTemplate/index.js.map +1 -1
  11. package/lib/components/data/dataTemplate/model.d.ts +1 -1
  12. package/lib/components/data/dataTemplate/model.d.ts.map +1 -1
  13. package/lib/components/data/dataTemplate/settingsModal.d.ts +8 -1
  14. package/lib/components/data/dataTemplate/settingsModal.d.ts.map +1 -1
  15. package/lib/components/data/dataTemplate/settingsModal.js +41 -3
  16. package/lib/components/data/dataTemplate/settingsModal.js.map +1 -1
  17. package/lib/components/data/dataTemplate/spaceModel.d.ts +23 -1
  18. package/lib/components/data/dataTemplate/spaceModel.d.ts.map +1 -1
  19. package/lib/components/data/listModule.d.ts.map +1 -1
  20. package/lib/components/data/listModule.js +13 -0
  21. package/lib/components/data/listModule.js.map +1 -1
  22. package/lib/components/data/readQuery/index.d.ts +12 -0
  23. package/lib/components/data/readQuery/index.d.ts.map +1 -1
  24. package/lib/components/data/readQuery/index.js +2 -0
  25. package/lib/components/data/readQuery/index.js.map +1 -1
  26. package/lib/components/data/readQueryHoc/index.d.ts.map +1 -1
  27. package/lib/components/data/readQueryHoc/index.js +7 -0
  28. package/lib/components/data/readQueryHoc/index.js.map +1 -1
  29. package/lib/components/display/filePreview/index.d.ts +54 -0
  30. package/lib/components/display/filePreview/index.d.ts.map +1 -0
  31. package/lib/components/display/filePreview/index.js +120 -0
  32. package/lib/components/display/filePreview/index.js.map +1 -0
  33. package/lib/components/display/newList/index.d.ts +3 -2
  34. package/lib/components/display/newList/index.d.ts.map +1 -1
  35. package/lib/components/display/newList/index.js +1 -1
  36. package/lib/components/display/newList/index.js.map +1 -1
  37. package/lib/components/display/newTable/index.d.ts +4 -2
  38. package/lib/components/display/newTable/index.d.ts.map +1 -1
  39. package/lib/components/display/newTable/index.js +30 -2
  40. package/lib/components/display/newTable/index.js.map +1 -1
  41. package/lib/components/display/tag/index.d.ts +2 -1
  42. package/lib/components/display/tag/index.d.ts.map +1 -1
  43. package/lib/components/display/tag/index.js.map +1 -1
  44. package/lib/components/display/tag/utils.d.ts +5 -0
  45. package/lib/components/display/tag/utils.d.ts.map +1 -1
  46. package/lib/components/display/tag/utils.js +5 -0
  47. package/lib/components/display/tag/utils.js.map +1 -1
  48. package/lib/components/index.d.ts +2 -0
  49. package/lib/components/index.d.ts.map +1 -1
  50. package/lib/components/index.js +7 -2
  51. package/lib/components/index.js.map +1 -1
  52. package/lib/components/input/markdown/index.d.ts +9 -0
  53. package/lib/components/input/markdown/index.d.ts.map +1 -1
  54. package/lib/components/input/markdown/index.js +198 -3
  55. package/lib/components/input/markdown/index.js.map +1 -1
  56. package/lib/components/navigation/tabs/index.d.ts +2 -0
  57. package/lib/components/navigation/tabs/index.d.ts.map +1 -1
  58. package/lib/components/navigation/tabs/index.js +11 -2
  59. package/lib/components/navigation/tabs/index.js.map +1 -1
  60. package/lib/tail.css +1 -1
  61. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BlogSection = exports.BannerAction = exports.Banner = exports.ActionSection = exports.WriteQuery = exports.parseWorkspaceSettings = exports.parseSpaceToDataStructure = exports.parseServerId = exports.handleAPIEncryption = exports.ReadQueryHoc = exports.ReadQuery = exports.QueryForm = exports.renderFlexFilterConditions = exports.FlexFilter = exports.DataTemplateWrapper = exports.DataTemplate = exports.DataReference = exports.DataGraph = exports.ChatDashboard = exports.ChatBase = exports.ChatAnchor = exports.TreemapChart = exports.StatsCard = exports.RangeBarChart = exports.RadialBar = exports.RadarChart = exports.PolarAreaChart = exports.PieChart = exports.LineChart = exports.HeatmapChart = exports.GanttChart = exports.Card = exports.BubbleChart = exports.BoxPlotChart = exports.BarChart = exports.AreaChart = exports.SignUpTemplate = exports.SignInTemplate = exports.BareSignUp = exports.BareSignIn = exports.PopUp = exports.InfoWindow = exports.Collapse = exports.Toggle = exports.TextButton = exports.Slider = exports.RadioList = exports.IconButton = exports.ButtonGroup = exports.Button = void 0;
4
- exports.NetPromoterScore = exports.MonthYearPicker = exports.MarkdownInput = exports.Form = exports.InputDatePicker = exports.Checkbox = exports.Address = exports.NewCalendar = exports.NewKanban = exports.NewTable = exports.NewPagination = exports.NewFeeds = exports.NewListRow = exports.NewList = exports.Tag = exports.Table = exports.Stepper = exports.Progress = exports.Notification = exports.Modal = exports.MapView = exports.Loading = exports.List = exports.Grid = exports.FlexTable = exports.Feeds = exports.EmptyState = exports.Drawer = exports.DetailList = exports.Clipboard = exports.Calendar = exports.Alert = exports.Teams = exports.SectionList = exports.RightContent = exports.Pricing = exports.Onboarding = exports.LogoCloud = exports.LeftContent = exports.ImageZoom = exports.ImageGallery = exports.IconList = exports.HeroSection = exports.GoogleReview = exports.FooterSection = exports.FileViewer = exports.FileGrid = exports.FAQContent = exports.DesignList = exports.CarouselSection = void 0;
5
- exports.Text = exports.Link = exports.Container = exports.Column = exports.Tabs = exports.LeftNav = exports.Header = exports.Breadcrumb = exports.BottomTab = exports.Bars = exports.UploadInput = exports.TextInput = exports.TextArea = exports.Signature = exports.Select = exports.Rating = void 0;
4
+ exports.InputDatePicker = exports.Checkbox = exports.Address = exports.NewCalendar = exports.NewKanban = exports.NewTable = exports.NewPagination = exports.NewFeeds = exports.NewListRow = exports.NewList = exports.Tag = exports.Table = exports.Stepper = exports.Progress = exports.Notification = exports.Modal = exports.MapView = exports.Loading = exports.List = exports.Grid = exports.FlexTable = exports.Feeds = exports.handleResolveFileLabel = exports.handleResolveFileKind = exports.handleFormatFileSize = exports.FilePreview = exports.EmptyState = exports.Drawer = exports.DetailList = exports.Clipboard = exports.Calendar = exports.Alert = exports.Teams = exports.SectionList = exports.RightContent = exports.Pricing = exports.Onboarding = exports.LogoCloud = exports.LeftContent = exports.ImageZoom = exports.ImageGallery = exports.IconList = exports.HeroSection = exports.GoogleReview = exports.FooterSection = exports.FileViewer = exports.FileGrid = exports.FAQContent = exports.DesignList = exports.CarouselSection = void 0;
5
+ exports.Text = exports.Link = exports.Container = exports.Column = exports.Tabs = exports.LeftNav = exports.Header = exports.Breadcrumb = exports.BottomTab = exports.Bars = exports.UploadInput = exports.TextInput = exports.TextArea = exports.Signature = exports.Select = exports.Rating = exports.NetPromoterScore = exports.MonthYearPicker = exports.MarkdownInput = exports.Form = void 0;
6
6
  var button_1 = require("./action/button");
7
7
  Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return button_1.Button; } });
8
8
  var buttonGroup_1 = require("./action/buttonGroup");
@@ -147,6 +147,11 @@ var drawer_1 = require("./display/drawer");
147
147
  Object.defineProperty(exports, "Drawer", { enumerable: true, get: function () { return drawer_1.Drawer; } });
148
148
  var emptyState_1 = require("./display/emptyState");
149
149
  Object.defineProperty(exports, "EmptyState", { enumerable: true, get: function () { return emptyState_1.EmptyState; } });
150
+ var filePreview_1 = require("./display/filePreview");
151
+ Object.defineProperty(exports, "FilePreview", { enumerable: true, get: function () { return filePreview_1.FilePreview; } });
152
+ Object.defineProperty(exports, "handleFormatFileSize", { enumerable: true, get: function () { return filePreview_1.handleFormatFileSize; } });
153
+ Object.defineProperty(exports, "handleResolveFileKind", { enumerable: true, get: function () { return filePreview_1.handleResolveFileKind; } });
154
+ Object.defineProperty(exports, "handleResolveFileLabel", { enumerable: true, get: function () { return filePreview_1.handleResolveFileLabel; } });
150
155
  var feeds_1 = require("./display/feeds");
151
156
  Object.defineProperty(exports, "Feeds", { enumerable: true, get: function () { return feeds_1.Feeds; } });
152
157
  var flexTable_1 = require("./display/flexTable");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,15 @@ interface Props {
30
30
  uploadEndpoint?: string;
31
31
  enableImageUpload?: boolean;
32
32
  enableVideoUpload?: boolean;
33
+ /**
34
+ * Offer a File entry in the `/` menu for anything that is not media.
35
+ *
36
+ * INFO: off by default and separate from the media flags on purpose. A host
37
+ * that has not decided where files land — and, for a published document,
38
+ * whether a reader may fetch them — should not start accepting them because
39
+ * it happened to allow images.
40
+ */
41
+ enableFileUpload?: boolean;
33
42
  darkMode?: boolean;
34
43
  readOnly?: boolean;
35
44
  customElement?: ReactElement;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/input/markdown/index.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,EACZ,YAAY,EAQb,MAAM,OAAO,CAAC;AA40Bf,UAAU,KAAK;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,GAAG,CAAC;KACZ,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B;;;;OAIG;IACH,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;KAAE,KAC9B,YAAY,GAAG,IAAI,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAChE;;;OAGG;IACH,cAAc,CAAC,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX;;;;WAIG;QACH,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5E,EAAE,CAAC;CACL;AAy9CD,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,8EAQxB,mBAAmB,sBA+BrB,CAAC;AAEF,eAAO,MAAM,aAAa,oFAiBxB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/input/markdown/index.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,EACZ,YAAY,EAQb,MAAM,OAAO,CAAC;AAq7Bf,UAAU,KAAK;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,GAAG,CAAC;KACZ,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B;;;;OAIG;IACH,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;KAAE,KAC9B,YAAY,GAAG,IAAI,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAChE;;;OAGG;IACH,cAAc,CAAC,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX;;;;WAIG;QACH,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5E,EAAE,CAAC;CACL;AAikDD,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,8EAQxB,mBAAmB,sBAuDrB,CAAC;AAEF,eAAO,MAAM,aAAa,oFAiBxB,CAAC"}
@@ -88,6 +88,7 @@ var PhotoIcon_1 = __importDefault(require("@heroicons/react/24/outline/PhotoIcon
88
88
  var QuestionMarkCircleIcon_1 = __importDefault(require("@heroicons/react/24/solid/QuestionMarkCircleIcon"));
89
89
  var TableCellsIcon_1 = __importDefault(require("@heroicons/react/24/solid/TableCellsIcon"));
90
90
  var core_1 = require("@tiptap/core");
91
+ var filePreview_1 = require("../../display/filePreview");
91
92
  var state_1 = require("@tiptap/pm/state");
92
93
  var extension_image_1 = __importDefault(require("@tiptap/extension-image"));
93
94
  var extensions_1 = require("@tiptap/extensions");
@@ -228,6 +229,16 @@ turndownService.addRule("video", {
228
229
  return "<video src=\"".concat(src, "\" controls style=\"max-width: 100%; height: auto;\"></video>");
229
230
  },
230
231
  });
232
+ turndownService.addRule("fileAttachment", {
233
+ filter: function (node) {
234
+ return node.nodeName === "DIV" && !!node.getAttribute("data-file-src");
235
+ },
236
+ replacement: function (_content, node) {
237
+ var el = node;
238
+ var attr = function (name) { return el.getAttribute(name) || ""; };
239
+ return "<div data-file-src=\"".concat(attr("data-file-src"), "\" data-file-name=\"").concat(attr("data-file-name"), "\" data-file-size=\"").concat(attr("data-file-size"), "\" data-file-type=\"").concat(attr("data-file-type"), "\"></div>");
240
+ },
241
+ });
231
242
  turndownService.addRule("spaceEmbed", {
232
243
  filter: function (node) {
233
244
  return node.nodeName === "DIV" && !!node.getAttribute("data-space-id");
@@ -598,6 +609,83 @@ var Video = core_1.Node.create({
598
609
  };
599
610
  },
600
611
  });
612
+ var FileAttachmentComponent = function (_a) {
613
+ var node = _a.node;
614
+ var _b = node.attrs, src = _b.src, fileName = _b.fileName, fileSize = _b.fileSize, mimeType = _b.mimeType;
615
+ // INFO: the same card a grid of files draws. The type decision, the label
616
+ // cleanup and the pending state all live in FilePreview, so an attachment in
617
+ // a document and the same file in a table cannot drift apart.
618
+ return (react_2.default.createElement(react_1.NodeViewWrapper, { className: "my-2" },
619
+ react_2.default.createElement(filePreview_1.FilePreview, { file: { fileName: src, label: fileName, mimeType: mimeType, fileSize: fileSize } })));
620
+ };
621
+ /**
622
+ * INFO: a file that is not media. An image previews because an image IS its
623
+ * preview; a pdf or a spreadsheet has no equivalent, so it gets a card — one
624
+ * card for everything non-media rather than a branch per format. An inline pdf
625
+ * viewer can arrive behind this same node later; starting with per-format
626
+ * special cases would mean unpicking them to get there.
627
+ *
628
+ * The card is deliberately shaped like the spaceEmbed one, so a document
629
+ * holding both does not look like two different products.
630
+ */
631
+ var FileAttachment = core_1.Node.create({
632
+ name: "fileAttachment",
633
+ group: "block",
634
+ atom: true,
635
+ addAttributes: function () {
636
+ return {
637
+ src: { default: null },
638
+ fileName: { default: null },
639
+ fileSize: { default: null },
640
+ mimeType: { default: null },
641
+ };
642
+ },
643
+ parseHTML: function () {
644
+ return [
645
+ {
646
+ tag: "div[data-file-src]",
647
+ getAttrs: function (dom) { return ({
648
+ src: dom.getAttribute("data-file-src"),
649
+ fileName: dom.getAttribute("data-file-name"),
650
+ fileSize: dom.getAttribute("data-file-size")
651
+ ? Number(dom.getAttribute("data-file-size"))
652
+ : null,
653
+ mimeType: dom.getAttribute("data-file-type"),
654
+ }); },
655
+ },
656
+ ];
657
+ },
658
+ renderHTML: function (_a) {
659
+ var _b, _c, _d, _e;
660
+ var HTMLAttributes = _a.HTMLAttributes;
661
+ // INFO: the same route <video> and the space embed take — markdown-it runs
662
+ // with html:true, so this element survives the trip out to markdown and
663
+ // parseHTML picks it up again on the way back.
664
+ return [
665
+ "div",
666
+ {
667
+ "data-file-src": (_b = HTMLAttributes.src) !== null && _b !== void 0 ? _b : "",
668
+ "data-file-name": (_c = HTMLAttributes.fileName) !== null && _c !== void 0 ? _c : "",
669
+ "data-file-size": (_d = HTMLAttributes.fileSize) !== null && _d !== void 0 ? _d : "",
670
+ "data-file-type": (_e = HTMLAttributes.mimeType) !== null && _e !== void 0 ? _e : "",
671
+ },
672
+ ];
673
+ },
674
+ addNodeView: function () {
675
+ return (0, react_1.ReactNodeViewRenderer)(FileAttachmentComponent);
676
+ },
677
+ addCommands: function () {
678
+ var _this = this;
679
+ return {
680
+ setFileAttachment: function (options) {
681
+ return function (_a) {
682
+ var commands = _a.commands;
683
+ return commands.insertContent({ type: _this.name, attrs: options });
684
+ };
685
+ },
686
+ };
687
+ },
688
+ });
601
689
  // INFO: an embedded space — a live child page rendered inside the note rather
602
690
  // than a link out to it. The node holds only the id; what a "space" actually is
603
691
  // stays with the consumer through renderEmbed, so this file never has to import
@@ -858,7 +946,7 @@ var SlashMenuList = function (_a) {
858
946
  react_2.default.createElement("span", { className: "text-sm ".concat(darkMode ? "text-gray-200" : "text-gray-700") }, item.label))); })) : (react_2.default.createElement("div", { className: "px-4 py-2 text-sm text-gray-500" }, "No results"))));
859
947
  };
860
948
  var MarkdownInputContent = function (_a) {
861
- var innerRef = _a.innerRef, id = _a.id, value = _a.value, label = _a.label, subLabel = _a.subLabel, labelExtra = _a.labelExtra, infoElement = _a.infoElement, placeholder = _a.placeholder, optional = _a.optional, disabled = _a.disabled, containerClassName = _a.containerClassName, heightClassName = _a.heightClassName, borderless = _a.borderless, onChange = _a.onChange, compress = _a.compress, lib = _a.lib, uploadEndpoint = _a.uploadEndpoint, enableImageUpload = _a.enableImageUpload, enableVideoUpload = _a.enableVideoUpload, darkMode = _a.darkMode, readOnly = _a.readOnly, customElement = _a.customElement, renderEmbed = _a.renderEmbed, onRequestRemove = _a.onRequestRemove, customCommands = _a.customCommands;
949
+ var innerRef = _a.innerRef, id = _a.id, value = _a.value, label = _a.label, subLabel = _a.subLabel, labelExtra = _a.labelExtra, infoElement = _a.infoElement, placeholder = _a.placeholder, optional = _a.optional, disabled = _a.disabled, containerClassName = _a.containerClassName, heightClassName = _a.heightClassName, borderless = _a.borderless, onChange = _a.onChange, compress = _a.compress, lib = _a.lib, uploadEndpoint = _a.uploadEndpoint, enableImageUpload = _a.enableImageUpload, enableVideoUpload = _a.enableVideoUpload, enableFileUpload = _a.enableFileUpload, darkMode = _a.darkMode, readOnly = _a.readOnly, customElement = _a.customElement, renderEmbed = _a.renderEmbed, onRequestRemove = _a.onRequestRemove, customCommands = _a.customCommands;
862
950
  var _b = (0, react_2.useState)(""), error = _b[0], setError = _b[1];
863
951
  var _c = (0, react_2.useState)(false), showTableMenu = _c[0], setShowTableMenu = _c[1];
864
952
  var _d = (0, react_2.useState)(3), tableCols = _d[0], setTableCols = _d[1];
@@ -1022,6 +1110,7 @@ var MarkdownInputContent = function (_a) {
1022
1110
  getRenderEmbed: function () { return renderEmbedRef.current; },
1023
1111
  getOnRequestRemove: function () { return onRequestRemoveRef.current; },
1024
1112
  }),
1113
+ FileAttachment,
1025
1114
  TrailingParagraph,
1026
1115
  extension_table_1.Table.configure({
1027
1116
  resizable: !readOnly,
@@ -1179,6 +1268,60 @@ var MarkdownInputContent = function (_a) {
1179
1268
  },
1180
1269
  },
1181
1270
  });
1271
+ /**
1272
+ * INFO: routed to the handlers the toolbar and the drop target already use,
1273
+ * so an image inserted from the slash menu is the same image inserted any
1274
+ * other way — one upload path, not a third.
1275
+ */
1276
+ var handlePickMedia = (0, react_2.useCallback)(function (commandEditor, accept) {
1277
+ var input = document.createElement("input");
1278
+ input.type = "file";
1279
+ input.accept = accept;
1280
+ input.onchange = function () {
1281
+ var _a, _b, _c;
1282
+ var file = (_a = input.files) === null || _a === void 0 ? void 0 : _a[0];
1283
+ if (!file || !commandEditor || commandEditor.isDestroyed)
1284
+ return;
1285
+ if (file.type.startsWith("video/"))
1286
+ (_b = videoUploadHandlerRef.current) === null || _b === void 0 ? void 0 : _b.call(videoUploadHandlerRef, file);
1287
+ else
1288
+ (_c = uploadHandlerRef.current) === null || _c === void 0 ? void 0 : _c.call(uploadHandlerRef, file);
1289
+ };
1290
+ input.click();
1291
+ }, []);
1292
+ /**
1293
+ * INFO: the file rides the SAME pending mechanism as an image. The blob url
1294
+ * goes into the document and the File into pendingImagesRef, and
1295
+ * uploadPendingImages rewrites any occurrence of that url in the markdown —
1296
+ * it is a string replacement, not image-specific. So a host that already
1297
+ * flushes pending media gets attachments with no second upload path and no
1298
+ * change on its side beyond enabling them.
1299
+ */
1300
+ var handlePickFile = (0, react_2.useCallback)(function (commandEditor) {
1301
+ var input = document.createElement("input");
1302
+ input.type = "file";
1303
+ input.onchange = function () {
1304
+ var _a;
1305
+ var file = (_a = input.files) === null || _a === void 0 ? void 0 : _a[0];
1306
+ if (!file || !commandEditor || commandEditor.isDestroyed)
1307
+ return;
1308
+ var blobUrl = URL.createObjectURL(file);
1309
+ updatePendingImages(function (map) {
1310
+ map.set(blobUrl, file);
1311
+ });
1312
+ commandEditor
1313
+ .chain()
1314
+ .focus()
1315
+ .setFileAttachment({
1316
+ src: blobUrl,
1317
+ fileName: file.name,
1318
+ fileSize: file.size,
1319
+ mimeType: file.type,
1320
+ })
1321
+ .run();
1322
+ };
1323
+ input.click();
1324
+ }, [updatePendingImages]);
1182
1325
  (0, react_2.useEffect)(function () {
1183
1326
  if (editor) {
1184
1327
  editorRef.current = editor;
@@ -1356,7 +1499,40 @@ var MarkdownInputContent = function (_a) {
1356
1499
  var query_1 = currentLine.slice(slashIndex + 1).toLowerCase();
1357
1500
  // INFO: the host app's own actions sit after the formatting commands —
1358
1501
  // creating a database is not something this component can do itself
1359
- var availableCommands = __spreadArray(__spreadArray([], slashCommands, true), (customCommands !== null && customCommands !== void 0 ? customCommands : []).map(function (eachCommand, index) {
1502
+ var availableCommands = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], slashCommands, true), (enableImageUpload
1503
+ ? [
1504
+ {
1505
+ id: "image",
1506
+ label: "Image",
1507
+ icon: "🖼",
1508
+ command: function (commandEditor) {
1509
+ return handlePickMedia(commandEditor, "image/*");
1510
+ },
1511
+ },
1512
+ ]
1513
+ : []), true), (enableVideoUpload
1514
+ ? [
1515
+ {
1516
+ id: "video",
1517
+ label: "Video",
1518
+ icon: "🎬",
1519
+ command: function (commandEditor) {
1520
+ return handlePickMedia(commandEditor, "video/*");
1521
+ },
1522
+ },
1523
+ ]
1524
+ : []), true), (enableFileUpload
1525
+ ? [
1526
+ {
1527
+ id: "file",
1528
+ label: "File",
1529
+ icon: "📎",
1530
+ command: function (commandEditor) {
1531
+ return handlePickFile(commandEditor);
1532
+ },
1533
+ },
1534
+ ]
1535
+ : []), true), (customCommands !== null && customCommands !== void 0 ? customCommands : []).map(function (eachCommand, index) {
1360
1536
  var _a;
1361
1537
  return ({
1362
1538
  id: "custom-".concat(index),
@@ -1837,9 +2013,28 @@ var MarkdownStatic = function (_a) {
1837
2013
  var defaultClassName = "relative z-0";
1838
2014
  if (containerClassName)
1839
2015
  defaultClassName += " ".concat(containerClassName);
2016
+ /**
2017
+ * INFO: an attachment is stored as an empty `<div data-file-src>`, and this
2018
+ * view sets raw html — so without this it renders as nothing at all, which is
2019
+ * exactly how the space embed used to disappear from a published page. The
2020
+ * div is turned into the same card the editor draws.
2021
+ */
2022
+ var handleRenderAttachments = function (rendered) {
2023
+ return rendered.replace(/<div data-file-src="([^"]*)" data-file-name="([^"]*)" data-file-size="([^"]*)" data-file-type="[^"]*"><\/div>/g, function (_match, src, name, size) {
2024
+ var label = name || "Attachment";
2025
+ var readable = (0, filePreview_1.handleFormatFileSize)(Number(size));
2026
+ // INFO: a blob url belongs to the session that made it, so a stored one
2027
+ // is a document saved before its upload finished — shown, not linked.
2028
+ if (!src || src.startsWith("blob:"))
2029
+ return "<div class=\"my-2 flex w-full flex-row items-center gap-x-3 rounded-md border border-gray-200 px-3 py-2 not-prose\"><span class=\"truncate text-sm font-medium text-gray-500\">".concat(label, "</span></div>");
2030
+ return "<a href=\"".concat(src, "\" target=\"_blank\" rel=\"noreferrer\" download class=\"my-2 flex w-full flex-row items-center gap-x-3 rounded-md border border-gray-200 px-3 py-2 no-underline hover:bg-gray-50 not-prose\"><span class=\"truncate text-sm font-medium text-gray-900\">").concat(label, "</span><span class=\"grow\"></span><span class=\"shrink-0 text-xs text-gray-400\">").concat(readable, "</span></a>");
2031
+ });
2032
+ };
1840
2033
  // INFO: markdown-it is fast (~ms/field); memoize on value so a read view with
1841
2034
  // many fields never re-parses on re-render — the source of the repeated freeze.
1842
- var html = (0, react_2.useMemo)(function () { return (value ? md.render(value) : ""); }, [value]);
2035
+ var html = (0, react_2.useMemo)(function () { return (value ? handleRenderAttachments(md.render(value)) : ""); },
2036
+ // eslint-disable-next-line react-hooks/exhaustive-deps
2037
+ [value]);
1843
2038
  return (react_2.default.createElement("div", { className: defaultClassName },
1844
2039
  react_2.default.createElement("div", { className: "flex flex-col" },
1845
2040
  react_2.default.createElement("label", { className: "block text-sm font-medium ".concat(labelColor) },