@nuvin/ink 7.5.0-alpha → 7.7.0-alpha

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 (80) hide show
  1. package/build/allocated-seek.d.ts +21 -0
  2. package/build/allocated-seek.js +273 -0
  3. package/build/allocated-seek.js.map +1 -0
  4. package/build/ansi-tokenizer.js.map +1 -1
  5. package/build/components/App.d.ts +5 -1
  6. package/build/components/App.js +48 -10
  7. package/build/components/App.js.map +1 -1
  8. package/build/components/Box.d.ts +95 -0
  9. package/build/components/Box.js +176 -140
  10. package/build/components/Box.js.map +1 -1
  11. package/build/components/Transform.js +1 -1
  12. package/build/components/Transform.js.map +1 -1
  13. package/build/components/VLBox.d.ts +87 -0
  14. package/build/components/VLBox.js +5 -0
  15. package/build/components/VLBox.js.map +1 -0
  16. package/build/dom.d.ts +45 -1
  17. package/build/dom.js +5 -0
  18. package/build/dom.js.map +1 -1
  19. package/build/explicit-width-detection.d.ts +45 -0
  20. package/build/explicit-width-detection.js +172 -0
  21. package/build/explicit-width-detection.js.map +1 -0
  22. package/build/explicit-width.d.ts +1 -0
  23. package/build/explicit-width.js +114 -0
  24. package/build/explicit-width.js.map +1 -0
  25. package/build/hooks/use-input.js +3 -3
  26. package/build/hooks/use-input.js.map +1 -1
  27. package/build/index.d.ts +2 -0
  28. package/build/index.js +1 -0
  29. package/build/index.js.map +1 -1
  30. package/build/ink.d.ts +45 -2
  31. package/build/ink.js +691 -164
  32. package/build/ink.js.map +1 -1
  33. package/build/input-parser.d.ts +14 -1
  34. package/build/input-parser.js +74 -4
  35. package/build/input-parser.js.map +1 -1
  36. package/build/layout-metadata.d.ts +28 -0
  37. package/build/layout-metadata.js +302 -0
  38. package/build/layout-metadata.js.map +1 -0
  39. package/build/log-update.d.ts +16 -8
  40. package/build/log-update.js +439 -37
  41. package/build/log-update.js.map +1 -1
  42. package/build/measure-text.d.ts +1 -1
  43. package/build/measure-text.js +2 -2
  44. package/build/measure-text.js.map +1 -1
  45. package/build/output.d.ts +1 -0
  46. package/build/output.js +69 -28
  47. package/build/output.js.map +1 -1
  48. package/build/reconciler.js +84 -10
  49. package/build/reconciler.js.map +1 -1
  50. package/build/render-background.d.ts +2 -2
  51. package/build/render-background.js +33 -5
  52. package/build/render-background.js.map +1 -1
  53. package/build/render-border.d.ts +2 -2
  54. package/build/render-border.js +78 -34
  55. package/build/render-border.js.map +1 -1
  56. package/build/render-node-to-output.d.ts +7 -1
  57. package/build/render-node-to-output.js +118 -27
  58. package/build/render-node-to-output.js.map +1 -1
  59. package/build/render-to-string.js +2 -1
  60. package/build/render-to-string.js.map +1 -1
  61. package/build/render.d.ts +11 -0
  62. package/build/render.js.map +1 -1
  63. package/build/renderer.d.ts +1 -0
  64. package/build/renderer.js +10 -2
  65. package/build/renderer.js.map +1 -1
  66. package/build/styles.js.map +1 -1
  67. package/build/terminal-control.d.ts +6 -0
  68. package/build/terminal-control.js +124 -0
  69. package/build/terminal-control.js.map +1 -0
  70. package/build/terminal-paint.d.ts +38 -0
  71. package/build/terminal-paint.js +47 -0
  72. package/build/terminal-paint.js.map +1 -0
  73. package/build/wrap-text.d.ts +1 -1
  74. package/build/wrap-text.js +2 -2
  75. package/build/wrap-text.js.map +1 -1
  76. package/package.json +3 -1
  77. package/readme.md +98 -0
  78. package/build/reflow.d.ts +0 -12
  79. package/build/reflow.js +0 -47
  80. package/build/reflow.js.map +0 -1
