@effect-tui/react 0.10.0 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/src/components/ListView.d.ts.map +1 -1
  2. package/dist/src/components/ListView.js +7 -2
  3. package/dist/src/components/ListView.js.map +1 -1
  4. package/dist/src/hooks/use-scroll.d.ts.map +1 -1
  5. package/dist/src/hooks/use-scroll.js +12 -4
  6. package/dist/src/hooks/use-scroll.js.map +1 -1
  7. package/dist/src/hooks/use-timer.d.ts +2 -2
  8. package/dist/src/hooks/use-timer.d.ts.map +1 -1
  9. package/dist/src/hooks/use-timer.js +2 -2
  10. package/dist/src/hooks/use-timer.js.map +1 -1
  11. package/dist/src/hosts/base.d.ts +8 -0
  12. package/dist/src/hosts/base.d.ts.map +1 -1
  13. package/dist/src/hosts/base.js +14 -0
  14. package/dist/src/hosts/base.js.map +1 -1
  15. package/dist/src/hosts/box.js.map +1 -1
  16. package/dist/src/hosts/canvas.js.map +1 -1
  17. package/dist/src/hosts/codeblock.js.map +1 -1
  18. package/dist/src/hosts/flex-container.js.map +1 -1
  19. package/dist/src/hosts/hstack.d.ts +3 -5
  20. package/dist/src/hosts/hstack.d.ts.map +1 -1
  21. package/dist/src/hosts/hstack.js.map +1 -1
  22. package/dist/src/hosts/overlay-item.js.map +1 -1
  23. package/dist/src/hosts/scroll.js.map +1 -1
  24. package/dist/src/hosts/spacer.js.map +1 -1
  25. package/dist/src/hosts/text.js.map +1 -1
  26. package/dist/src/hosts/vstack.d.ts +3 -5
  27. package/dist/src/hosts/vstack.d.ts.map +1 -1
  28. package/dist/src/hosts/vstack.js.map +1 -1
  29. package/dist/src/hosts/zstack.js.map +1 -1
  30. package/dist/src/index.d.ts +2 -2
  31. package/dist/src/index.d.ts.map +1 -1
  32. package/dist/src/index.js +1 -1
  33. package/dist/src/index.js.map +1 -1
  34. package/dist/src/reconciler/types.d.ts +24 -1
  35. package/dist/src/reconciler/types.d.ts.map +1 -1
  36. package/dist/src/test-grow.d.ts +3 -0
  37. package/dist/src/test-grow.d.ts.map +1 -0
  38. package/dist/src/test-grow.js +8 -0
  39. package/dist/src/test-grow.js.map +1 -0
  40. package/dist/tsconfig.tsbuildinfo +1 -1
  41. package/package.json +2 -2
  42. package/src/components/ListView.tsx +8 -2
  43. package/src/hooks/use-scroll.ts +12 -4
  44. package/src/hooks/use-timer.ts +9 -6
  45. package/src/hosts/base.ts +17 -0
  46. package/src/hosts/box.ts +1 -1
  47. package/src/hosts/canvas.ts +1 -1
  48. package/src/hosts/codeblock.ts +1 -1
  49. package/src/hosts/flex-container.ts +1 -1
  50. package/src/hosts/hstack.ts +2 -5
  51. package/src/hosts/overlay-item.ts +1 -1
  52. package/src/hosts/scroll.ts +1 -1
  53. package/src/hosts/spacer.ts +1 -1
  54. package/src/hosts/text.ts +3 -3
  55. package/src/hosts/vstack.ts +2 -5
  56. package/src/hosts/zstack.ts +1 -1
  57. package/src/index.ts +5 -1
  58. package/src/reconciler/types.ts +21 -1
