react-blockkit 0.3.2 → 0.4.0

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 (39) hide show
  1. package/README.md +14 -8
  2. package/dist/blocks/AdvancedBlocks.d.ts.map +1 -1
  3. package/dist/blocks/BasicBlocks.d.ts.map +1 -1
  4. package/dist/blocks/InteractiveBlocks.d.ts.map +1 -1
  5. package/dist/elements/Elements.d.ts.map +1 -1
  6. package/dist/index.cjs +4 -4
  7. package/dist/index.cjs.map +1 -1
  8. package/dist/index.js +297 -266
  9. package/dist/index.js.map +1 -1
  10. package/dist/styles.css +24 -0
  11. package/dist/styles.d.ts +1 -1
  12. package/dist/styles.d.ts.map +1 -1
  13. package/dist/text/Markdown.d.ts.map +1 -1
  14. package/dist/text/Mrkdwn.d.ts +7 -1
  15. package/dist/text/Mrkdwn.d.ts.map +1 -1
  16. package/dist/validation.d.ts.map +1 -1
  17. package/docs/slack-style-baseline.md +1 -1
  18. package/package.json +3 -3
  19. package/docs/coverage-matrix.md +0 -80
  20. package/docs/parity/chart-bar-3-w580-dark.png +0 -0
  21. package/docs/parity/chart-bar-3-w580-light.png +0 -0
  22. package/docs/parity/chart-line-3-w580-light.png +0 -0
  23. package/docs/parity/chart-pie-12-w400-light.png +0 -0
  24. package/docs/parity/chart-pie-5-w580-light.png +0 -0
  25. package/docs/parity/data-table-w580-dark.png +0 -0
  26. package/docs/parity/data-table-w580-light.png +0 -0
  27. package/docs/parity/headers-levels-w580-light.png +0 -0
  28. package/docs/parity/icons-alert-info.png +0 -0
  29. package/docs/parity/icons-card-slack-icon.png +0 -0
  30. package/docs/parity/icons-context-actions.png +0 -0
  31. package/docs/parity/icons-data-table-header.png +0 -0
  32. package/docs/parity/icons-datepicker.png +0 -0
  33. package/docs/parity/icons-overflow.png +0 -0
  34. package/docs/parity/icons-pagination.png +0 -0
  35. package/docs/parity/icons-select-chevron.png +0 -0
  36. package/docs/parity/rich-text-full-w580-light.png +0 -0
  37. package/docs/parity/spacing-rhythm-w580-light.png +0 -0
  38. package/docs/parity/table-align-wrap-w580-light.png +0 -0
  39. package/docs/parity/table-basic-w580-light.png +0 -0
package/dist/styles.css CHANGED
@@ -919,10 +919,18 @@
919
919
  list-style-type: none;
920
920
  }
921
921
 
922
+ .xbelrpt {
923
+ margin-inline-end: 6px;
924
+ }
925
+
922
926
  .x161fxfn {
923
927
  margin-inline-end: var(--xyqg4g);
924
928
  }
925
929
 
930
+ .x1xkedpm {
931
+ margin-inline-start: -28px;
932
+ }
933
+
926
934
  .x9pbi5e {
927
935
  margin-inline-start: 28px;
928
936
  }
@@ -1234,6 +1242,10 @@
1234
1242
  height: 12px;
1235
1243
  }
1236
1244
 
1245
+ .xx3o462 {
1246
+ height: 15px;
1247
+ }
1248
+
1237
1249
  .xjm9jq1 {
1238
1250
  height: 1px;
1239
1251
  }
@@ -1278,6 +1290,10 @@
1278
1290
  margin-bottom: -4px;
1279
1291
  }
1280
1292
 
1293
+ .xat24cr {
1294
+ margin-bottom: 0;
1295
+ }
1296
+
1281
1297
  .x81smla {
1282
1298
  margin-bottom: var(--xce4sdd);
1283
1299
  }
