@astryxdesign/lab 0.7.6-canary.372a0ea → 0.7.6-canary.38398cd

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.
@@ -1 +1 @@
1
- {"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../src/CodeEditor/CodeEditor.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAkBlD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,8BAA8B,CAAC;AAuF5D,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,uBAAuB;IACvB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IAC5D;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAsED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,QAAsB,EACtB,cAAsB,EACtB,UAAkB,EAClB,WAAW,EACX,SAAS,EACT,IAAW,EACX,SAAS,EAAE,eAAe,EAC1B,KAAK,EACL,UAAqE,EACrE,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,eAAe,+BA8UjB;yBA/Ve,UAAU"}
1
+ {"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../src/CodeEditor/CodeEditor.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAkBlD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,8BAA8B,CAAC;AAuF5D,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,uBAAuB;IACvB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IAC5D;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAsED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,QAAsB,EACtB,cAAsB,EACtB,UAAkB,EAClB,WAAW,EACX,SAAS,EACT,IAAW,EACX,SAAS,EAAE,eAAe,EAC1B,KAAK,EACL,UAAqE,EACrE,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,eAAe,+BAsVjB;yBAvWe,UAAU"}
@@ -450,6 +450,7 @@ export function CodeEditor({
450
450
  }), stylex.props(styles.root, focused && styles.rootFocused, xstyle), className, style),
451
451
  ...props,