@@ -1,8 +1,6 @@
1
- import type { CommonProps, HostContext } from "../reconciler/types.js";
2
- import { FlexContainerHost } from "./flex-container.js";
3
- export interface VStackProps extends CommonProps {
4
- spacing?: number;
5
- alignment?: "leading" | "center" | "trailing";
1
+ import type { HostContext } from "../reconciler/types.js";
2
+ import { FlexContainerHost, type FlexContainerProps } from "./flex-container.js";
3
+ export interface VStackProps extends FlexContainerProps<"vertical"> {
6
4
  }
7
5
  /**
8
6
  * VStackHost lays out children vertically with optional spacing and cross-axis alignment.
@@ -1 +1 @@
1
- {"version":3,"file":"vstack.d.ts","sourceRoot":"","sources":["../../../src/hosts/vstack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAA2B,MAAM,qBAAqB,CAAA;AAEhF,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAA;CAC7C;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,iBAAiB,CAAC,UAAU,CAAC;gBAChD,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW;CAGhD"}
1
+ {"version":3,"file":"vstack.d.ts","sourceRoot":"","sources":["../../../src/hosts/vstack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAEhF,MAAM,WAAW,WAAY,SAAQ,kBAAkB,CAAC,UAAU,CAAC;CAAG;AAEtE;;GAEG;AACH,qBAAa,UAAW,SAAQ,iBAAiB,CAAC,UAAU,CAAC;gBAChD,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW;CAGhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"vstack.js","sourceRoot":"","sources":["../../../src/hosts/vstack.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,qBAAqB,CAAA;AAOhF;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,iBAA6B;IAC5D,YAAY,KAAkB,EAAE,GAAgB;QAC/C,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAuC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;IACrF,CAAC;CACD"}
1
+ {"version":3,"file":"vstack.js","sourceRoot":"","sources":["../../../src/hosts/vstack.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,qBAAqB,CAAA;AAIhF;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,iBAA6B;IAC5D,YAAY,KAAkB,EAAE,GAAgB;QAC/C,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAuC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;IACrF,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"zstack.js","sourceRoot":"","sources":["../../../src/hosts/zstack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zstack.js","sourceRoot":"","sources":["../../../src/hosts/zstack.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,8 @@ export { type ColumnProps, ListView, type ListViewProps, Markdown, type Markdown
5
5
  export { DiagnosticsPanel } from "./debug/DiagnosticsPanel.js";
6
6
  export { autoHmr, type DevRenderOptions, type DevRenderResult, devMain, devRender, DevWrapper, type DevWrapperProps, hmr, hmrState, } from "./dev.js";
7
7
  export { type HighlightLine, type HighlightToken, type HighlightTokenStyle, highlightCode, toPlainLines, } from "./highlight.js";
8
- export type { ScrollState, UseKeyboardOptions, UseMouseOptions, UseScrollOptions, UseScrollReturn, } from "./hooks/index.js";
9
- export { useKeyboard, useMouse, usePaste, useQuit, useScroll } from "./hooks/index.js";
8
+ export type { ScrollState, TimerStatus, TimerType, UseKeyboardOptions, UseMouseOptions, UseScrollOptions, UseScrollReturn, UseTimerConfig, UseTimerReturn, } from "./hooks/index.js";
9
+ export { useKeyboard, useMouse, usePaste, useQuit, useScroll, useTimer } from "./hooks/index.js";
10
10
  export { useFrameStats } from "./hooks/useFrameStats.js";
11
11
  export type { BorderKind, BoxProps } from "./hosts/box.js";
12
12
  export type { CanvasProps, DrawContext } from "./hosts/canvas.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAA;AAChC,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EACN,KAAK,WAAW,EAChB,QAAQ,EACR,KAAK,aAAa,EAClB,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,OAAO,EACP,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,SAAS,EACT,KAAK,cAAc,GACnB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAE9D,OAAO,EACN,OAAO,EACP,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,OAAO,EACP,SAAS,EACT,UAAU,EACV,KAAK,eAAe,EACpB,GAAG,EACH,QAAQ,GACR,MAAM,UAAU,CAAA;AAEjB,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,aAAa,EACb,YAAY,GACZ,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACX,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,eAAe,GACf,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC1D,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACjE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACtE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAErF,OAAO,EAEN,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,UAAU,GACV,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC/F,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEnG,OAAO,EACN,cAAc,EACd,UAAU,EACV,eAAe,EACf,MAAM,EACN,WAAW,EACX,eAAe,GACf,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAA;AAChC,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EACN,KAAK,WAAW,EAChB,QAAQ,EACR,KAAK,aAAa,EAClB,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,OAAO,EACP,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,SAAS,EACT,KAAK,cAAc,GACnB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAE9D,OAAO,EACN,OAAO,EACP,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,OAAO,EACP,SAAS,EACT,UAAU,EACV,KAAK,eAAe,EACpB,GAAG,EACH,QAAQ,GACR,MAAM,UAAU,CAAA;AAEjB,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,aAAa,EACb,YAAY,GACZ,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACX,WAAW,EACX,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,cAAc,GACd,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC1D,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACjE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACtE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAErF,OAAO,EAEN,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,UAAU,GACV,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC/F,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEnG,OAAO,EACN,cAAc,EACd,UAAU,EACV,eAAe,EACf,MAAM,EACN,WAAW,EACX,eAAe,GACf,MAAM,eAAe,CAAA"}
package/dist/src/index.js CHANGED
@@ -11,7 +11,7 @@ export { autoHmr, devMain, devRender, DevWrapper, hmr, hmrState, } from "./dev.j
11
11
  // Highlight utilities
12
12
  export { highlightCode, toPlainLines, } from "./highlight.js";
13
13
  // Hooks
14
- export { useKeyboard, useMouse, usePaste, useQuit, useScroll } from "./hooks/index.js";
14
+ export { useKeyboard, useMouse, usePaste, useQuit, useScroll, useTimer } from "./hooks/index.js";
15
15
  export { useFrameStats } from "./hooks/useFrameStats.js";
16
16
  // Motion (spring animations)
17
17
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,cAAc,kBAAkB,CAAA;AAEhC,kCAAkC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,mBAAmB;AACnB,OAAO,EAEN,QAAQ,EAER,QAAQ,EAGR,kBAAkB,EAElB,OAAO,EAGP,MAAM,EAEN,KAAK,EAGL,SAAS,GAET,MAAM,uBAAuB,CAAA;AAC9B,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,8BAA8B;AAC9B,OAAO,EACN,OAAO,EAGP,OAAO,EACP,SAAS,EACT,UAAU,EAEV,GAAG,EACH,QAAQ,GACR,MAAM,UAAU,CAAA;AACjB,sBAAsB;AACtB,OAAO,EAIN,aAAa,EACb,YAAY,GACZ,MAAM,gBAAgB,CAAA;AAQvB,QAAQ;AACR,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAUxD,6BAA6B;AAC7B,OAAO;AACN,gBAAgB;AAChB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,UAAU,GACV,MAAM,mBAAmB,CAAA;AAI1B,WAAW;AACX,OAAO,EACN,cAAc,EACd,UAAU,EACV,eAAe,EACf,MAAM,EACN,WAAW,EACX,eAAe,GACf,MAAM,eAAe,CAAA;AAEtB,kEAAkE;AAClE,2DAA2D"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,cAAc,kBAAkB,CAAA;AAEhC,kCAAkC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,mBAAmB;AACnB,OAAO,EAEN,QAAQ,EAER,QAAQ,EAGR,kBAAkB,EAElB,OAAO,EAGP,MAAM,EAEN,KAAK,EAGL,SAAS,GAET,MAAM,uBAAuB,CAAA;AAC9B,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,8BAA8B;AAC9B,OAAO,EACN,OAAO,EAGP,OAAO,EACP,SAAS,EACT,UAAU,EAEV,GAAG,EACH,QAAQ,GACR,MAAM,UAAU,CAAA;AACjB,sBAAsB;AACtB,OAAO,EAIN,aAAa,EACb,YAAY,GACZ,MAAM,gBAAgB,CAAA;AAYvB,QAAQ;AACR,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAUxD,6BAA6B;AAC7B,OAAO;AACN,gBAAgB;AAChB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,UAAU,GACV,MAAM,mBAAmB,CAAA;AAI1B,WAAW;AACX,OAAO,EACN,cAAc,EACd,UAAU,EACV,eAAe,EACf,MAAM,EACN,WAAW,EACX,eAAe,GACf,MAAM,eAAe,CAAA;AAEtB,kEAAkE;AAClE,2DAA2D"}
@@ -105,7 +105,30 @@ export interface CommonProps {
105
105
  minHeight?: number;
106
106
  /** Maximum height - natural size won't exceed this */
107
107
  maxHeight?: number;
108
- /** Index signature for Record<string, unknown> compatibility */
108
+ /**
109
+ * Called after layout with the element's final dimensions.
110
+ * Fires only when size changes (deduplicated).
111
+ *
112
+ * @example
113
+ * ```tsx
114
+ * const [size, setSize] = useState({ width: 0, height: 0 })
115
+ * <vstack greedy onLayout={setSize}>
116
+ * <text>Width: {size.width}</text>
117
+ * </vstack>
118
+ * ```
119
+ */
120
+ onLayout?: (size: {
121
+ width: number;
122
+ height: number;
123
+ x: number;
124
+ y: number;
125
+ }) => void;
126
+ /** React key prop for list reconciliation */
127
+ key?: string | number;
128
+ /**
129
+ * Index signature for Record<string, unknown> compatibility.
130
+ * TODO: Remove this and properly type all props to catch typos like "grow" instead of "greedy"
131
+ */
109
132
  [key: string]: unknown;
110
133
  }
