@optiaxiom/proteus 1.1.6 → 1.1.8

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 (20) hide show
  1. package/dist/esm/assets/src/proteus-chart/{ProteusChart.css.ts.vanilla-BYvPGdWv.css → ProteusChart.css.ts.vanilla-wz-9ZWQ9.css} +2 -2
  2. package/dist/esm/assets/src/proteus-chart/{ProteusChartTooltipContent.css.ts.vanilla-CykN-vdX.css → ProteusChartTooltipContent.css.ts.vanilla-BiWAurC6.css} +2 -2
  3. package/dist/esm/assets/src/proteus-document/{ProteusDocumentShell.css.ts.vanilla-CnC9TXlJ.css → ProteusDocumentShell.css.ts.vanilla-C3_s_0xh.css} +2 -2
  4. package/dist/esm/assets/src/proteus-image-carousel/{ProteusImageCarousel.css.ts.vanilla-CPqn1tWx.css → ProteusImageCarousel.css.ts.vanilla-DzSZh5fH.css} +2 -2
  5. package/dist/esm/assets/src/proteus-markdown/ProteusMarkdown.css.ts.vanilla-Dk7yaowa.css +61 -0
  6. package/dist/esm/assets/src/proteus-question/{ProteusQuestion.css.ts.vanilla-DXJt60Ji.css → ProteusQuestion.css.ts.vanilla-DNr3jTZj.css} +2 -2
  7. package/dist/esm/index.js +2 -1
  8. package/dist/esm/proteus-chart/ProteusChart-css.js +1 -1
  9. package/dist/esm/proteus-chart/ProteusChartTooltipContent-css.js +1 -1
  10. package/dist/esm/proteus-document/ProteusDocumentShell-css.js +1 -1
  11. package/dist/esm/proteus-element/ProteusElement.js +2 -0
  12. package/dist/esm/proteus-image-carousel/ProteusImageCarousel-css.js +1 -1
  13. package/dist/esm/proteus-markdown/ProteusMarkdown-css.js +29 -0
  14. package/dist/esm/proteus-markdown/ProteusMarkdown.js +120 -0
  15. package/dist/esm/proteus-question/ProteusQuestion-css.js +1 -1
  16. package/dist/esm/proteus-question/ProteusQuestion.js +1 -1
  17. package/dist/esm/schema/public-schema.js +75 -0
  18. package/dist/esm/schema/runtime-schema.js +74 -0
  19. package/dist/index.d.ts +22 -1
  20. package/package.json +4 -2