@@ -1290,6 +1306,10 @@
1290
1306
  margin-top: 15px;
1291
1307
  }
1292
1308
 
1309
+ .x7r5mf7 {
1310
+ margin-top: 3px;
1311
+ }
1312
+
1293
1313
  .x1kadbbt {
1294
1314
  margin-top: var(--xce4sdd);
1295
1315
  }
@@ -1422,6 +1442,10 @@
1422
1442
  width: 20px;
1423
1443
  }
1424
1444
 
1445
+ .x17z2i9w {
1446
+ width: 22px;
1447
+ }
1448
+
1425
1449
  .xgd8bvy {
1426
1450
  width: 28px;
1427
1451
  }
package/dist/styles.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as stylex from "@stylexjs/stylex";
2
- type StyleKey = "accessory" | "accessoryImage" | "actions" | "alert" | "alertError" | "alertIcon" | "alertInfo" | "alertSuccess" | "alertWarning" | "block" | "bold" | "button" | "buttonDanger" | "buttonPrimary" | "card" | "cardActions" | "cardContent" | "cardHeading" | "cardHero" | "cardIcon" | "cardTitle" | "carousel" | "carouselCard" | "chartAreaFallbackFill" | "chartAreaFill" | "chartCanvas" | "chartCard" | "chartContent" | "chartGridline" | "chartLegend" | "chartLegendCartesian" | "chartLegendItem" | "chartLegendSwatch" | "chartLinePath" | "chartPlotArea" | "chartScroller" | "chartSvg" | "chartTickText" | "chartTitle" | "chartXAxisLabel" | "chartYAxisLabel" | "chartYAxisLabelText" | "choice" | "choiceGroup" | "colorSwatch" | "container" | "containerBody" | "containerChevron" | "containerHeader" | "containerHeaderDivider" | "context" | "contextElement" | "contextImage" | "contextText" | "dataTable" | "dataTableBand" | "dataTableBandUnpaginated" | "dataTableFilter" | "dataTableFilterIcon" | "dataTableFilterInput" | "dataTableHeaderBar" | "dataTableIconButton" | "dataTablePageButton" | "dataTablePageButtonActive" | "dataTablePageChevron" | "dataTablePagination" | "dataTableRadiusBottomEnd" | "dataTableRadiusBottomStart" | "dataTableRadiusTopEnd" | "dataTableRadiusTopStart" | "dataTableTable" | "dataTableTd" | "dataTableTh" | "dataTableTitle" | "divider" | "fields" | "file" | "heading" | "heading1" | "heading2" | "heading3" | "heading4" | "iconButton" | "iconSlot" | "image" | "imagePlaceholder" | "inlineCode" | "input" | "inputBlock" | "inputLabel" | "italic" | "link" | "list" | "listBullet" | "listBulletAlternate" | "listBulletSquare" | "listItemBullet" | "listItemOrdered" | "listOrdered" | "listOrderedAlpha" | "listOrderedRoman" | "markdown" | "mention" | "overflowButton" | "picker" | "pickerChevron" | "pickerIcon" | "pieSlice" | "plan" | "pre" | "quote" | "reference" | "required" | "richBorder" | "richSection" | "richText" | "root" | "rootDark" | "rootLight" | "section" | "sectionContent" | "select" | "selectChevron" | "selectWithChevron" | "selectWrap" | "smallText" | "strike" | "table" | "tableCell" | "tableCellFirstColumn" | "tableCellWrapped" | "tableHeader" | "tableScroller" | "task" | "taskHeading" | "taskStatus" | "text" | "unhandled" | "underline" | "videoPlayBadge" | "videoThumbnail" | "visuallyHidden";
2
+ type StyleKey = "accessory" | "accessoryImage" | "actions" | "alert" | "alertError" | "alertIcon" | "alertInfo" | "alertSuccess" | "alertWarning" | "block" | "bold" | "button" | "buttonDanger" | "buttonPrimary" | "card" | "cardActions" | "cardContent" | "cardHeading" | "cardHero" | "cardIcon" | "cardTitle" | "carousel" | "carouselCard" | "chartAreaFallbackFill" | "chartAreaFill" | "chartCanvas" | "chartCard" | "chartContent" | "chartGridline" | "chartLegend" | "chartLegendCartesian" | "chartLegendItem" | "chartLegendSwatch" | "chartLinePath" | "chartPlotArea" | "chartScroller" | "chartSvg" | "chartTickText" | "chartTitle" | "chartXAxisLabel" | "chartYAxisLabel" | "chartYAxisLabelText" | "choice" | "choiceGroup" | "colorSwatch" | "container" | "containerBody" | "containerChevron" | "containerHeader" | "containerHeaderDivider" | "context" | "contextElement" | "contextImage" | "contextText" | "dataTable" | "dataTableBand" | "dataTableBandUnpaginated" | "dataTableFilter" | "dataTableFilterIcon" | "dataTableFilterInput" | "dataTableHeaderBar" | "dataTableIconButton" | "dataTablePageButton" | "dataTablePageButtonActive" | "dataTablePageChevron" | "dataTablePagination" | "dataTableRadiusBottomEnd" | "dataTableRadiusBottomStart" | "dataTableRadiusTopEnd" | "dataTableRadiusTopStart" | "dataTableTable" | "dataTableTd" | "dataTableTh" | "dataTableTitle" | "divider" | "fields" | "file" | "heading" | "heading1" | "heading2" | "heading3" | "heading4" | "iconButton" | "iconSlot" | "image" | "imagePlaceholder" | "inlineCode" | "input" | "inputBlock" | "inputLabel" | "italic" | "link" | "list" | "listBullet" | "listBulletAlternate" | "listBulletSquare" | "listItemBullet" | "listItemOrdered" | "listItemTask" | "listOrdered" | "listOrderedAlpha" | "listOrderedRoman" | "listTaskCheckbox" | "markdown" | "mention" | "overflowButton" | "picker" | "pickerChevron" | "pickerIcon" | "pieSlice" | "plan" | "pre" | "quote" | "reference" | "required" | "richBorder" | "richSection" | "richText" | "root" | "rootDark" | "rootLight" | "section" | "sectionContent" | "select" | "selectChevron" | "selectWithChevron" | "selectWrap" | "smallText" | "strike" | "table" | "tableCell" | "tableCellFirstColumn" | "tableCellWrapped" | "tableHeader" | "tableScroller" | "task" | "taskHeading" | "taskStatus" | "text" | "unhandled" | "underline" | "videoPlayBadge" | "videoThumbnail" | "visuallyHidden";
3
3
  export declare const styles: Readonly<Record<StyleKey, stylex.StyleXStyles>>;