452
452
  children: /*#__PURE__*/_jsxs("div", {
453
+ dir: "ltr",
453
454
  ...{
454
455
  className: "x78zum5 x98rzlu xysyzu8"
455
456
  },
@@ -468,7 +469,12 @@ export function CodeEditor({
468
469
  position: 'relative',
469
470
  flex: 1
470
471
  },
471
- children: [showPlaceholder && /*#__PURE__*/_jsx("div", {
472
+ children: [showPlaceholder &&
473
+ /*#__PURE__*/
474
+ // The placeholder is prose, not code: it takes its own text's
475
+ // direction, so an Arabic or Hebrew hint still reads correctly.
476
+ _jsx("div", {
477
+ dir: "auto",
472
478
  ...stylex.props(styles.placeholder, sizeStyle),
473
479
  children: placeholder
474
480
  }), /*#__PURE__*/_jsx("code", {
@@ -1 +1 @@
1
- {"version":3,"file":"DiffViewer.d.ts","sourceRoot":"","sources":["../../src/DiffViewer/DiffViewer.tsx"],"names":[],"mappings":"AAqCA,OAAO,EAQL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,GAAG,EAET,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAGL,KAAK,YAAY,EAGlB,MAAM,8BAA8B,CAAC;AAOtC,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAC;AAqBzC,OAAO,KAAK,EACV,cAAc,EAGd,iBAAiB,EAElB,MAAM,aAAa,CAAC;AAGrB,uEAAuE;AACvE,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAAC;AAErD;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjE,MAAM,WAAW,eAAgB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAChE,yCAAyC;IACzC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1B;;;OAGG;IACH,IAAI,EAAE,cAAc,CAAC;IACrB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAC5C;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C;;;;;OAKG;IACH,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,SAAS,CAAC;IAC7D;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,CAClB,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KACjC,IAAI,CAAC;IACV,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AAi2BD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,EACzB,GAAG,EACH,IAAI,EACJ,QAAoB,EACpB,QAAQ,EAAE,YAAY,EACtB,aAAa,EACb,cAAqB,EACrB,SAAiB,EACjB,eAA2B,EAC3B,eAAwB,EACxB,mBAA0B,EAC1B,aAAoB,EACpB,WAAW,EAAE,eAAe,EAC5B,kBAA0B,EAC1B,iBAAiB,EACjB,SAAS,EACT,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,eAAe,+BAopBjB;yBA5qBe,UAAU"}
1
+ {"version":3,"file":"DiffViewer.d.ts","sourceRoot":"","sources":["../../src/DiffViewer/DiffViewer.tsx"],"names":[],"mappings":"AAqCA,OAAO,EAQL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,GAAG,EAET,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAGL,KAAK,YAAY,EAGlB,MAAM,8BAA8B,CAAC;AAOtC,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAC;AAqBzC,OAAO,KAAK,EACV,cAAc,EAGd,iBAAiB,EAElB,MAAM,aAAa,CAAC;AAGrB,uEAAuE;AACvE,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAAC;AAErD;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpE;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjE,MAAM,WAAW,eAAgB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAChE,yCAAyC;IACzC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1B;;;OAGG;IACH,IAAI,EAAE,cAAc,CAAC;IACrB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAC5C;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C;;;;;OAKG;IACH,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,SAAS,CAAC;IAC7D;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,CAClB,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KACjC,IAAI,CAAC;IACV,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,qBAAqB,CAAC;CACrC;AAq2BD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,EACzB,GAAG,EACH,IAAI,EACJ,QAAoB,EACpB,QAAQ,EAAE,YAAY,EACtB,aAAa,EACb,cAAqB,EACrB,SAAiB,EACjB,eAA2B,EAC3B,eAAwB,EACxB,mBAA0B,EAC1B,aAAoB,EACpB,WAAW,EAAE,eAAe,EAC5B,kBAA0B,EAC1B,iBAAiB,EACjB,SAAS,EACT,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,eAAe,+BAopBjB;yBA5qBe,UAAU"}
@@ -524,6 +524,7 @@ const styles = {
524
524
  khDVqt: "x126k92a",
525
525
  kTgw9: "x1lldw8n",
526
526
  kHjlTd: "xj0a0fe",
527
+ "--_astryx-text-overflow-wrap": "x5ujdhh",
527
528
  $$css: true
528
529
  },
529
530
  added: {
@@ -966,7 +967,7 @@ export function DiffViewer({
966
967
  },
967
968
  children: /*#__PURE__*/_jsx("div", {
968
969
  ...{
969
- className: "x1q06l6i xj0a0fe x41o525"
970
+ className: "x1q06l6i xj0a0fe x5ujdhh x41o525"
970
971
  },
971
972
  children: note
972
973
  })
@@ -1065,7 +1066,7 @@ export function DiffViewer({
1065
1066
  className: "xu0wf1k xrrkdod x1yc453h x11ds9ch xt5rlkq x1sdyfia xszpfcc xykt701 xgtxpae x1osaytk"
1066
1067
  },
1067
1068
  1: {
1068
- className: "xu0wf1k xrrkdod x1yc453h x11ds9ch xt5rlkq xszpfcc xykt701 xgtxpae x1osaytk x126k92a x1lldw8n xj0a0fe"
1069
+ className: "xu0wf1k xrrkdod x1yc453h x11ds9ch xt5rlkq xszpfcc xykt701 xgtxpae x1osaytk x126k92a x1lldw8n xj0a0fe x5ujdhh"
1069
1070
  }
1070
1071
  }[!!isWrapped << 0],
1071
1072
  children: isOld ? renderHunkText(row.header) : /*#__PURE__*/_jsxs(_Fragment, {
@@ -1109,7 +1110,7 @@ export function DiffViewer({
1109
1110
  },
1110
1111
  children: note != null && /*#__PURE__*/_jsx("div", {
1111
1112
  ...{
1112
- className: "x1q06l6i xj0a0fe x41o525"
1113
+ className: "x1q06l6i xj0a0fe x5ujdhh x41o525"
1113
1114
  },
1114
1115
  children: note
1115
1116
  })
@@ -1 +1 @@
1
- {"version":3,"file":"LogStream.d.ts","sourceRoot":"","sources":["../../src/LogStream/LogStream.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAkBlD,iCAAiC;AACjC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjE,0EAA0E;AAC1E,MAAM,WAAW,QAAQ;IACvB,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAC1C,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,6DAA6D;IAC7D,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACjC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,SAAS,CAAC;CAC9C;AAsOD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,OAAmB,EACnB,WAAW,EACX,cAAc,EACd,SAAS,EACT,aAAoB,EACpB,KAAoB,EACpB,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,cAAc,+BAqNhB;yBAnOe,SAAS"}
1
+ {"version":3,"file":"LogStream.d.ts","sourceRoot":"","sources":["../../src/LogStream/LogStream.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAkBlD,iCAAiC;AACjC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjE,0EAA0E;AAC1E,MAAM,WAAW,QAAQ;IACvB,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAC1C,SAAS,CAAC,cAAc,CAAC,EACzB,UAAU,CACX;IACC,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC,6DAA6D;IAC7D,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACjC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,SAAS,CAAC;CAC9C;AAwOD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,OAAmB,EACnB,WAAW,EACX,cAAc,EACd,SAAS,EACT,aAAoB,EACpB,KAAoB,EACpB,WAAW,EACX,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,cAAc,+BAqNhB;yBAnOe,SAAS"}
@@ -364,28 +364,28 @@ export function LogStream({
364
364
  }), /*#__PURE__*/_jsx("span", {
365
365
  ...{
366
366
  0: {
367
- className: "xeuugli xj0a0fe x126k92a"
367
+ className: "xeuugli xj0a0fe x5ujdhh x126k92a"
368
368
  },
369
369
  4: {
370
- className: "xeuugli xj0a0fe x126k92a x45uw2j"
370
+ className: "xeuugli xj0a0fe x5ujdhh x126k92a x45uw2j"
371
371
  },
372
372
  2: {
373
- className: "xeuugli xj0a0fe x126k92a xbz8ry5"
373
+ className: "xeuugli xj0a0fe x5ujdhh x126k92a xbz8ry5"
374
374
  },
375
375
  6: {
376
- className: "xeuugli xj0a0fe x126k92a xbz8ry5"
376
+ className: "xeuugli xj0a0fe x5ujdhh x126k92a xbz8ry5"
377
377
  },
378
378
  1: {
379
- className: "xeuugli xj0a0fe x126k92a x1gnejgv"
379
+ className: "xeuugli xj0a0fe x5ujdhh x126k92a x1gnejgv"
380
380
  },
381
381
  5: {
382
- className: "xeuugli xj0a0fe x126k92a x1gnejgv"
382
+ className: "xeuugli xj0a0fe x5ujdhh x126k92a x1gnejgv"
383
383
  },
384
384
  3: {
385
- className: "xeuugli xj0a0fe x126k92a x1gnejgv"
385
+ className: "xeuugli xj0a0fe x5ujdhh x126k92a x1gnejgv"
386
386
  },
387
387
  7: {
388
- className: "xeuugli xj0a0fe x126k92a x1gnejgv"
388
+ className: "xeuugli xj0a0fe x5ujdhh x126k92a x1gnejgv"
389
389
  }
390
390
  }[!!isTerminal << 2 | !!(isTerminal && entry.level === 'error') << 1 | !!(isTerminal && entry.level === 'warn') << 0],
391
391
  children: entry.message
package/dist/lab.css CHANGED
@@ -30,6 +30,7 @@
30
30
  @keyframes x17t2jll-B{0%{transform:translateY(0);opacity:.35;}30%{transform:translateY(-3px);opacity:1;}60%{transform:translateY(0);opacity:.35;}100%{transform:translateY(0);opacity:.35;}}
31
31
  :root, .x1ucsbpz{--icon-layer-primary-fill:none;--icon-layer-primary-stroke:currentColor;--icon-layer-primary-opacity:1;--icon-layer-primary-stroke-role-fill:none;--icon-layer-primary-stroke-role-stroke:currentColor;--icon-layer-primary-stroke-role-opacity:1;--icon-layer-primary-stroke-role-width:1.5;--icon-layer-secondary-fill:none;--icon-layer-secondary-stroke:currentColor;--icon-layer-secondary-opacity:1;--icon-layer-secondary-stroke-role-fill:none;--icon-layer-secondary-stroke-role-stroke:currentColor;--icon-layer-secondary-stroke-role-opacity:1;--icon-layer-secondary-stroke-role-width:1.5;--icon-size:24px;--icon-stroke-width:1.5;--icon-stroke-linecap:round;--icon-stroke-linejoin:round;--icon-padding:0px;--icon-inline-offset:0px;--icon-block-offset:0px;--icon-bold-stroke-boost:0.5;--icon-gap:0.75;--icon-gap-linejoin:round;}
32
32
  :root, .xc6kv0w{--transfer-list-panel-min-block-size:12rem;--transfer-list-panel-max-block-size:20rem;}
33
+ .x5ujdhh{--_astryx-text-overflow-wrap:anywhere}
33
34
  .x1eijsz{--icon-layer-primary-fill:currentColor}
34
35
  .xawlqpt{--icon-layer-primary-fill:none}
35
36
  .xgmpc9a{--icon-layer-primary-opacity:1}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astryxdesign/lab",
3
- "version": "0.7.6-canary.372a0ea",
3
+ "version": "0.7.6-canary.38398cd",
4
4
  "description": "Experimental Astryx components — published to npm only under the @canary dist-tag for early testing; never released as a stable (latest) version.",
5
5
  "author": "Meta Open Source",
6
6
  "license": "MIT",
@@ -49,7 +49,7 @@
49
49
  },
50
50
  "peerDependencies": {
51
51
  "@stylexjs/stylex": ">=0.10.0",
52
- "@astryxdesign/core": "0.7.6-canary.372a0ea",
52
+ "@astryxdesign/core": "0.7.6-canary.38398cd",
53
53
  "react": ">=19.0.0",
54
54
  "react-dom": ">=19.0.0"
55
55
  },
@@ -59,8 +59,9 @@
59
59
  "d3-shape": "^3.2.0"
60
60
  },
61
61
  "devDependencies": {
62
- "@astryxdesign/a11y-spec": "0.7.6-canary.372a0ea",
63
- "@astryxdesign/cli": "0.7.6-canary.372a0ea",
62
+ "@astryxdesign/a11y-spec": "0.7.6-canary.38398cd",
63
+ "@astryxdesign/cli": "0.7.6-canary.38398cd",
64
+ "@astryxdesign/interaction-harness": "0.7.6-canary.38398cd",
64
65
  "@babel/cli": "^7.29.7",
65
66
  "@babel/core": "^7.29.7",
66
67
  "@babel/preset-react": "^7.29.7",
@@ -24,6 +24,7 @@ import {
24
24
  serveStorybook,
25
25
  type StaticServer,
26
26
  } from '@astryxdesign/a11y-spec/storybook';
27
+ import {inPresentationOrder} from '@astryxdesign/interaction-harness';
27
28
 
28
29
  let storybook: StaticServer;
29
30
  test.beforeAll(async () => {
@@ -303,6 +304,11 @@ test('a value change keeps moving while a script holds the main thread', async (
303
304
  await cdp.detach();
304
305
  // A lost acknowledgement stalls the screencast and thins the frames.
305
306
  expect(ackFailures).toEqual([]);
307
+ // Chromium encodes each frame off its main thread and can send a slow one
308
+ // after the next: frames go by the swap timestamp each one carries. A frame
309
+ // that shows the arc behind an earlier one still has its own later
310
+ // timestamp, so it stays in place.
311
+ const presented = inPresentationOrder(raw);
306
312
  // Crop each frame to the ring, then read how far the arc reaches.
307
313
  const scratch = await page.context().newPage();
308
314
  let crops: string[];
@@ -344,13 +350,13 @@ test('a value change keeps moving while a script holds the main thread', async (
344
350
  }
345
351
  return out;
346
352
  },
347
- {items: raw.map(f => f.data), ring: box},
353
+ {items: presented.map(f => f.data), ring: box},
348
354
  );
349
355
  } finally {
350
356
  await scratch.close();
351
357
  }
352
358
  const rows = await inkByDegree(page, crops, palette);
353
- const frames = rows.map((row, i) => ({t: raw[i].t, ...span(row)}));
359
+ const frames = rows.map((row, i) => ({t: presented[i].t, ...span(row)}));
354
360
  const inside = frames.filter(
355
361
  f => f.t >= busy.from + 20 && f.t <= busy.to - 20,
356
362
  );
@@ -51,6 +51,33 @@ function renderEditor(value = '', props: {escapeHint?: string} = {}) {
51
51
  }
52
52
 
53
53
  describe('CodeEditor', () => {
54
+ it('keeps the code left-to-right inside a right-to-left page', () => {
55
+ render(
56
+ <div dir="rtl">
57
+ <CodeEditor label="Code" value="const a = 1;" onChange={() => {}} />
58
+ </div>,
59
+ );
60
+ const editor = screen.getByRole('textbox', {name: 'Code'});
61
+ expect(editor.closest('[dir]')).toHaveAttribute('dir', 'ltr');
62
+ });
63
+
64
+ it('lets the placeholder take its own text direction', () => {
65
+ render(
66
+ <div dir="rtl">
67
+ <CodeEditor
68
+ label="Code"
69
+ value=""
70
+ onChange={() => {}}
71
+ placeholder="اكتب الكود هنا..."
72
+ />
73
+ </div>,
74
+ );
75
+ expect(screen.getByText('اكتب الكود هنا...')).toHaveAttribute(
76
+ 'dir',
77
+ 'auto',
78
+ );
79
+ });
80
+
54
81
  it('uses the label prop as the accessible name', () => {
55
82
  render(
56
83
  <CodeEditor
@@ -556,7 +556,13 @@ export function CodeEditor({
556
556
  style,
557
557
  )}
558
558
  {...props}>
559
- <div {...stylex.props(styles.editorContainer)} style={containerStyle}>
559
+ {/* Code, with its line numbers, keeps its own left-to-right direction
560
+ inside a right-to-left page (design:bidirectionality DR2): lines read
561
+ and indent correctly, and a long line scrolls from its start. */}
562
+ <div
563
+ dir="ltr"
564
+ {...stylex.props(styles.editorContainer)}
565
+ style={containerStyle}>
560
566
  {hasLineNumbers && (
561
567
  <div
562
568
  {...stylex.props(styles.gutter, gutterSizeStyle)}
@@ -570,7 +576,9 @@ export function CodeEditor({
570
576
  )}
571
577
  <div style={{position: 'relative', flex: 1}}>
572
578
  {showPlaceholder && (
573
- <div {...stylex.props(styles.placeholder, sizeStyle)}>
579
+ // The placeholder is prose, not code: it takes its own text's
580
+ // direction, so an Arabic or Hebrew hint still reads correctly.
581
+ <div dir="auto" {...stylex.props(styles.placeholder, sizeStyle)}>
574
582
  {placeholder}
575
583
  </div>
576
584
  )}
@@ -822,6 +822,8 @@ const styles = stylex.create({
822
822
  whiteSpace: 'pre-wrap',
823
823
  wordBreak: 'normal',
824
824
  overflowWrap: 'anywhere',
825
+ // Text inside keeps `anywhere` too (Text FR3).
826
+ '--_astryx-text-overflow-wrap': 'anywhere',
825
827
  },
826
828
  // Row tints are a background-image layer so a pinned (sticky) cell can lay
827
829
  // them over an opaque syntax background.
@@ -960,6 +962,8 @@ const annotationStyles = stylex.create({
960
962
  content: {
961
963
  direction: {default: null, ':is([dir="rtl"] *)': 'rtl'},
962
964
  overflowWrap: 'anywhere',
965
+ // Text inside keeps `anywhere` too (Text FR3).
966
+ '--_astryx-text-overflow-wrap': 'anywhere',
963
967
  contain: 'inline-size',
964
968
  },
965
969
  });
@@ -257,6 +257,8 @@ const styles = stylex.create({
257
257
  message: {
258
258
  minWidth: 0,
259
259
  overflowWrap: 'anywhere',
260
+ // Text inside keeps `anywhere` too (Text FR3).
261
+ '--_astryx-text-overflow-wrap': 'anywhere',
260
262
  whiteSpace: 'pre-wrap',
261
263
  },
262
264
  messageTerminal: {