@@ -1,5 +1,5 @@
1
- @layer optiaxiom.dx1887;
2
- @layer optiaxiom.dx1887 {
1
+ @layer optiaxiom._1ncqv18;
2
+ @layer optiaxiom._1ncqv18 {
3
3
  .ProteusChart__jmlqij1 {
4
4
  border-radius: 16px;
5
5
  }
@@ -1,5 +1,5 @@
1
- @layer optiaxiom.dx1887;
2
- @layer optiaxiom.dx1887 {
1
+ @layer optiaxiom._1ncqv18;
2
+ @layer optiaxiom._1ncqv18 {
3
3
  .ProteusChartTooltipContent__1gsvq810 {
4
4
  min-width: 128px;
5
5
  position: absolute;
@@ -1,5 +1,5 @@
1
- @layer optiaxiom.dx1887;
2
- @layer optiaxiom.dx1887 {
1
+ @layer optiaxiom._1ncqv18;
2
+ @layer optiaxiom._1ncqv18 {
3
3
  .ProteusDocumentShell__vpuvfj1 {
4
4
  margin: -4px;
5
5
  }
@@ -1,5 +1,5 @@
1
- @layer optiaxiom.dx1887;
2
- @layer optiaxiom.dx1887 {
1
+ @layer optiaxiom._1ncqv18;
2
+ @layer optiaxiom._1ncqv18 {
3
3
  .ProteusImageCarousel__1t6qej70 {
4
4
  outline: none;
5
5
  user-select: none;
@@ -0,0 +1,61 @@
1
+ @layer optiaxiom._1ncqv18;
2
+ @layer optiaxiom._1ncqv18 {
3
+ .ProteusMarkdown__1ibq5ae0 > * {
4
+ margin-bottom: 1em;
5
+ margin-top: 0;
6
+ }
7
+ .ProteusMarkdown__1ibq5ae0 li > * {
8
+ margin-bottom: 1em;
9
+ margin-top: 1em;
10
+ }
11
+ .ProteusMarkdown__1ibq5ae0 li:first-child > * {
12
+ margin-top: 0;
13
+ }
14
+ :is(.ProteusMarkdown__1ibq5ae0, .ProteusMarkdown__1ibq5ae0 li) > :is(h1, h2, h3, h4, h5, h6) {
15
+ margin-bottom: 0.6em;
16
+ margin-top: 1.2em;
17
+ }
18
+ .ProteusMarkdown__1ibq5ae0 > .ProteusMarkdown__1ibq5ae1 {
19
+ margin-bottom: 1em;
20
+ margin-top: 1em;
21
+ }
22
+ :is(.ProteusMarkdown__1ibq5ae0, .ProteusMarkdown__1ibq5ae0 li) > :is(h1, h2, h3, h4, h5, h6) + * {
23
+ margin-top: 0;
24
+ }
25
+ .ProteusMarkdown__1ibq5ae0 > :has(+ .ProteusMarkdown__1ibq5ae1), :is(.ProteusMarkdown__1ibq5ae0, .ProteusMarkdown__1ibq5ae0 li) > :last-child {
26
+ margin-bottom: 0;
27
+ }
28
+ .ProteusMarkdown__1ibq5ae0 > .ProteusMarkdown__1ibq5ae1 + *, .ProteusMarkdown__1ibq5ae0 > :first-child {
29
+ margin-top: 0;
30
+ }
31
+ .ProteusMarkdown__1ibq5ae2 {
32
+ margin-bottom: 2em;
33
+ margin-top: 2em;
34
+ }
35
+ .ProteusMarkdown__1ibq5ae3 {
36
+ list-style-type: decimal;
37
+ padding-inline-start: 1.5em;
38
+ }
39
+ .ProteusMarkdown__1ibq5ae4 {
40
+ list-style-type: disc;
41
+ padding-inline-start: 1.5em;
42
+ }
43
+ .ProteusMarkdown__1ibq5ae5 code {
44
+ background-color: transparent;
45
+ border-radius: 0;
46
+ padding: 0;
47
+ }
48
+ .ProteusMarkdown__1ibq5ae6 {
49
+ background-color: var(--ax-colors-bg-secondary);
50
+ border-radius: var(--ax-borderRadius-md);
51
+ font-size: 85%;
52
+ font-variant-ligatures: none;
53
+ padding: 0.2em 0.4em;
54
+ white-space: break-spaces;
55
+ }
56
+ .ProteusMarkdown__1ibq5ae7 {
57
+ display: inline-block;
58
+ max-width: 100%;
59
+ vertical-align: text-bottom;
60
+ }
61
+ }
@@ -1,5 +1,5 @@
1
- @layer optiaxiom.dx1887;
2
- @layer optiaxiom.dx1887 {
1
+ @layer optiaxiom._1ncqv18;
2
+ @layer optiaxiom._1ncqv18 {
3
3
  .ProteusQuestion__8f590p0 {
4
4
  outline: none;
5
5
  }
package/dist/esm/index.js CHANGED
@@ -13,6 +13,7 @@ import { ProteusInput } from "./proteus-input/ProteusInput.js";
13
13
  import { ProteusLength } from "./proteus-length/ProteusLength.js";
14
14
  import { ProteusMapIndex } from "./proteus-map-index/ProteusMapIndex.js";
15
15
  import { ProteusMap } from "./proteus-map/ProteusMap.js";
16
+ import { ProteusMarkdown } from "./proteus-markdown/ProteusMarkdown.js";
16
17
  import { ProteusPillMenu } from "./proteus-pill-menu/ProteusPillMenu.js";
17
18
  import { ProteusRichTextEditor } from "./proteus-rich-text-editor/ProteusRichTextEditor.js";
18
19
  import { ProteusSelect } from "./proteus-select/ProteusSelect.js";
@@ -20,4 +21,4 @@ import { ProteusShow } from "./proteus-show/ProteusShow.js";
20
21
  import { ProteusTextarea } from "./proteus-textarea/ProteusTextarea.js";
21
22
  import { ProteusDocumentShell } from "./proteus-document/ProteusDocumentShell.js";
22
23
  import { ProteusDocumentRenderer } from "./proteus-document/ProteusDocumentRenderer.js";
23
- export { ProteusAction, ProteusBridge, ProteusChart, ProteusDataTable, ProteusDateInput, ProteusDocumentRenderer, ProteusDocumentShell, ProteusFederated, ProteusFileUpload, ProteusImage, ProteusImageCarousel, ProteusInput, ProteusLength, ProteusMap, ProteusMapIndex, ProteusPillMenu, ProteusRichTextEditor, ProteusSelect, ProteusShow, ProteusTextarea, safeParseDocument, useProteusValue };
24
+ export { ProteusAction, ProteusBridge, ProteusChart, ProteusDataTable, ProteusDateInput, ProteusDocumentRenderer, ProteusDocumentShell, ProteusFederated, ProteusFileUpload, ProteusImage, ProteusImageCarousel, ProteusInput, ProteusLength, ProteusMap, ProteusMapIndex, ProteusMarkdown, ProteusPillMenu, ProteusRichTextEditor, ProteusSelect, ProteusShow, ProteusTextarea, safeParseDocument, useProteusValue };
@@ -1,4 +1,4 @@
1
- import "./../assets/src/proteus-chart/ProteusChart.css.ts.vanilla-BYvPGdWv.css";
1
+ import "./../assets/src/proteus-chart/ProteusChart.css.ts.vanilla-wz-9ZWQ9.css";
2
2
  import { recipe } from "@optiaxiom/react/css-runtime";
3
3
  //#region src/proteus-chart/ProteusChart.css.ts
4
4
  var chart = recipe({ base: [
@@ -1,5 +1,5 @@
1
1
  import { recipe } from "@optiaxiom/react/css-runtime";
2
- import "./../assets/src/proteus-chart/ProteusChartTooltipContent.css.ts.vanilla-CykN-vdX.css";
2
+ import "./../assets/src/proteus-chart/ProteusChartTooltipContent.css.ts.vanilla-BiWAurC6.css";
3
3
  //#region src/proteus-chart/ProteusChartTooltipContent.css.ts
4
4
  var tooltip = recipe({ base: [{
5
5
  bg: "bg.default",
@@ -1,5 +1,5 @@
1
1
  import { recipe } from "@optiaxiom/react/css-runtime";
2
- import "./../assets/src/proteus-document/ProteusDocumentShell.css.ts.vanilla-CnC9TXlJ.css";
2
+ import "./../assets/src/proteus-document/ProteusDocumentShell.css.ts.vanilla-C3_s_0xh.css";
3
3
  //#region src/proteus-document/ProteusDocumentShell.css.ts
4
4
  var body = recipe({
5
5
  base: [{
@@ -17,6 +17,7 @@ import { ProteusInput } from "../proteus-input/ProteusInput.js";
17
17
  import { ProteusLength } from "../proteus-length/ProteusLength.js";
18
18
  import { ProteusMapIndex } from "../proteus-map-index/ProteusMapIndex.js";
19
19
  import { ProteusMap } from "../proteus-map/ProteusMap.js";
20
+ import { ProteusMarkdown } from "../proteus-markdown/ProteusMarkdown.js";
20
21
  import { ProteusPillMenu } from "../proteus-pill-menu/ProteusPillMenu.js";
21
22
  import { ProteusQuestion } from "../proteus-question/ProteusQuestion.js";
22
23
  import { ProteusRichTextEditor } from "../proteus-rich-text-editor/ProteusRichTextEditor.js";
@@ -100,6 +101,7 @@ const ProteusElement = ({ element: elementProp }) => {
100
101
  });
101
102
  case "Map": return /* @__PURE__ */ jsx(ProteusMap, { ...resolve(element) });
102
103
  case "MapIndex": return /* @__PURE__ */ jsx(ProteusMapIndex, { ...resolve(element) });
104
+ case "Markdown": return /* @__PURE__ */ jsx(ProteusMarkdown, { ...resolve(element) });
103
105
  case "PillMenu": return /* @__PURE__ */ jsx(ProteusPillMenu, { ...resolve(element) });
104
106
  case "Question": return /* @__PURE__ */ jsx(ProteusQuestion, { ...resolve(element) });
105
107
  case "Range": return /* @__PURE__ */ jsx(Range, { ...resolve(element) });
@@ -1,5 +1,5 @@
1
1
  import { recipe } from "@optiaxiom/react/css-runtime";
2
- import "./../assets/src/proteus-image-carousel/ProteusImageCarousel.css.ts.vanilla-CPqn1tWx.css";
2
+ import "./../assets/src/proteus-image-carousel/ProteusImageCarousel.css.ts.vanilla-DzSZh5fH.css";
3
3
  //#region src/proteus-image-carousel/ProteusImageCarousel.css.ts
4
4
  var carousel = recipe({ base: [{
5
5
  flexDirection: "column",
@@ -0,0 +1,29 @@
1
+ import { recipe } from "@optiaxiom/react/css-runtime";
2
+ import "./../assets/src/proteus-markdown/ProteusMarkdown.css.ts.vanilla-Dk7yaowa.css";
3
+ //#region src/proteus-markdown/ProteusMarkdown.css.ts
4
+ var code = recipe({ base: [{
5
+ bg: "bg.secondary",
6
+ overflow: "auto",
7
+ p: "12",
8
+ rounded: "md"
9
+ }, "ProteusMarkdown__1ibq5ae5"] });
10
+ var inlineCode = recipe({ base: [{ fontFamily: "mono" }, "ProteusMarkdown__1ibq5ae6"] });
11
+ var inlineImage = recipe({ base: [{ rounded: "sm" }, "ProteusMarkdown__1ibq5ae7"] });
12
+ var markdown = recipe({ base: [{
13
+ color: "fg.default",
14
+ fontSize: "md"
15
+ }, "ProteusMarkdown__1ibq5ae0"] });
16
+ var orderedList = recipe({ base: [{
17
+ display: "flex",
18
+ flexDirection: "column",
19
+ gap: "6"
20
+ }, "ProteusMarkdown__1ibq5ae3"] });
21
+ var separator = "ProteusMarkdown__1ibq5ae1";
22
+ var table = recipe({ base: ["ProteusMarkdown__1ibq5ae2"] });
23
+ var unorderedList = recipe({ base: [{
24
+ display: "flex",
25
+ flexDirection: "column",
26
+ gap: "6"
27
+ }, "ProteusMarkdown__1ibq5ae4"] });
28
+ //#endregion
29
+ export { code, inlineCode, inlineImage, markdown, orderedList, separator, table, unorderedList };
@@ -0,0 +1,120 @@
1
+ "use client";
2
+ import { code, inlineCode, inlineImage, markdown, orderedList, separator, table, unorderedList } from "./ProteusMarkdown-css.js";
3
+ import { Box, Heading, Link, Separator, Table, TableBody, TableCell, TableHeader, TableHeaderCell, TableRow, Text } from "@optiaxiom/react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import Markdown from "react-markdown";
6
+ import remarkGfm from "remark-gfm";
7
+ //#region src/proteus-markdown/ProteusMarkdown.tsx
8
+ const mapLevelToFontSize = {
9
+ "1": "2xl",
10
+ "2": "xl",
11
+ "3": "lg",
12
+ "4": "md"
13
+ };
14
+ /**
15
+ * Maps markdown heading levels (h1-h6) onto Axiom Heading levels (1-4). Markdown
16
+ * supports six levels but Heading only supports four, so deeper levels are
17
+ * clamped to the smallest visual size.
18
+ */
19
+ const heading = (level, Tag) => function MarkdownHeading({ children }) {
20
+ return /* @__PURE__ */ jsx(Heading, {
21
+ asChild: true,
22
+ fontSize: mapLevelToFontSize[level],
23
+ fontWeight: "600",
24
+ level,
25
+ children: /* @__PURE__ */ jsx(Tag, { children })
26
+ });
27
+ };
28
+ const components = {
29
+ a: ({ children, href }) => /* @__PURE__ */ jsx(Link, {
30
+ href,
31
+ rel: "noopener noreferrer",
32
+ target: "_blank",
33
+ children
34
+ }),
35
+ blockquote: ({ children }) => /* @__PURE__ */ jsx(Box, {
36
+ asChild: true,
37
+ borderL: "2",
38
+ color: "fg.secondary",
39
+ px: "16",
40
+ py: "6",
41
+ children: /* @__PURE__ */ jsx("blockquote", { children })
42
+ }),
43
+ code: ({ children }) => /* @__PURE__ */ jsx(Box, {
44
+ asChild: true,
45
+ ...inlineCode(),
46
+ children: /* @__PURE__ */ jsx("code", { children })
47
+ }),
48
+ em: ({ children }) => /* @__PURE__ */ jsx(Box, {
49
+ asChild: true,
50
+ children: /* @__PURE__ */ jsx("em", { children })
51
+ }),
52
+ h1: heading("1", "h1"),
53
+ h2: heading("2", "h2"),
54
+ h3: heading("3", "h3"),
55
+ h4: heading("4", "h4"),
56
+ h5: heading("4", "h5"),
57
+ h6: heading("4", "h6"),
58
+ hr: () => /* @__PURE__ */ jsx(Separator, { className: separator }),
59
+ img: ({ alt, src }) => typeof src === "string" ? /* @__PURE__ */ jsx(Box, {
60
+ asChild: true,
61
+ ...inlineImage(),
62
+ children: /* @__PURE__ */ jsx("img", {
63
+ alt: alt ?? "",
64
+ src
65
+ })
66
+ }) : null,
67
+ li: ({ children }) => /* @__PURE__ */ jsx(Text, {
68
+ asChild: true,
69
+ children: /* @__PURE__ */ jsx("li", { children })
70
+ }),
71
+ ol: ({ children }) => /* @__PURE__ */ jsx(Box, {
72
+ asChild: true,
73
+ ...orderedList(),
74
+ children: /* @__PURE__ */ jsx("ol", { children })
75
+ }),
76
+ p: ({ children }) => /* @__PURE__ */ jsx(Text, { children }),
77
+ pre: ({ children }) => /* @__PURE__ */ jsx(Box, {
78
+ asChild: true,
79
+ ...code(),
80
+ children: /* @__PURE__ */ jsx("pre", { children })
81
+ }),
82
+ strong: ({ children }) => /* @__PURE__ */ jsx(Box, {
83
+ asChild: true,
84
+ display: "inline",
85
+ fontWeight: "600",
86
+ children: /* @__PURE__ */ jsx("strong", { children })
87
+ }),
88
+ table: ({ children }) => /* @__PURE__ */ jsx(Table, {
89
+ ...table(),
90
+ children
91
+ }),
92
+ tbody: ({ children }) => /* @__PURE__ */ jsx(TableBody, { children }),
93
+ td: ({ children }) => /* @__PURE__ */ jsx(TableCell, { children }),
94
+ th: ({ children }) => /* @__PURE__ */ jsx(TableHeaderCell, { children }),
95
+ thead: ({ children }) => /* @__PURE__ */ jsx(TableHeader, { children }),
96
+ tr: ({ children }) => /* @__PURE__ */ jsx(TableRow, { children }),
97
+ ul: ({ children }) => /* @__PURE__ */ jsx(Box, {
98
+ asChild: true,
99
+ ...unorderedList(),
100
+ children: /* @__PURE__ */ jsx("ul", { children })
101
+ })
102
+ };
103
+ /**
104
+ * Renders markdown content (headings, paragraphs, lists, links, emphasis, code)
105
+ * as Axiom components so generated documents inherit the design system.
106
+ */
107
+ function ProteusMarkdown({ children, className, ...props }) {
108
+ return /* @__PURE__ */ jsx(Box, {
109
+ ...markdown({}, className),
110
+ ...props,
111
+ children: /* @__PURE__ */ jsx(Markdown, {
112
+ components,
113
+ remarkPlugins: [remarkGfm],
114
+ children
115
+ })
116
+ });
117
+ }
118
+ ProteusMarkdown.displayName = "@optiaxiom/proteus/ProteusMarkdown";
119
+ //#endregion
120
+ export { ProteusMarkdown };
@@ -1,5 +1,5 @@
1
1
  import { recipe } from "@optiaxiom/react/css-runtime";
2
- import "./../assets/src/proteus-question/ProteusQuestion.css.ts.vanilla-DXJt60Ji.css";
2
+ import "./../assets/src/proteus-question/ProteusQuestion.css.ts.vanilla-DNr3jTZj.css";
3
3
  //#region src/proteus-question/ProteusQuestion.css.ts
4
4
  var addon = recipe({
5
5
  base: [{
@@ -58,7 +58,7 @@ function ProteusQuestion({ interaction, questions }) {
58
58
  }, [currentIndex]);
59
59
  const otherInputRef = useRef(null);
60
60
  const otherItemRef = useRef(null);
61
- if (currentIndex >= questions.length) return null;
61
+ if (!Array.isArray(questions) || currentIndex >= questions.length) return null;
62
62
  const { options, question: question$1, type } = questions[currentIndex];
63
63
  const isLast = currentIndex === questions.length - 1;
64
64
  const otherValue = value?.find((v) => !options.includes(v));
@@ -1296,6 +1296,7 @@ var public_schema_default = {
1296
1296
  { "$ref": "#/definitions/ProteusLink" },
1297
1297
  { "$ref": "#/definitions/ProteusMap" },
1298
1298
  { "$ref": "#/definitions/ProteusMapIndex" },
1299
+ { "$ref": "#/definitions/ProteusMarkdown" },
1299
1300
  { "$ref": "#/definitions/ProteusPillMenu" },
1300
1301
  { "$ref": "#/definitions/ProteusQuestion" },
1301
1302
  { "$ref": "#/definitions/ProteusRange" },
@@ -3691,6 +3692,80 @@ var public_schema_default = {
3691
3692
  "required": ["$type"],
3692
3693
  "type": "object"
3693
3694
  },
3695
+ "ProteusMarkdown": {
3696
+ "additionalProperties": false,
3697
+ "examples": [{
3698
+ "$type": "Markdown",
3699
+ "children": "## Summary\n\nRevenue grew **12%** this quarter."
3700
+ }],
3701
+ "properties": {
3702
+ "$type": { "const": "Markdown" },
3703
+ "alignItems": { "$ref": "#/definitions/SprinkleProp_alignItems" },
3704
+ "alignSelf": { "$ref": "#/definitions/SprinkleProp_alignSelf" },
3705
+ "animation": { "$ref": "#/definitions/SprinkleProp_animation" },
3706
+ "backgroundImage": { "$ref": "#/definitions/SprinkleProp_backgroundImage" },
3707
+ "bg": { "$ref": "#/definitions/SprinkleProp_bg" },
3708
+ "border": { "$ref": "#/definitions/SprinkleProp_border" },
3709
+ "borderB": { "$ref": "#/definitions/SprinkleProp_borderB" },
3710
+ "borderColor": { "$ref": "#/definitions/SprinkleProp_borderColor" },
3711
+ "borderL": { "$ref": "#/definitions/SprinkleProp_borderL" },
3712
+ "borderR": { "$ref": "#/definitions/SprinkleProp_borderR" },
3713
+ "borderT": { "$ref": "#/definitions/SprinkleProp_borderT" },
3714
+ "children": {
3715
+ "anyOf": [{ "type": "string" }, { "$ref": "#/definitions/ProteusExpression" }],
3716
+ "description": "Markdown source string to render (e.g. headings, paragraphs, lists, links, emphasis, code). Can be a literal string or a ProteusExpression that resolves to a string."
3717
+ },
3718
+ "color": { "$ref": "#/definitions/SprinkleProp_color" },
3719
+ "cursor": { "$ref": "#/definitions/SprinkleProp_cursor" },
3720
+ "display": { "$ref": "#/definitions/SprinkleProp_display" },
3721
+ "flex": { "$ref": "#/definitions/SprinkleProp_flex" },
3722
+ "flexDirection": { "$ref": "#/definitions/SprinkleProp_flexDirection" },
3723
+ "flexWrap": { "$ref": "#/definitions/SprinkleProp_flexWrap" },
3724
+ "fontFamily": { "$ref": "#/definitions/SprinkleProp_fontFamily" },
3725
+ "fontSize": { "$ref": "#/definitions/SprinkleProp_fontSize" },
3726
+ "fontWeight": { "$ref": "#/definitions/SprinkleProp_fontWeight" },
3727
+ "gap": { "$ref": "#/definitions/SprinkleProp_gap" },
3728
+ "gridAutoRows": { "$ref": "#/definitions/SprinkleProp_gridAutoRows" },
3729
+ "gridColumn": { "$ref": "#/definitions/SprinkleProp_gridColumn" },
3730
+ "gridTemplateColumns": { "$ref": "#/definitions/SprinkleProp_gridTemplateColumns" },
3731
+ "h": { "$ref": "#/definitions/SprinkleProp_h" },
3732
+ "justifyContent": { "$ref": "#/definitions/SprinkleProp_justifyContent" },
3733
+ "justifyItems": { "$ref": "#/definitions/SprinkleProp_justifyItems" },
3734
+ "m": { "$ref": "#/definitions/SprinkleProp_m" },
3735
+ "maxH": { "$ref": "#/definitions/SprinkleProp_maxH" },
3736
+ "maxW": { "$ref": "#/definitions/SprinkleProp_maxW" },
3737
+ "mb": { "$ref": "#/definitions/SprinkleProp_mb" },
3738
+ "ml": { "$ref": "#/definitions/SprinkleProp_ml" },
3739
+ "mr": { "$ref": "#/definitions/SprinkleProp_mr" },
3740
+ "mt": { "$ref": "#/definitions/SprinkleProp_mt" },
3741
+ "mx": { "$ref": "#/definitions/SprinkleProp_mx" },
3742
+ "my": { "$ref": "#/definitions/SprinkleProp_my" },
3743
+ "objectFit": { "$ref": "#/definitions/SprinkleProp_objectFit" },
3744
+ "overflow": { "$ref": "#/definitions/SprinkleProp_overflow" },
3745
+ "overflowX": { "$ref": "#/definitions/SprinkleProp_overflowX" },
3746
+ "overflowY": { "$ref": "#/definitions/SprinkleProp_overflowY" },
3747
+ "p": { "$ref": "#/definitions/SprinkleProp_p" },
3748
+ "pb": { "$ref": "#/definitions/SprinkleProp_pb" },
3749
+ "pl": { "$ref": "#/definitions/SprinkleProp_pl" },
3750
+ "placeItems": { "$ref": "#/definitions/SprinkleProp_placeItems" },
3751
+ "pointerEvents": { "$ref": "#/definitions/SprinkleProp_pointerEvents" },
3752
+ "pr": { "$ref": "#/definitions/SprinkleProp_pr" },
3753
+ "pt": { "$ref": "#/definitions/SprinkleProp_pt" },
3754
+ "px": { "$ref": "#/definitions/SprinkleProp_px" },
3755
+ "py": { "$ref": "#/definitions/SprinkleProp_py" },
3756
+ "rounded": { "$ref": "#/definitions/SprinkleProp_rounded" },
3757
+ "shadow": { "$ref": "#/definitions/SprinkleProp_shadow" },
3758
+ "size": { "$ref": "#/definitions/SprinkleProp_size" },
3759
+ "textAlign": { "$ref": "#/definitions/SprinkleProp_textAlign" },
3760
+ "textTransform": { "$ref": "#/definitions/SprinkleProp_textTransform" },
3761
+ "transition": { "$ref": "#/definitions/SprinkleProp_transition" },
3762
+ "w": { "$ref": "#/definitions/SprinkleProp_w" },
3763
+ "whiteSpace": { "$ref": "#/definitions/SprinkleProp_whiteSpace" },
3764
+ "z": { "$ref": "#/definitions/SprinkleProp_z" }
3765
+ },
3766
+ "required": ["$type"],
3767
+ "type": "object"
3768
+ },
3694
3769
  "ProteusPillMenu": {
3695
3770
  "additionalProperties": false,
3696
3771
  "examples": [{
@@ -1283,6 +1283,7 @@ var definitions = {
1283
1283
  { "$ref": "#/definitions/ProteusLink" },
1284
1284
  { "$ref": "#/definitions/ProteusMap" },
1285
1285
  { "$ref": "#/definitions/ProteusMapIndex" },
1286
+ { "$ref": "#/definitions/ProteusMarkdown" },
1286
1287
  { "$ref": "#/definitions/ProteusPillMenu" },
1287
1288
  { "$ref": "#/definitions/ProteusQuestion" },
1288
1289
  { "$ref": "#/definitions/ProteusRange" },
@@ -3633,6 +3634,79 @@ var definitions = {
3633
3634
  "required": ["$type"],
3634
3635
  "type": "object"
3635
3636
  },
3637
+ "ProteusMarkdown": {
3638
+ "examples": [{
3639
+ "$type": "Markdown",
3640
+ "children": "## Summary\n\nRevenue grew **12%** this quarter."
3641
+ }],
3642
+ "properties": {
3643
+ "$type": { "const": "Markdown" },
3644
+ "alignItems": { "$ref": "#/definitions/SprinkleProp_alignItems" },
3645
+ "alignSelf": { "$ref": "#/definitions/SprinkleProp_alignSelf" },
3646
+ "animation": { "$ref": "#/definitions/SprinkleProp_animation" },
3647
+ "backgroundImage": { "$ref": "#/definitions/SprinkleProp_backgroundImage" },
3648
+ "bg": { "$ref": "#/definitions/SprinkleProp_bg" },
3649
+ "border": { "$ref": "#/definitions/SprinkleProp_border" },
3650
+ "borderB": { "$ref": "#/definitions/SprinkleProp_borderB" },
3651
+ "borderColor": { "$ref": "#/definitions/SprinkleProp_borderColor" },
3652
+ "borderL": { "$ref": "#/definitions/SprinkleProp_borderL" },
3653
+ "borderR": { "$ref": "#/definitions/SprinkleProp_borderR" },
3654
+ "borderT": { "$ref": "#/definitions/SprinkleProp_borderT" },
3655
+ "children": {
3656
+ "anyOf": [{ "type": "string" }, { "$ref": "#/definitions/ProteusExpression" }],
3657
+ "description": "Markdown source string to render (e.g. headings, paragraphs, lists, links, emphasis, code). Can be a literal string or a ProteusExpression that resolves to a string."
3658
+ },
3659
+ "color": { "$ref": "#/definitions/SprinkleProp_color" },
3660
+ "cursor": { "$ref": "#/definitions/SprinkleProp_cursor" },
3661
+ "display": { "$ref": "#/definitions/SprinkleProp_display" },
3662
+ "flex": { "$ref": "#/definitions/SprinkleProp_flex" },
3663
+ "flexDirection": { "$ref": "#/definitions/SprinkleProp_flexDirection" },
3664
+ "flexWrap": { "$ref": "#/definitions/SprinkleProp_flexWrap" },
3665
+ "fontFamily": { "$ref": "#/definitions/SprinkleProp_fontFamily" },
3666
+ "fontSize": { "$ref": "#/definitions/SprinkleProp_fontSize" },
3667
+ "fontWeight": { "$ref": "#/definitions/SprinkleProp_fontWeight" },
3668
+ "gap": { "$ref": "#/definitions/SprinkleProp_gap" },
3669
+ "gridAutoRows": { "$ref": "#/definitions/SprinkleProp_gridAutoRows" },
3670
+ "gridColumn": { "$ref": "#/definitions/SprinkleProp_gridColumn" },
3671
+ "gridTemplateColumns": { "$ref": "#/definitions/SprinkleProp_gridTemplateColumns" },
3672
+ "h": { "$ref": "#/definitions/SprinkleProp_h" },
3673
+ "justifyContent": { "$ref": "#/definitions/SprinkleProp_justifyContent" },
3674
+ "justifyItems": { "$ref": "#/definitions/SprinkleProp_justifyItems" },
3675
+ "m": { "$ref": "#/definitions/SprinkleProp_m" },
3676
+ "maxH": { "$ref": "#/definitions/SprinkleProp_maxH" },
3677
+ "maxW": { "$ref": "#/definitions/SprinkleProp_maxW" },
3678
+ "mb": { "$ref": "#/definitions/SprinkleProp_mb" },
3679
+ "ml": { "$ref": "#/definitions/SprinkleProp_ml" },
3680
+ "mr": { "$ref": "#/definitions/SprinkleProp_mr" },
3681
+ "mt": { "$ref": "#/definitions/SprinkleProp_mt" },
3682
+ "mx": { "$ref": "#/definitions/SprinkleProp_mx" },
3683
+ "my": { "$ref": "#/definitions/SprinkleProp_my" },
3684
+ "objectFit": { "$ref": "#/definitions/SprinkleProp_objectFit" },
3685
+ "overflow": { "$ref": "#/definitions/SprinkleProp_overflow" },
3686
+ "overflowX": { "$ref": "#/definitions/SprinkleProp_overflowX" },
3687
+ "overflowY": { "$ref": "#/definitions/SprinkleProp_overflowY" },
3688
+ "p": { "$ref": "#/definitions/SprinkleProp_p" },
3689
+ "pb": { "$ref": "#/definitions/SprinkleProp_pb" },
3690
+ "pl": { "$ref": "#/definitions/SprinkleProp_pl" },
3691
+ "placeItems": { "$ref": "#/definitions/SprinkleProp_placeItems" },
3692
+ "pointerEvents": { "$ref": "#/definitions/SprinkleProp_pointerEvents" },
3693
+ "pr": { "$ref": "#/definitions/SprinkleProp_pr" },
3694
+ "pt": { "$ref": "#/definitions/SprinkleProp_pt" },
3695
+ "px": { "$ref": "#/definitions/SprinkleProp_px" },
3696
+ "py": { "$ref": "#/definitions/SprinkleProp_py" },
3697
+ "rounded": { "$ref": "#/definitions/SprinkleProp_rounded" },
3698
+ "shadow": { "$ref": "#/definitions/SprinkleProp_shadow" },
3699
+ "size": { "$ref": "#/definitions/SprinkleProp_size" },
3700
+ "textAlign": { "$ref": "#/definitions/SprinkleProp_textAlign" },
3701
+ "textTransform": { "$ref": "#/definitions/SprinkleProp_textTransform" },
3702
+ "transition": { "$ref": "#/definitions/SprinkleProp_transition" },
3703
+ "w": { "$ref": "#/definitions/SprinkleProp_w" },
3704
+ "whiteSpace": { "$ref": "#/definitions/SprinkleProp_whiteSpace" },
3705
+ "z": { "$ref": "#/definitions/SprinkleProp_z" }
3706
+ },
3707
+ "required": ["$type"],
3708
+ "type": "object"
3709
+ },
3636
3710
  "ProteusPillMenu": {
3637
3711
  "examples": [{
3638
3712
  "$type": "PillMenu",
package/dist/index.d.ts CHANGED
@@ -241,6 +241,27 @@ declare namespace ProteusMap {
241
241
  var displayName: string;
242
242
  }
243
243
  //#endregion
244
+ //#region src/proteus-markdown/ProteusMarkdown.d.ts
245
+ type ProteusMarkdownProps = BoxProps<"div", {
246
+ /**
247
+ * The markdown source to render. A single string (resolved upstream from a
248
+ * literal or a `Value`/`Concat` expression).
249
+ */
250
+ children?: string;
251
+ }>;
252
+ /**
253
+ * Renders markdown content (headings, paragraphs, lists, links, emphasis, code)
254
+ * as Axiom components so generated documents inherit the design system.
255
+ */
256
+ declare function ProteusMarkdown({
257
+ children,
258
+ className,
259
+ ...props
260
+ }: ProteusMarkdownProps): import("react/jsx-runtime").JSX.Element;
261
+ declare namespace ProteusMarkdown {
262
+ var displayName: string;
263
+ }
264
+ //#endregion
244
265
  //#region src/proteus-pill-menu/ProteusPillMenu.d.ts
245
266
  type ProteusPillMenuProps = {
246
267
  /**
@@ -632,4 +653,4 @@ declare namespace ProteusTextarea {
632
653
  //#region src/use-proteus-value/useProteusValue.d.ts
633
654
  declare function useProteusValue(element: ProteusValueProps): any;
634
655
  //#endregion
635
- export { type FileUploadMetadata, ProteusAction, ProteusBridge, ProteusChart, ProteusDataTable, ProteusDateInput, ProteusDocumentRenderer, ProteusDocumentRendererProps, ProteusDocumentShell, ProteusDocumentShellProps, ProteusFederated, ProteusFileUpload, ProteusFileUploadProps, ProteusImage, ProteusImageCarousel, ProteusInput, ProteusLength, ProteusMap, ProteusMapIndex, ProteusPillMenu, ProteusPillMenuProps, type ProteusPreviewFile, ProteusRichTextEditor, ProteusSelect, ProteusShow, ProteusTextarea, type StructuredMessage, type UploadFile, safeParseDocument, useProteusValue };
656
+ export { type FileUploadMetadata, ProteusAction, ProteusBridge, ProteusChart, ProteusDataTable, ProteusDateInput, ProteusDocumentRenderer, ProteusDocumentRendererProps, ProteusDocumentShell, ProteusDocumentShellProps, ProteusFederated, ProteusFileUpload, ProteusFileUploadProps, ProteusImage, ProteusImageCarousel, ProteusInput, ProteusLength, ProteusMap, ProteusMapIndex, ProteusMarkdown, ProteusPillMenu, ProteusPillMenuProps, type ProteusPreviewFile, ProteusRichTextEditor, ProteusSelect, ProteusShow, ProteusTextarea, type StructuredMessage, type UploadFile, safeParseDocument, useProteusValue };
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "url": "git+https://github.com/optimizely-axiom/optiaxiom.git"
8
8
  },
9
9
  "type": "module",
10
- "version": "1.1.6",
10
+ "version": "1.1.8",
11
11
  "files": [
12
12
  "dist/**",
13
13
  "LICENSE"
@@ -38,8 +38,10 @@
38
38
  "@tanstack/react-table": "^8.21.3",
39
39
  "embla-carousel-react": "^8.6.0",
40
40
  "jsonpointer": "^5.0.1",
41
+ "react-markdown": "^10.1.0",
41
42
  "recharts": "^3.8.1",
42
- "@optiaxiom/react": "^1.9.40",
43
+ "remark-gfm": "^4.0.1",
44
+ "@optiaxiom/react": "^1.9.42",
43
45
  "@optiaxiom/icons": "^1.1.3"
44
46
  },
45
47
  "devDependencies": {