@@ -56,6 +56,101 @@ export type Props = Except<Styles, 'textWrap'> & {
56
56
  /**
57
57
  `<Box>` is an essential Ink component to build your layout. It's like `<div style="display: flex">` in the browser.
58
58
  */
59
+ export declare const createBoxComponent: (displayName: string, viewportCulling: boolean) => React.ForwardRefExoticComponent<{
60
+ readonly position?: "absolute" | "relative" | "static" | "sticky" | undefined;
61
+ readonly top?: number | string | undefined;
62
+ readonly right?: number | string | undefined;
63
+ readonly bottom?: number | string | undefined;
64
+ readonly left?: number | string | undefined;
65
+ readonly columnGap?: number | undefined;
66
+ readonly rowGap?: number | undefined;
67
+ readonly gap?: number | undefined;
68
+ readonly margin?: number | undefined;
69
+ readonly marginX?: number | undefined;
70
+ readonly marginY?: number | undefined;
71
+ readonly marginTop?: number | undefined;
72
+ readonly marginBottom?: number | undefined;
73
+ readonly marginLeft?: number | undefined;
74
+ readonly marginRight?: number | undefined;
75
+ readonly padding?: number | undefined;
76
+ readonly paddingX?: number | undefined;
77
+ readonly paddingY?: number | undefined;
78
+ readonly paddingTop?: number | undefined;
79
+ readonly paddingBottom?: number | undefined;
80
+ readonly paddingLeft?: number | undefined;
81
+ readonly paddingRight?: number | undefined;
82
+ readonly flexGrow?: number | undefined;
83
+ readonly flexShrink?: number | undefined;
84
+ readonly flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined;
85
+ readonly flexBasis?: number | string | undefined;
86
+ readonly flexWrap?: "nowrap" | "wrap" | "wrap-reverse" | undefined;
87
+ readonly alignItems?: "flex-start" | "center" | "flex-end" | "stretch" | "baseline" | undefined;
88
+ readonly alignSelf?: "flex-start" | "center" | "flex-end" | "auto" | "stretch" | "baseline" | undefined;
89
+ readonly alignContent?: "flex-start" | "flex-end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly" | undefined;
90
+ readonly justifyContent?: "flex-start" | "flex-end" | "space-between" | "space-around" | "space-evenly" | "center" | undefined;
91
+ readonly width?: number | string | undefined;
92
+ readonly height?: number | string | undefined;
93
+ readonly minWidth?: number | string | undefined;
94
+ readonly minHeight?: number | string | undefined;
95
+ readonly maxWidth?: number | string | undefined;
96
+ readonly maxHeight?: number | string | undefined;
97
+ readonly aspectRatio?: number | undefined;
98
+ readonly display?: "flex" | "none" | undefined;
99
+ readonly borderStyle?: (keyof import("cli-boxes").Boxes | import("cli-boxes").BoxStyle) | undefined;
100
+ readonly borderTop?: boolean | undefined;
101
+ readonly borderBottom?: boolean | undefined;
102
+ readonly borderLeft?: boolean | undefined;
103
+ readonly borderRight?: boolean | undefined;
104
+ readonly borderColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
105
+ readonly borderTopColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
106
+ readonly borderBottomColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
107
+ readonly borderLeftColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
108
+ readonly borderRightColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
109
+ readonly borderDimColor?: boolean | undefined;
110
+ readonly borderTopDimColor?: boolean | undefined;
111
+ readonly borderBottomDimColor?: boolean | undefined;
112
+ readonly borderLeftDimColor?: boolean | undefined;
113
+ readonly borderRightDimColor?: boolean | undefined;
114
+ readonly borderBackgroundColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
115
+ readonly borderTopBackgroundColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
116
+ readonly borderBottomBackgroundColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
117
+ readonly borderLeftBackgroundColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
118
+ readonly borderRightBackgroundColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
119
+ readonly overflow?: "visible" | "hidden" | "scroll" | undefined;
120
+ readonly overflowX?: "visible" | "hidden" | "scroll" | undefined;
121
+ readonly overflowY?: "visible" | "hidden" | "scroll" | undefined;
122
+ readonly backgroundColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
123
+ readonly zIndex?: number | undefined;
124
+ } & {
125
+ /**
126
+ A label for the element for screen readers.
127
+ */
128
+ readonly 'aria-label'?: string;
129
+ /**
130
+ Hide the element from screen readers.
131
+ */
132
+ readonly 'aria-hidden'?: boolean;
133
+ /**
134
+ The role of the element.
135
+ */
136
+ readonly 'aria-role'?: "button" | "checkbox" | "combobox" | "list" | "listbox" | "listitem" | "menu" | "menuitem" | "option" | "progressbar" | "radio" | "radiogroup" | "tab" | "tablist" | "table" | "textbox" | "timer" | "toolbar";
137
+ /**
138
+ The state of the element.
139
+ */
140
+ readonly 'aria-state'?: {
141
+ readonly busy?: boolean;
142
+ readonly checked?: boolean;
143
+ readonly disabled?: boolean;
144
+ readonly expanded?: boolean;
145
+ readonly multiline?: boolean;
146
+ readonly multiselectable?: boolean;
147
+ readonly readonly?: boolean;
148
+ readonly required?: boolean;
149
+ readonly selected?: boolean;
150
+ };
151
+ } & {
152
+ children?: React.ReactNode | undefined;
153
+ } & React.RefAttributes<BoxRef>>;
59
154
  declare const Box: React.ForwardRefExoticComponent<{
60
155
  readonly position?: "absolute" | "relative" | "static" | "sticky" | undefined;
61
156
  readonly top?: number | string | undefined;
@@ -1,161 +1,197 @@
1
1
  import React, { forwardRef, useContext, useImperativeHandle, useLayoutEffect, useRef, useState, } from 'react';
2
2
  import Yoga from 'yoga-layout';
3
+ import { clampViewportScroll, getScrollViewportMetadata, requestRootPaint, sameOffset, } from '../layout-metadata.js';
3
4
  import { accessibilityContext } from './AccessibilityContext.js';
4
5
  import { backgroundContext } from './BackgroundContext.js';
5
6
  /**
6
7
  `<Box>` is an essential Ink component to build your layout. It's like `<div style="display: flex">` in the browser.
7
8
  */
8
- const Box = forwardRef(({ children, backgroundColor, 'aria-label': ariaLabel, 'aria-hidden': ariaHidden, 'aria-role': role, 'aria-state': ariaState, ...style }, ref) => {
9
- const internalRef = useRef(null);
10
- const scrollStateRef = useRef({ x: 0, y: 0 });
11
- const [scrollVersion, setScrollVersion] = useState(0);
12
- useImperativeHandle(ref, () => {
13
- const element = internalRef.current;
14
- if (!element) {
15
- return null;
16
- }
17
- const getContentDimensions = () => {
18
- const { yogaNode } = element;
19
- if (!yogaNode) {
20
- return { width: 0, height: 0 };
9
+ export const createBoxComponent = (displayName, viewportCulling) => {
10
+ const Component = forwardRef(({ children, backgroundColor, 'aria-label': ariaLabel, 'aria-hidden': ariaHidden, 'aria-role': role, 'aria-state': ariaState, ...style }, ref) => {
11
+ const internalRef = useRef(null);
12
+ const scrollStateRef = useRef({ x: 0, y: 0 });
13
+ const [scrollVersion, setScrollVersion] = useState(0);
14
+ useImperativeHandle(ref, () => {
15
+ const element = internalRef.current;
16
+ if (!element) {
17
+ return null;
21
18
  }
22
- let maxWidth = 0;
23
- let maxHeight = 0;
24
- const measureNode = (node, offsetX, offsetY) => {
25
- for (const child of node.childNodes) {
26
- if ('yogaNode' in child && child.yogaNode) {
27
- const childYoga = child.yogaNode;
28
- const childX = offsetX + childYoga.getComputedLeft();
29
- const childY = offsetY + childYoga.getComputedTop();
30
- const right = childX + childYoga.getComputedWidth();
31
- const bottom = childY + childYoga.getComputedHeight();
32
- maxWidth = Math.max(maxWidth, right);
33
- maxHeight = Math.max(maxHeight, bottom);
34
- measureNode(child, childX, childY);
35
- }
19
+ const getContentDimensions = () => {
20
+ const { yogaNode } = element;
21
+ if (!yogaNode) {
22
+ return { width: 0, height: 0 };
36
23
  }
24
+ let maxWidth = 0;
25
+ let maxHeight = 0;
26
+ const measureNode = (node, offsetX, offsetY) => {
27
+ for (const child of node.childNodes) {
28
+ if ('yogaNode' in child && child.yogaNode) {
29
+ const childYoga = child.yogaNode;
30
+ const childX = offsetX + childYoga.getComputedLeft();
31
+ const childY = offsetY + childYoga.getComputedTop();
32
+ const right = childX + childYoga.getComputedWidth();
33
+ const bottom = childY + childYoga.getComputedHeight();
34
+ maxWidth = Math.max(maxWidth, right);
35
+ maxHeight = Math.max(maxHeight, bottom);
36
+ measureNode(child, childX, childY);
37
+ }
38
+ }
39
+ };
40
+ measureNode(element, 0, 0);
41
+ return { width: maxWidth, height: maxHeight };
37
42
  };
38
- measureNode(element, 0, 0);
39
- return { width: maxWidth, height: maxHeight };
40
- };
41
- const getMaxScroll = () => {
42
- const { yogaNode } = element;
43
- if (!yogaNode) {
44
- return { x: 0, y: 0 };
45
- }
46
- const containerWidth = yogaNode.getComputedWidth() -
47
- yogaNode.getComputedBorder(Yoga.EDGE_LEFT) -
48
- yogaNode.getComputedBorder(Yoga.EDGE_RIGHT);
49
- const containerHeight = yogaNode.getComputedHeight() -
50
- yogaNode.getComputedBorder(Yoga.EDGE_TOP) -
51
- yogaNode.getComputedBorder(Yoga.EDGE_BOTTOM);
52
- const content = getContentDimensions();
53
- return {
54
- x: Math.max(0, content.width - containerWidth),
55
- y: Math.max(0, content.height - containerHeight),
56
- };
57
- };
58
- return Object.assign(element, {
59
- scrollTo({ x, y }) {
60
- const maxScroll = getMaxScroll();
61
- if (x !== undefined) {
62
- scrollStateRef.current.x = Math.max(0, Math.min(x, maxScroll.x));
63
- }
64
- if (y !== undefined) {
65
- scrollStateRef.current.y = Math.max(0, Math.min(y, maxScroll.y));
66
- }
67
- element.internal_scrollOffset = { ...scrollStateRef.current };
68
- setScrollVersion(version => version + 1);
69
- },
70
- getScrollPosition() {
71
- return { ...scrollStateRef.current };
72
- },
73
- scrollToTop() {
74
- scrollStateRef.current.y = 0;
75
- element.internal_scrollOffset = { ...scrollStateRef.current };
76
- setScrollVersion(version => version + 1);
77
- },
78
- scrollToBottom() {
79
- const maxScroll = getMaxScroll();
80
- scrollStateRef.current.y = maxScroll.y;
81
- element.internal_scrollOffset = { ...scrollStateRef.current };
82
- setScrollVersion(version => version + 1);
83
- },
84
- getBounds() {
43
+ const getMaxScroll = () => {
85
44
  const { yogaNode } = element;
86
45
  if (!yogaNode) {
87
- return { x: 0, y: 0, width: 0, height: 0 };
46
+ return { x: 0, y: 0 };
88
47
  }
89
- let x = yogaNode.getComputedLeft();
90
- let y = yogaNode.getComputedTop();
91
- const width = yogaNode.getComputedWidth();
92
- const height = yogaNode.getComputedHeight();
93
- // A pinned `position: "sticky"` node is drawn away from its
94
- // natural-flow position by `renderStickyNode`, which records the
95
- // drawn rect on the element. Prefer it so hit-testing lands on the
96
- // pinned copy. The live `position === 'sticky'` guard ensures a node
97
- // that has since stopped being sticky never reads a stale rect.
98
- const stickyRect = element.internal_stickyRect;
99
- if (element.style.position === 'sticky' && stickyRect) {
100
- return { x: stickyRect.x, y: stickyRect.y, width, height };
101
- }
102
- let parent = element.parentNode;
103
- while (parent && 'yogaNode' in parent && parent.yogaNode) {
104
- x += parent.yogaNode.getComputedLeft();
105
- y += parent.yogaNode.getComputedTop();
106
- parent = parent.parentNode;
48
+ const containerWidth = yogaNode.getComputedWidth() -
49
+ yogaNode.getComputedBorder(Yoga.EDGE_LEFT) -
50
+ yogaNode.getComputedBorder(Yoga.EDGE_RIGHT);
51
+ const containerHeight = yogaNode.getComputedHeight() -
52
+ yogaNode.getComputedBorder(Yoga.EDGE_TOP) -
53
+ yogaNode.getComputedBorder(Yoga.EDGE_BOTTOM);
54
+ const metadata = getScrollViewportMetadata(element);
55
+ const content = viewportCulling && metadata
56
+ ? metadata.contentExtent
57
+ : getContentDimensions();
58
+ return {
59
+ x: Math.max(0, content.width - containerWidth),
60
+ y: Math.max(0, content.height - containerHeight),
61
+ };
62
+ };
63
+ const applyViewportScroll = (requested) => {
64
+ if (viewportCulling) {
65
+ const current = element.internal_scrollOffset ?? scrollStateRef.current;
66
+ const next = clampViewportScroll(element, requested);
67
+ // Keep the hook ref synchronized before the caller's React controller
68
+ // commit can run this component's layout effect.
69
+ scrollStateRef.current = { ...next };
70
+ if (sameOffset(current, next))
71
+ return;
72
+ element.internal_scrollOffset = { ...next };
73
+ requestRootPaint(element);
74
+ return;
107
75
  }
108
- return { x, y, width, height };
109
- },
110
- getPaintOrder() {
111
- let root = element;
112
- while (root.parentNode) {
113
- root = root.parentNode;
76
+ const maxScroll = getMaxScroll();
77
+ if (requested.x !== undefined) {
78
+ scrollStateRef.current.x = Math.max(0, Math.min(requested.x, maxScroll.x));
114
79
  }
115
- if (element.internal_paintEpoch === undefined ||
116
- element.internal_paintIndex === undefined ||
117
- element.internal_paintEpoch !== root.internal_paintEpoch) {
118
- return undefined;
80
+ if (requested.y !== undefined) {
81
+ scrollStateRef.current.y = Math.max(0, Math.min(requested.y, maxScroll.y));
119
82
  }
120
- return {
121
- epoch: element.internal_paintEpoch,
122
- index: element.internal_paintIndex,
123
- };
124
- },
83
+ element.internal_scrollOffset = { ...scrollStateRef.current };
84
+ setScrollVersion(version => version + 1);
85
+ };
86
+ return Object.assign(element, {
87
+ scrollTo(requested) {
88
+ applyViewportScroll(requested);
89
+ },
90
+ getScrollPosition() {
91
+ if (viewportCulling) {
92
+ return { ...(element.internal_scrollOffset ?? { x: 0, y: 0 }) };
93
+ }
94
+ return { ...scrollStateRef.current };
95
+ },
96
+ scrollToTop() {
97
+ applyViewportScroll({ y: 0 });
98
+ },
99
+ scrollToBottom() {
100
+ applyViewportScroll({ y: Number.MAX_SAFE_INTEGER });
101
+ },
102
+ getBounds() {
103
+ const { yogaNode } = element;
104
+ if (!yogaNode) {
105
+ return { x: 0, y: 0, width: 0, height: 0 };
106
+ }
107
+ let x = yogaNode.getComputedLeft();
108
+ let y = yogaNode.getComputedTop();
109
+ const width = yogaNode.getComputedWidth();
110
+ const height = yogaNode.getComputedHeight();
111
+ // A pinned sticky is drawn away from its Yoga-derived position.
112
+ // Prefer its recorded rect only while its paint epoch is current;
113
+ // rejected subtrees can intentionally retain older sticky rects.
114
+ const stickyRect = element.internal_stickyRect;
115
+ if (element.style.position === 'sticky' &&
116
+ stickyRect &&
117
+ element.internal_paintEpoch !== undefined) {
118
+ let root = element;
119
+ while (root.parentNode) {
120
+ root = root.parentNode;
121
+ }
122
+ if (root.nodeName === 'ink-root' &&
123
+ root.internal_paintEpoch !== undefined &&
124
+ element.internal_paintEpoch === root.internal_paintEpoch) {
125
+ return { x: stickyRect.x, y: stickyRect.y, width, height };
126
+ }
127
+ }
128
+ let parent = element.parentNode;
129
+ while (parent && 'yogaNode' in parent && parent.yogaNode) {
130
+ x += parent.yogaNode.getComputedLeft();
131
+ y += parent.yogaNode.getComputedTop();
132
+ parent = parent.parentNode;
133
+ }
134
+ return { x, y, width, height };
135
+ },
136
+ getPaintOrder() {
137
+ let root = element;
138
+ while (root.parentNode) {
139
+ root = root.parentNode;
140
+ }
141
+ if (element.internal_paintEpoch === undefined ||
142
+ element.internal_paintIndex === undefined ||
143
+ element.internal_paintEpoch !== root.internal_paintEpoch) {
144
+ return undefined;
145
+ }
146
+ return {
147
+ epoch: element.internal_paintEpoch,
148
+ index: element.internal_paintIndex,
149
+ };
150
+ },
151
+ });
152
+ }, []);
153
+ const isScrollContainer = style.overflow === 'scroll' ||
154
+ style.overflowX === 'scroll' ||
155
+ style.overflowY === 'scroll';
156
+ useLayoutEffect(() => {
157
+ const element = internalRef.current;
158
+ if (!element || !isScrollContainer)
159
+ return;
160
+ if (viewportCulling) {
161
+ const retained = element.internal_scrollOffset ?? scrollStateRef.current;
162
+ scrollStateRef.current = { ...retained };
163
+ element.internal_scrollOffset = { ...retained };
164
+ return;
165
+ }
166
+ element.internal_scrollOffset = scrollStateRef.current;
125
167
  });
126
- }, []);
127
- const isScrollContainer = style.overflow === 'scroll' ||
128
- style.overflowX === 'scroll' ||
129
- style.overflowY === 'scroll';
130
- useLayoutEffect(() => {
131
- if (internalRef.current && isScrollContainer) {
132
- internalRef.current.internal_scrollOffset = scrollStateRef.current;
168
+ const { isScreenReaderEnabled } = useContext(accessibilityContext);
169
+ const label = ariaLabel ? React.createElement("ink-text", null, ariaLabel) : undefined;
170
+ if (isScreenReaderEnabled && ariaHidden) {
171
+ return null;
172
+ }
173
+ const boxElement = (React.createElement("ink-box", { ref: internalRef, internal_viewportCulling: viewportCulling || undefined, style: {
174
+ flexWrap: 'nowrap',
175
+ flexDirection: 'row',
176
+ flexGrow: 0,
177
+ flexShrink: 1,
178
+ ...style,
179
+ backgroundColor,
180
+ overflowX: style.overflowX ?? style.overflow ?? 'visible',
181
+ overflowY: style.overflowY ?? style.overflow ?? 'visible',
182
+ }, internal_accessibility: {
183
+ role,
184
+ state: ariaState,
185
+ }, internal_scrollVersion: isScrollContainer ? scrollVersion : undefined }, isScreenReaderEnabled && label ? label : children));
186
+ // If this Box has a background color, provide it to children via context
187
+ if (backgroundColor) {
188
+ return (React.createElement(backgroundContext.Provider, { value: backgroundColor }, boxElement));
133
189
  }
190
+ return boxElement;
134
191
  });
135
- const { isScreenReaderEnabled } = useContext(accessibilityContext);
136
- const label = ariaLabel ? React.createElement("ink-text", null, ariaLabel) : undefined;
137
- if (isScreenReaderEnabled && ariaHidden) {
138
- return null;
139
- }
140
- const boxElement = (React.createElement("ink-box", { ref: internalRef, style: {
141
- flexWrap: 'nowrap',
142
- flexDirection: 'row',
143
- flexGrow: 0,
144
- flexShrink: 1,
145
- ...style,
146
- backgroundColor,
147
- overflowX: style.overflowX ?? style.overflow ?? 'visible',
148
- overflowY: style.overflowY ?? style.overflow ?? 'visible',
149
- }, internal_accessibility: {
150
- role,
151
- state: ariaState,
152
- }, internal_scrollVersion: isScrollContainer ? scrollVersion : undefined }, isScreenReaderEnabled && label ? label : children));
153
- // If this Box has a background color, provide it to children via context
154
- if (backgroundColor) {
155
- return (React.createElement(backgroundContext.Provider, { value: backgroundColor }, boxElement));
156
- }
157
- return boxElement;
158
- });
159
- Box.displayName = 'Box';
192
+ Component.displayName = displayName;
193
+ return Component;
194
+ };
195
+ const Box = createBoxComponent('Box', false);
160
196
  export default Box;
161
197
  //# sourceMappingURL=Box.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Box.js","sourceRoot":"","sources":["../../src/components/Box.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Box.js","sourceRoot":"","sources":["../../src/components/Box.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACb,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,MAAM,EACN,QAAQ,GAER,MAAM,OAAO,CAAC;AACf,OAAO,IAAI,MAAM,aAAa,CAAC;AAI/B,OAAO,EACN,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,UAAU,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AAkEzD;;EAEE;AACF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,WAAmB,EACnB,eAAwB,EACvB,EAAE;IACH,MAAM,SAAS,GAAG,UAAU,CAC3B,CACC,EACC,QAAQ,EACR,eAAe,EACf,YAAY,EAAE,SAAS,EACvB,aAAa,EAAE,UAAU,EACzB,WAAW,EAAE,IAAI,EACjB,YAAY,EAAE,SAAS,EACvB,GAAG,KAAK,EACR,EACD,GAAG,EACF,EAAE;QACH,MAAM,WAAW,GAAG,MAAM,CAAa,IAAI,CAAC,CAAC;QAC7C,MAAM,cAAc,GAAG,MAAM,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEtD,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE;YAC7B,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,IAAyB,CAAC;YAClC,CAAC;YAED,MAAM,oBAAoB,GAAG,GAAG,EAAE;gBACjC,MAAM,EAAC,QAAQ,EAAC,GAAG,OAAO,CAAC;gBAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACf,OAAO,EAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC;gBAC9B,CAAC;gBAED,IAAI,QAAQ,GAAG,CAAC,CAAC;gBACjB,IAAI,SAAS,GAAG,CAAC,CAAC;gBAElB,MAAM,WAAW,GAAG,CACnB,IAAoB,EACpB,OAAe,EACf,OAAe,EACd,EAAE;oBACH,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACrC,IAAI,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;4BAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC;4BACjC,MAAM,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;4BACrD,MAAM,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;4BACpD,MAAM,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC,gBAAgB,EAAE,CAAC;4BACpD,MAAM,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;4BACtD,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;4BACrC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;4BACxC,WAAW,CAAC,KAAuB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;wBACtD,CAAC;oBACF,CAAC;gBACF,CAAC,CAAC;gBAEF,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAE3B,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAC,CAAC;YAC7C,CAAC,CAAC;YAEF,MAAM,YAAY,GAAG,GAAG,EAAE;gBACzB,MAAM,EAAC,QAAQ,EAAC,GAAG,OAAO,CAAC;gBAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACf,OAAO,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;gBACrB,CAAC;gBAED,MAAM,cAAc,GACnB,QAAQ,CAAC,gBAAgB,EAAE;oBAC3B,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC;oBAC1C,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC7C,MAAM,eAAe,GACpB,QAAQ,CAAC,iBAAiB,EAAE;oBAC5B,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;oBACzC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC9C,MAAM,QAAQ,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;gBACpD,MAAM,OAAO,GACZ,eAAe,IAAI,QAAQ;oBAC1B,CAAC,CAAC,QAAQ,CAAC,aAAa;oBACxB,CAAC,CAAC,oBAAoB,EAAE,CAAC;gBAE3B,OAAO;oBACN,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC;oBAC9C,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC;iBAChD,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,mBAAmB,GAAG,CAAC,SAAmC,EAAE,EAAE;gBACnE,IAAI,eAAe,EAAE,CAAC;oBACrB,MAAM,OAAO,GACZ,OAAO,CAAC,qBAAqB,IAAI,cAAc,CAAC,OAAO,CAAC;oBACzD,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBACrD,sEAAsE;oBACtE,iDAAiD;oBACjD,cAAc,CAAC,OAAO,GAAG,EAAC,GAAG,IAAI,EAAC,CAAC;oBACnC,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC;wBAAE,OAAO;oBACtC,OAAO,CAAC,qBAAqB,GAAG,EAAC,GAAG,IAAI,EAAC,CAAC;oBAC1C,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBAC1B,OAAO;gBACR,CAAC;gBAED,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;gBACjC,IAAI,SAAS,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC/B,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAClC,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAClC,CAAC;gBACH,CAAC;gBAED,IAAI,SAAS,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC/B,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAClC,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAClC,CAAC;gBACH,CAAC;gBAED,OAAO,CAAC,qBAAqB,GAAG,EAAC,GAAG,cAAc,CAAC,OAAO,EAAC,CAAC;gBAC5D,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YAC1C,CAAC,CAAC;YAEF,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;gBAC7B,QAAQ,CAAC,SAAmC;oBAC3C,mBAAmB,CAAC,SAAS,CAAC,CAAC;gBAChC,CAAC;gBACD,iBAAiB;oBAChB,IAAI,eAAe,EAAE,CAAC;wBACrB,OAAO,EAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,IAAI,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC,EAAC,CAAC;oBAC7D,CAAC;oBAED,OAAO,EAAC,GAAG,cAAc,CAAC,OAAO,EAAC,CAAC;gBACpC,CAAC;gBACD,WAAW;oBACV,mBAAmB,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;gBAC7B,CAAC;gBACD,cAAc;oBACb,mBAAmB,CAAC,EAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,EAAC,CAAC,CAAC;gBACnD,CAAC;gBACD,SAAS;oBACR,MAAM,EAAC,QAAQ,EAAC,GAAG,OAAO,CAAC;oBAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACf,OAAO,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC;oBAC1C,CAAC;oBAED,IAAI,CAAC,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;oBAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;oBAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;oBAE5C,gEAAgE;oBAChE,kEAAkE;oBAClE,iEAAiE;oBACjE,MAAM,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC;oBAC/C,IACC,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ;wBACnC,UAAU;wBACV,OAAO,CAAC,mBAAmB,KAAK,SAAS,EACxC,CAAC;wBACF,IAAI,IAAI,GAAe,OAAO,CAAC;wBAC/B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;4BACxB,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;wBACxB,CAAC;wBAED,IACC,IAAI,CAAC,QAAQ,KAAK,UAAU;4BAC5B,IAAI,CAAC,mBAAmB,KAAK,SAAS;4BACtC,OAAO,CAAC,mBAAmB,KAAK,IAAI,CAAC,mBAAmB,EACvD,CAAC;4BACF,OAAO,EAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAC,CAAC;wBAC1D,CAAC;oBACF,CAAC;oBAED,IAAI,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;oBAChC,OAAO,MAAM,IAAI,UAAU,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;wBAC1D,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;wBACvC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;wBACtC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;oBAC5B,CAAC;oBAED,OAAO,EAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAC,CAAC;gBAC9B,CAAC;gBACD,aAAa;oBACZ,IAAI,IAAI,GAAe,OAAO,CAAC;oBAC/B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;wBACxB,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;oBACxB,CAAC;oBAED,IACC,OAAO,CAAC,mBAAmB,KAAK,SAAS;wBACzC,OAAO,CAAC,mBAAmB,KAAK,SAAS;wBACzC,OAAO,CAAC,mBAAmB,KAAK,IAAI,CAAC,mBAAmB,EACvD,CAAC;wBACF,OAAO,SAAS,CAAC;oBAClB,CAAC;oBAED,OAAO;wBACN,KAAK,EAAE,OAAO,CAAC,mBAAmB;wBAClC,KAAK,EAAE,OAAO,CAAC,mBAAmB;qBAClC,CAAC;gBACH,CAAC;aACD,CAAC,CAAC;QACJ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,MAAM,iBAAiB,GACtB,KAAK,CAAC,QAAQ,KAAK,QAAQ;YAC3B,KAAK,CAAC,SAAS,KAAK,QAAQ;YAC5B,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC;QAE9B,eAAe,CAAC,GAAG,EAAE;YACpB,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;YACpC,IAAI,CAAC,OAAO,IAAI,CAAC,iBAAiB;gBAAE,OAAO;YAC3C,IAAI,eAAe,EAAE,CAAC;gBACrB,MAAM,QAAQ,GACb,OAAO,CAAC,qBAAqB,IAAI,cAAc,CAAC,OAAO,CAAC;gBACzD,cAAc,CAAC,OAAO,GAAG,EAAC,GAAG,QAAQ,EAAC,CAAC;gBACvC,OAAO,CAAC,qBAAqB,GAAG,EAAC,GAAG,QAAQ,EAAC,CAAC;gBAC9C,OAAO;YACR,CAAC;YAED,OAAO,CAAC,qBAAqB,GAAG,cAAc,CAAC,OAAO,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,MAAM,EAAC,qBAAqB,EAAC,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,sCAAW,SAAS,CAAY,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,IAAI,qBAAqB,IAAI,UAAU,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,UAAU,GAAG,CAClB,iCACC,GAAG,EAAE,WAAW,EAChB,wBAAwB,EAAE,eAAe,IAAI,SAAS,EACtD,KAAK,EAAE;gBACN,QAAQ,EAAE,QAAQ;gBAClB,aAAa,EAAE,KAAK;gBACpB,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;gBACb,GAAG,KAAK;gBACR,eAAe;gBACf,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS;gBACzD,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS;aACzD,EACD,sBAAsB,EAAE;gBACvB,IAAI;gBACJ,KAAK,EAAE,SAAS;aAChB,EACD,sBAAsB,EAAE,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,IAEpE,qBAAqB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CACzC,CACV,CAAC;QAEF,yEAAyE;QACzE,IAAI,eAAe,EAAE,CAAC;YACrB,OAAO,CACN,oBAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,eAAe,IAChD,UAAU,CACiB,CAC7B,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACnB,CAAC,CACD,CAAC;IAEF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;IACpC,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC7C,eAAe,GAAG,CAAC"}
@@ -8,7 +8,7 @@ export default function Transform({ children, transform, accessibilityLabel, })
8
8
  if (children === undefined || children === null) {
9
9
  return null;
10
10
  }
11
- return (React.createElement("ink-text", { style: { flexGrow: 0, flexShrink: 1, flexDirection: 'row' }, internal_transform: transform }, isScreenReaderEnabled && accessibilityLabel
11
+ return (React.createElement("ink-text", { internal_transformAffectsGeometry: true, style: { flexGrow: 0, flexShrink: 1, flexDirection: 'row' }, internal_transform: transform }, isScreenReaderEnabled && accessibilityLabel
12
12
  ? accessibilityLabel
13
13
  : children));
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Transform.js","sourceRoot":"","sources":["../../src/components/Transform.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,UAAU,EAAiB,MAAM,OAAO,CAAC;AACxD,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAgB/D;;EAEE;AACF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EACjC,QAAQ,EACR,SAAS,EACT,kBAAkB,GACX;IACP,MAAM,EAAC,qBAAqB,EAAC,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAEjE,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,CACN,kCACC,KAAK,EAAE,EAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAC,EACzD,kBAAkB,EAAE,SAAS,IAE5B,qBAAqB,IAAI,kBAAkB;QAC3C,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,QAAQ,CACD,CACX,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"Transform.js","sourceRoot":"","sources":["../../src/components/Transform.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,UAAU,EAAiB,MAAM,OAAO,CAAC;AACxD,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAgB/D;;EAEE;AACF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EACjC,QAAQ,EACR,SAAS,EACT,kBAAkB,GACX;IACP,MAAM,EAAC,qBAAqB,EAAC,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAEjE,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,CACN,kCACC,iCAAiC,QACjC,KAAK,EAAE,EAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,KAAK,EAAC,EACzD,kBAAkB,EAAE,SAAS,IAE5B,qBAAqB,IAAI,kBAAkB;QAC3C,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,QAAQ,CACD,CACX,CAAC;AACH,CAAC"}
@@ -0,0 +1,87 @@
1
+ import { type BoxRef, type Props } from './Box.js';
2
+ export type VLBoxProps = Props;
3
+ export type VLBoxRef = BoxRef;
4
+ declare const VLBox: import("react").ForwardRefExoticComponent<{
5
+ readonly position?: "absolute" | "relative" | "static" | "sticky" | undefined;
6
+ readonly top?: number | string | undefined;
7
+ readonly right?: number | string | undefined;
8
+ readonly bottom?: number | string | undefined;
9
+ readonly left?: number | string | undefined;
10
+ readonly columnGap?: number | undefined;
11
+ readonly rowGap?: number | undefined;
12
+ readonly gap?: number | undefined;
13
+ readonly margin?: number | undefined;
14
+ readonly marginX?: number | undefined;
15
+ readonly marginY?: number | undefined;
16
+ readonly marginTop?: number | undefined;
17
+ readonly marginBottom?: number | undefined;
18
+ readonly marginLeft?: number | undefined;
19
+ readonly marginRight?: number | undefined;
20
+ readonly padding?: number | undefined;
21
+ readonly paddingX?: number | undefined;
22
+ readonly paddingY?: number | undefined;
23
+ readonly paddingTop?: number | undefined;
24
+ readonly paddingBottom?: number | undefined;
25
+ readonly paddingLeft?: number | undefined;
26
+ readonly paddingRight?: number | undefined;
27
+ readonly flexGrow?: number | undefined;
28
+ readonly flexShrink?: number | undefined;
29
+ readonly flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined;
30
+ readonly flexBasis?: number | string | undefined;
31
+ readonly flexWrap?: "nowrap" | "wrap" | "wrap-reverse" | undefined;
32
+ readonly alignItems?: "flex-start" | "center" | "flex-end" | "stretch" | "baseline" | undefined;
33
+ readonly alignSelf?: "flex-start" | "center" | "flex-end" | "auto" | "stretch" | "baseline" | undefined;
34
+ readonly alignContent?: "flex-start" | "flex-end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly" | undefined;
35
+ readonly justifyContent?: "flex-start" | "flex-end" | "space-between" | "space-around" | "space-evenly" | "center" | undefined;
36
+ readonly width?: number | string | undefined;
37
+ readonly height?: number | string | undefined;
38
+ readonly minWidth?: number | string | undefined;
39
+ readonly minHeight?: number | string | undefined;
40
+ readonly maxWidth?: number | string | undefined;
41
+ readonly maxHeight?: number | string | undefined;
42
+ readonly aspectRatio?: number | undefined;
43
+ readonly display?: "flex" | "none" | undefined;
44
+ readonly borderStyle?: (keyof import("cli-boxes").Boxes | import("cli-boxes").BoxStyle) | undefined;
45
+ readonly borderTop?: boolean | undefined;
46
+ readonly borderBottom?: boolean | undefined;
47
+ readonly borderLeft?: boolean | undefined;
48
+ readonly borderRight?: boolean | undefined;
49
+ readonly borderColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
50
+ readonly borderTopColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
51
+ readonly borderBottomColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
52
+ readonly borderLeftColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
53
+ readonly borderRightColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
54
+ readonly borderDimColor?: boolean | undefined;
55
+ readonly borderTopDimColor?: boolean | undefined;
56
+ readonly borderBottomDimColor?: boolean | undefined;
57
+ readonly borderLeftDimColor?: boolean | undefined;
58
+ readonly borderRightDimColor?: boolean | undefined;
59
+ readonly borderBackgroundColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
60
+ readonly borderTopBackgroundColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
61
+ readonly borderBottomBackgroundColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
62
+ readonly borderLeftBackgroundColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
63
+ readonly borderRightBackgroundColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
64
+ readonly overflow?: "visible" | "hidden" | "scroll" | undefined;
65
+ readonly overflowX?: "visible" | "hidden" | "scroll" | undefined;
66
+ readonly overflowY?: "visible" | "hidden" | "scroll" | undefined;
67
+ readonly backgroundColor?: import("type-fest").LiteralUnion<import("ansi-styles").ForegroundColorName, string> | undefined;
68
+ readonly zIndex?: number | undefined;
69
+ } & {
70
+ readonly 'aria-label'?: string;
71
+ readonly 'aria-hidden'?: boolean;
72
+ readonly 'aria-role'?: "button" | "checkbox" | "combobox" | "list" | "listbox" | "listitem" | "menu" | "menuitem" | "option" | "progressbar" | "radio" | "radiogroup" | "tab" | "tablist" | "table" | "textbox" | "timer" | "toolbar";
73
+ readonly 'aria-state'?: {
74
+ readonly busy?: boolean;
75
+ readonly checked?: boolean;
76
+ readonly disabled?: boolean;
77
+ readonly expanded?: boolean;
78
+ readonly multiline?: boolean;
79
+ readonly multiselectable?: boolean;
80
+ readonly readonly?: boolean;
81
+ readonly required?: boolean;
82
+ readonly selected?: boolean;
83
+ };
84
+ } & {
85
+ children?: import("react").ReactNode | undefined;
86
+ } & import("react").RefAttributes<BoxRef>>;
87
+ export default VLBox;
@@ -0,0 +1,5 @@
1
+ import { createBoxComponent } from './Box.js';
2
+ // eslint-disable-next-line @typescript-eslint/naming-convention -- public VLBox API
3
+ const VLBox = createBoxComponent('VLBox', true);
4
+ export default VLBox;
5
+ //# sourceMappingURL=VLBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VLBox.js","sourceRoot":"","sources":["../../src/components/VLBox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAA0B,MAAM,UAAU,CAAC;AAOrE,oFAAoF;AACpF,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAChD,eAAe,KAAK,CAAC"}