111
134
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/reconciler/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGvE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AAE1B,MAAM,WAAW,YAAY;IAC5B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAA;IAEZ,qBAAqB;IACrB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,uBAAuB;IACvB,QAAQ,EAAE,YAAY,EAAE,CAAA;IAExB,qDAAqD;IACrD,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IAEjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,6CAA6C;IAC7C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAEzC,4CAA4C;IAC5C,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IAExB,uBAAuB;IACvB,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAElD,8BAA8B;IAC9B,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAEjD,yBAAyB;IACzB,OAAO,IAAI,IAAI,CAAA;IAEf,gBAAgB;IAChB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAEtC,mBAAmB;IACnB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAEtC,kCAAkC;IAClC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;CAC7D;AAED,MAAM,WAAW,WAAW;IAC3B,aAAa,IAAI,IAAI,CAAA;IACrB,kFAAkF;IAClF,sBAAsB,CAAC,IAAI,IAAI,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,WAAW,WAAW;IAC3B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAMzB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,gEAAgE;IAChE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/reconciler/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGvE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AAE1B,MAAM,WAAW,YAAY;IAC5B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAA;IAEZ,qBAAqB;IACrB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,uBAAuB;IACvB,QAAQ,EAAE,YAAY,EAAE,CAAA;IAExB,qDAAqD;IACrD,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IAEjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,6CAA6C;IAC7C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAEzC,4CAA4C;IAC5C,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IAExB,uBAAuB;IACvB,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAElD,8BAA8B;IAC9B,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAEjD,yBAAyB;IACzB,OAAO,IAAI,IAAI,CAAA;IAEf,gBAAgB;IAChB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAEtC,mBAAmB;IACnB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAEtC,kCAAkC;IAClC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;CAC7D;AAED,MAAM,WAAW,WAAW;IAC3B,aAAa,IAAI,IAAI,CAAA;IACrB,kFAAkF;IAClF,sBAAsB,CAAC,IAAI,IAAI,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,WAAW,WAAW;IAC3B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAMzB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAElF,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAErB;;;OAGG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB"}
@@ -0,0 +1,3 @@
1
+ import "../jsx.js";
2
+ export declare function TestGrow(): import("react").ReactNode;
3
+ //# sourceMappingURL=test-grow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-grow.d.ts","sourceRoot":"","sources":["../../src/test-grow.tsx"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAA;AAElB,wBAAgB,QAAQ,8BAGvB"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "@effect-tui/react/jsx-runtime";
2
+ import "../jsx.js";
3
+ import { useEffect } from "react";
4
+ export function TestGrow() {
5
+ // This should fail to compile because "grow" is not a valid prop
6
+ return _jsx("vstack", { grow: true, greedy: true, children: "test" });
7
+ }
8
+ //# sourceMappingURL=test-grow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-grow.js","sourceRoot":"","sources":["../../src/test-grow.tsx"],"names":[],"mappings":";AAAA,OAAO,WAAW,CAAA;AAClB,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,MAAM,UAAU,QAAQ;IACtB,iEAAiE;IACjE,OAAO,iBAAQ,IAAI,QAAC,MAAM,2BAAc,CAAC;AAC3C,CAAC"}