4
4
  export interface ChartSeriesStyle {
5
5
  /** SVG fill in the series color (bars, pie slices). */
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../src/text/Markdown.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,OAAO,CAAC;AAKrD,KAAK,kBAAkB,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3E;IACE,QAAQ,CAAC,KAAK,EAAE,SAAS;QACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,EAAE,CAAC;IACJ,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/D;IACE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;CAC/C,CAAC;AAiDN,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,kBAAkB,EAAE,CA+FhF;AAoHD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,aAAa,GAAG,YAAY,CAQlE"}
1
+ {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../src/text/Markdown.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,OAAO,CAAC;AAKrD,KAAK,kBAAkB,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3E;IACE,QAAQ,CAAC,KAAK,EAAE,SAAS;QACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,EAAE,CAAC;IACJ,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/D;IACE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;CAC/C,CAAC;AAiDN,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,kBAAkB,EAAE,CA+FhF;AAwHD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,aAAa,GAAG,YAAY,CAQlE"}
@@ -31,7 +31,13 @@ export type MrkdwnToken = {
31
31
  export declare function tokenizeMrkdwn(text: string): readonly MrkdwnToken[];
32
32
  export interface MrkdwnProps {
33
33
  readonly className?: string | undefined;
34
+ /**
35
+ * Render as a `<span>` instead of a `<div>`. Markdown list items need this
36
+ * so the label stays on the same line as the bullet / checkbox / ordered
37
+ * marker; a block div would force a wrap under the marker.
38
+ */
39
+ readonly inline?: boolean | undefined;
34
40
  readonly text: string;
35
41
  }
36
- export declare function Mrkdwn({ className, text }: MrkdwnProps): ReactElement;
42
+ export declare function Mrkdwn({ className, inline, text }: MrkdwnProps): ReactElement;
37
43
  //# sourceMappingURL=Mrkdwn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Mrkdwn.d.ts","sourceRoot":"","sources":["../../src/text/Mrkdwn.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,OAAO,CAAC;AAQrD,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjD;IACE,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC7C,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxE;IACE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CACnE,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAsJ3D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,WAAW,EAAE,CAEnE;AAkGD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,WAAW,GAAG,YAAY,CASrE"}
1
+ {"version":3,"file":"Mrkdwn.d.ts","sourceRoot":"","sources":["../../src/text/Mrkdwn.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,OAAO,CAAC;AAQrD,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjD;IACE,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC7C,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxE;IACE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CACnE,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAsJ3D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,WAAW,EAAE,CAEnE;AAkGD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,MAAM,CAAC,EAAE,SAAS,EAAE,MAAc,EAAE,IAAI,EAAE,EAAE,WAAW,GAAG,YAAY,CAOrF"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AA8CA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EAEb,eAAe,EACf,eAAe,EAChB,MAAM,YAAY,CAAC;AAuIpB,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,MAAe,EACrB,GAAG,GAAE,MAA8B,GAClC,IAAI,CAEN;AA6CD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,MAAkB,GAAG,IAAI,CAErF;AAgLD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,MAAkB,GAAG,IAAI,CAE3F;AAmJD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,MAAgB,GAAG,IAAI,CAEpF;AA4sBD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,eAA2B,EACpC,IAAI,GAAE,MAAgB,GACrB,OAAO,CAAC,KAAK,IAAI,eAAe,CAkFlC;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,EACjC,OAAO,GAAE,eAA2B,EACpC,IAAI,GAAE,MAAgB,GACrB,IAAI,CAGN;AAWD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,eAA2B,EACpC,IAAI,GAAE,MAAe,GACpB,OAAO,CAAC,KAAK,IAAI,YAAY,CA+D/B;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,eAA2B,GACnC,YAAY,CAcd;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,eAAe,EAAE,CAEvE"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AA8CA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EAEb,eAAe,EACf,eAAe,EAChB,MAAM,YAAY,CAAC;AAuIpB,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,MAAe,EACrB,GAAG,GAAE,MAA8B,GAClC,IAAI,CAEN;AA6CD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,MAAkB,GAAG,IAAI,CAErF;AAgLD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,MAAkB,GAAG,IAAI,CAE3F;AAmJD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,MAAgB,GAAG,IAAI,CAEpF;AAktBD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,eAA2B,EACpC,IAAI,GAAE,MAAgB,GACrB,OAAO,CAAC,KAAK,IAAI,eAAe,CAkFlC;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,EACjC,OAAO,GAAE,eAA2B,EACpC,IAAI,GAAE,MAAgB,GACrB,IAAI,CAGN;AAWD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,eAA2B,EACpC,IAAI,GAAE,MAAe,GACpB,OAAO,CAAC,KAAK,IAAI,YAAY,CA+D/B;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,eAA2B,GACnC,YAAY,CAcd;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,eAAe,EAAE,CAEvE"}
@@ -213,7 +213,7 @@ carries its own margins:
213
213
  ### Control icon glyphs (measured 2026-07-22 from the 2026-07-21 Builder captures)
214
214
 
215
215
  Glyph geometry was measured offline from the Builder golden captures stored
216
- in `apps/demo/test/visual/goldens` (deviceScaleFactor 1, so pixels are CSS
216
+ in `apps/visual-tests/test/visual/goldens` (deviceScaleFactor 1, so pixels are CSS
217
217
  px). "Ink" is the bounding box of non-background pixels. The renderer vendors
218
218
  Lucide glyphs (see `src/icons.tsx`) sized so their ink matches the measured
219
219
  ink.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-blockkit",
3
- "version": "0.3.2",
3
+ "version": "0.4.0",
4
4
  "description": "React components that render Slack Block Kit JSON exactly as Slack does.",
5
5
  "keywords": [
6
6
  "block kit",
@@ -23,7 +23,7 @@
23
23
  "style": "./dist/styles.css",
24
24
  "files": [
25
25
  "dist",
26
- "docs",
26
+ "docs/slack-style-baseline.md",
27
27
  "LICENSE",
28
28
  "README.md"
29
29
  ],
@@ -66,7 +66,7 @@
66
66
  "react-dom": "^19.2.7",
67
67
  "vite": "^8.1.5",
68
68
  "vitest": "^4.1.7",
69
- "slackmark": "0.4.0"
69
+ "slackmark": "0.6.1"
70
70
  },
71
71
  "peerDependencies": {
72
72
  "react": ">=18.2.0 <20",
@@ -1,80 +0,0 @@
1
- # react-blockkit coverage matrix
2
-
3
- Audited against `slackmark`'s `packages/core/src/blocks/types.ts`,
4
- `@slack/types` 3.0.0, and the `react-blockkit` implementation on July 20, 2026.
5
- “Fallback” means the renderer keeps a visible DOM node and human-readable
6
- label; it never silently drops the value or stringifies an object.
7
-
8
- ## Blocks
9
-
10
- | Block | `slackmark` emits | Before | After |
11
- | --- | --- | --- | --- |
12
- | `rich_text` | Yes | Partial | Full containers and inline inventory; unknown descendants render a fallback |
13
- | `header` + `level` | Yes | Levels 1–4; other numbers threw | Semantic `h1`–`h4`; out-of-range levels clamp safely |
14
- | `divider` | Yes | Full | Full |
15
- | `section` + `fields` + `accessory` | Yes (`accessory` is accepted from Slack payloads) | Full for known elements | Full; unknown accessories render a fallback |
16
- | `image` + `slack_file` | Yes | URL images and an alt-labelled placeholder for file IDs | Same deliberate placeholder; never drops `alt_text` |
17
- | `context` | Yes | Full | Full; unknown or text-less elements render a fallback |
18
- | `markdown` | Yes | Full for the existing minimal Markdown subset | Same feature scope, hardened rendering |
19
- | `table` (`raw_text`, `raw_number`, `rich_text`, alignment, wrapping) | Yes | Cells, alignment, and wrapping; first row used data cells | First row uses column-header semantics; unknown cells render a fallback |
20
- | `data_table` | Yes | Header/row semantics and paging; empty rows or zero page size threw | Safe empty state, real `caption`, bounded page size, header/row semantics |
21
- | `data_visualization` (`pie`, `bar`, `area`, `line`) | Yes | All chart types; an empty/zero-total pie failed | All chart types plus a labelled no-data fallback; unknown chart types render a fallback |
22
- | `container` + collapsible state | Yes | Legal Slack child subset only | Legal Slack child subset, collapsible state, and visible illegal/future-child fallback |
23
- | `actions` | No | Full for current element inventory | Same, plus unknown-element fallback |
24
- | `alert` | No | Full | Full |
25
- | `card` | No | Full | Full |
26
- | `carousel` | No | Full | Full |
27
- | `context_actions` | No | Full | Full |
28
- | `file` | No | Full | Full |
29
- | `input` | No | Full | Full |
30
- | `plan` | No | Full | Full |
31
- | `task_card` | No | Full | Full |
32
- | `video` | No | Full | Full |
33
- | Unknown future discriminator | Possible in retrieved Slack data | Threw `unsupported_block` | Visible `data-block-type` fallback |
34
-
35
- ## Rich-text containers
36
-
37
- | Element | Before | After |
38
- | --- | --- | --- |
39
- | `rich_text_section` | Rendered inline values | Same, with unknown-inline fallback and multiline preservation |
40
- | `rich_text_list` | Real list and ordered `offset`; every indent used the same marker; indent over 8 threw | Real `ul`/`ol`, ordered offset, per-indent marker cycle, indent bounded to 0–8, `border` honored |
41
- | `rich_text_preformatted` | Language exposed; `border` ignored | Language and `border` honored; empty content is safe |
42
- | `rich_text_quote` | Always drew a border; payload `border` ignored | Payload `border: 0 \| 1` controls the inline border |
43
- | Unknown future container | Threw `unsupported_element` | Visible fallback |
44
-
45
- ## Rich-text inline elements and styles
46
-
47
- | Element/style | Before | After |
48
- | --- | --- | --- |
49
- | `text` | Bold, italic, strike, underline, and code as combined CSS | Deterministically nested semantic elements; multiline text preserved |
50
- | `link` | Safe protocols and labels | Same, with nested inline styles |
51
- | `emoji` | Resolver, explicit Unicode, then `:shortcode:` | Resolver, explicit Unicode, core’s emitted shortcode set, then custom shortcode fallback |
52
- | `user`, `channel`, `usergroup`, `team`, `broadcast` | Resolved mentions; inline style was lost | Resolved mentions with inline styles preserved |
53
- | `date` | Resolver or fallback/ISO date; ignored format tokens and URL | Resolver or deterministic UTC Slack-token formatter; fallback on relative/unknown tokens; safe URL |
54
- | `color` | Swatch and value | Same, with inline styles preserved |
55
- | `citation` and Slack reference mentions | Compact textual fallback | Same documented fallback |
56
- | Unknown future inline discriminator | Threw `unsupported_element` | Visible text/reference fallback |
57
-
58
- ## Mrkdwn basics
59
-
60
- | Behavior | Before | After |
61
- | --- | --- | --- |
62
- | `&amp;`, `&lt;`, `&gt;` | Decoded in ordinary text only | Also decoded in links, labels, and code |
63
- | Bold/italic/strike/code nesting | Parsed recursively | Parsed recursively and snapshot-covered |
64
- | `<url\|label>` | Rendered, but entities remained encoded in URL/label | Rendered with decoded entities and protocol guard |
65
- | Date tokens | Fallback or ISO date only | Deterministic UTC token formatting with Slack fallback |
66
- | Emoji shortcodes | Left as colon text | Core-known shortcodes render glyphs; custom names stay readable |
67
-
68
- ## Deliberate fallbacks
69
-
70
- - A `slack_file.id` has no renderable URL, so it remains an alt-labelled image
71
- placeholder. A resolver would require new public API and is outside this
72
- correctness pass.
73
- - Workspace-specific names and custom emoji still require existing resolvers;
74
- IDs/shortcodes remain visible when no resolver is supplied.
75
- - Unknown future blocks/elements use a neutral fallback rather than guessed
76
- Slack UI.
77
- - Malformed JSON still throws `BlockKitInvariantError`. The never-throw
78
- guarantee applies after JSON has a valid block-shaped structure.
79
- - Pixel parity for unharvested Slack Builder permutations remains separate
80
- style-harvest work; this pass does not guess or redesign those styles.
Binary file
Binary file
Binary file
Binary file