entangle-ui 0.6.3 → 0.7.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 (108) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/esm/assets/src/components/editor/ChatPanel/{ChatPanel.css.ts.vanilla-DPIGnZ4A.css → ChatPanel.css.ts.vanilla-BI5569ZO.css} +81 -1
  3. package/dist/esm/assets/src/components/feedback/EmptyState/EmptyState.css.ts.vanilla-B_TWsTOW.css +58 -0
  4. package/dist/esm/assets/src/components/feedback/Spinner/Spinner.css.ts.vanilla-DEUewqdK.css +80 -0
  5. package/dist/esm/assets/src/components/layout/Divider/Divider.css.ts.vanilla-CPvd_RW9.css +72 -0
  6. package/dist/esm/assets/src/components/layout/ListItem/ListItem.css.ts.vanilla-BwAZrX2f.css +68 -0
  7. package/dist/esm/assets/src/components/layout/PageHeader/PageHeader.css.ts.vanilla-DdbyyWAN.css +70 -0
  8. package/dist/esm/assets/src/components/layout/SplitPane/{SplitPane.css.ts.vanilla-BFxdvwyI.css → SplitPane.css.ts.vanilla-BGFZ7zDa.css} +5 -0
  9. package/dist/esm/assets/src/components/primitives/Badge/Badge.css.ts.vanilla-DxCUcxYW.css +95 -0
  10. package/dist/esm/assets/src/components/primitives/Code/Code.css.ts.vanilla-mayBqLDM.css +19 -0
  11. package/dist/esm/assets/src/components/primitives/TextArea/TextArea.css.ts.vanilla-DTOMjGkp.css +85 -0
  12. package/dist/esm/assets/src/theme/{darkTheme.css.ts.vanilla-DCe89yCJ.css → darkTheme.css.ts.vanilla-ab1WD4dr.css} +3 -0
  13. package/dist/esm/assets/src/theme/globalScrollbars.css.ts.vanilla-BAJwnUEJ.css +21 -0
  14. package/dist/esm/assets/src/utils/animations.css.ts.vanilla-DOVlpljP.css +58 -0
  15. package/dist/esm/components/editor/ChatPanel/ChatInput.js +18 -7
  16. package/dist/esm/components/editor/ChatPanel/ChatInput.js.map +1 -1
  17. package/dist/esm/components/editor/ChatPanel/ChatMarkdownRenderer.js +268 -0
  18. package/dist/esm/components/editor/ChatPanel/ChatMarkdownRenderer.js.map +1 -0
  19. package/dist/esm/components/editor/ChatPanel/ChatMessage.js +15 -3
  20. package/dist/esm/components/editor/ChatPanel/ChatMessage.js.map +1 -1
  21. package/dist/esm/components/editor/ChatPanel/ChatMessageList.js +19 -5
  22. package/dist/esm/components/editor/ChatPanel/ChatMessageList.js.map +1 -1
  23. package/dist/esm/components/editor/ChatPanel/ChatPanel.css.js +14 -2
  24. package/dist/esm/components/editor/ChatPanel/ChatPanel.css.js.map +1 -1
  25. package/dist/esm/components/editor/ChatPanel/ChatPanel.js +15 -3
  26. package/dist/esm/components/editor/ChatPanel/ChatPanel.js.map +1 -1
  27. package/dist/esm/components/editor/ChatPanel/useChatInput.js +3 -3
  28. package/dist/esm/components/editor/ChatPanel/useChatInput.js.map +1 -1
  29. package/dist/esm/components/editor/ChatPanel/useChatScroll.js +59 -2
  30. package/dist/esm/components/editor/ChatPanel/useChatScroll.js.map +1 -1
  31. package/dist/esm/components/feedback/EmptyState/EmptyState.css.js +13 -0
  32. package/dist/esm/components/feedback/EmptyState/EmptyState.css.js.map +1 -0
  33. package/dist/esm/components/feedback/EmptyState/EmptyState.js +43 -0
  34. package/dist/esm/components/feedback/EmptyState/EmptyState.js.map +1 -0
  35. package/dist/esm/components/feedback/Spinner/Spinner.css.js +16 -0
  36. package/dist/esm/components/feedback/Spinner/Spinner.css.js.map +1 -0
  37. package/dist/esm/components/feedback/Spinner/Spinner.js +50 -0
  38. package/dist/esm/components/feedback/Spinner/Spinner.js.map +1 -0
  39. package/dist/esm/components/layout/Divider/Divider.css.js +9 -0
  40. package/dist/esm/components/layout/Divider/Divider.css.js.map +1 -0
  41. package/dist/esm/components/layout/Divider/Divider.js +51 -0
  42. package/dist/esm/components/layout/Divider/Divider.js.map +1 -0
  43. package/dist/esm/components/layout/ListItem/ListItem.css.js +10 -0
  44. package/dist/esm/components/layout/ListItem/ListItem.css.js.map +1 -0
  45. package/dist/esm/components/layout/ListItem/ListItem.js +45 -0
  46. package/dist/esm/components/layout/ListItem/ListItem.js.map +1 -0
  47. package/dist/esm/components/layout/PageHeader/PageHeader.css.js +13 -0
  48. package/dist/esm/components/layout/PageHeader/PageHeader.css.js.map +1 -0
  49. package/dist/esm/components/layout/PageHeader/PageHeader.js +29 -0
  50. package/dist/esm/components/layout/PageHeader/PageHeader.js.map +1 -0
  51. package/dist/esm/components/layout/SplitPane/SplitPane.css.js +1 -1
  52. package/dist/esm/components/navigation/Tabs/TabPanel.js +6 -3
  53. package/dist/esm/components/navigation/Tabs/TabPanel.js.map +1 -1
  54. package/dist/esm/components/navigation/Tabs/Tabs.js +3 -1
  55. package/dist/esm/components/navigation/Tabs/Tabs.js.map +1 -1
  56. package/dist/esm/components/primitives/Badge/Badge.css.js +12 -0
  57. package/dist/esm/components/primitives/Badge/Badge.css.js.map +1 -0
  58. package/dist/esm/components/primitives/Badge/Badge.js +67 -0
  59. package/dist/esm/components/primitives/Badge/Badge.js.map +1 -0
  60. package/dist/esm/components/primitives/Code/Code.css.js +7 -0
  61. package/dist/esm/components/primitives/Code/Code.css.js.map +1 -0
  62. package/dist/esm/components/primitives/Code/Code.js +24 -0
  63. package/dist/esm/components/primitives/Code/Code.js.map +1 -0
  64. package/dist/esm/components/primitives/TextArea/TextArea.css.js +10 -0
  65. package/dist/esm/components/primitives/TextArea/TextArea.css.js.map +1 -0
  66. package/dist/esm/components/primitives/TextArea/TextArea.js +97 -0
  67. package/dist/esm/components/primitives/TextArea/TextArea.js.map +1 -0
  68. package/dist/esm/index.js +11 -0
  69. package/dist/esm/index.js.map +1 -1
  70. package/dist/esm/theme/ThemeProvider.js +17 -3
  71. package/dist/esm/theme/ThemeProvider.js.map +1 -1
  72. package/dist/esm/theme/contract.css.js +1 -1
  73. package/dist/esm/theme/darkTheme.css.js +2 -2
  74. package/dist/esm/theme/globalScrollbars.css.js +6 -0
  75. package/dist/esm/theme/globalScrollbars.css.js.map +1 -0
  76. package/dist/esm/utils/animations.css.js +13 -0
  77. package/dist/esm/utils/animations.css.js.map +1 -0
  78. package/dist/types/components/editor/ChatPanel/ChatMarkdownRenderer.d.ts +323 -0
  79. package/dist/types/components/editor/ChatPanel/ChatMarkdownRenderer.types.d.ts +46 -0
  80. package/dist/types/components/editor/ChatPanel/ChatMessage.d.ts +1 -0
  81. package/dist/types/components/editor/ChatPanel/ChatMessageList.d.ts +2 -1
  82. package/dist/types/components/editor/ChatPanel/ChatPanel.d.ts +1 -0
  83. package/dist/types/components/editor/ChatPanel/ChatPanel.types.d.ts +82 -1
  84. package/dist/types/components/feedback/EmptyState/EmptyState.d.ts +313 -0
  85. package/dist/types/components/feedback/EmptyState/EmptyState.types.d.ts +31 -0
  86. package/dist/types/components/feedback/Spinner/Spinner.d.ts +306 -0
  87. package/dist/types/components/feedback/Spinner/Spinner.types.d.ts +41 -0
  88. package/dist/types/components/layout/Divider/Divider.d.ts +307 -0
  89. package/dist/types/components/layout/Divider/Divider.types.d.ts +50 -0
  90. package/dist/types/components/layout/ListItem/ListItem.d.ts +312 -0
  91. package/dist/types/components/layout/ListItem/ListItem.types.d.ts +35 -0
  92. package/dist/types/components/layout/PageHeader/PageHeader.d.ts +311 -0
  93. package/dist/types/components/layout/PageHeader/PageHeader.types.d.ts +30 -0
  94. package/dist/types/components/navigation/Tabs/Tabs.types.d.ts +10 -0
  95. package/dist/types/components/primitives/Badge/Badge.d.ts +310 -0
  96. package/dist/types/components/primitives/Badge/Badge.types.d.ts +67 -0
  97. package/dist/types/components/primitives/Button/Button.d.ts +1 -1
  98. package/dist/types/components/primitives/Code/Code.d.ts +301 -0
  99. package/dist/types/components/primitives/Code/Code.types.d.ts +17 -0
  100. package/dist/types/components/primitives/IconButton/IconButton.d.ts +1 -1
  101. package/dist/types/components/primitives/TextArea/TextArea.d.ts +26 -0
  102. package/dist/types/components/primitives/TextArea/TextArea.types.d.ts +76 -0
  103. package/dist/types/index.d.ts +20 -1
  104. package/dist/types/theme/ThemeProvider.d.ts +14 -2
  105. package/dist/types/theme/contract.css.d.ts +3 -0
  106. package/dist/types/theme/darkTheme.css.d.ts +3 -0
  107. package/dist/types/utils/animations.css.d.ts +18 -0
  108. package/package.json +1 -1
@@ -0,0 +1,12 @@
1
+ import './../../../assets/src/components/primitives/Badge/Badge.css.ts.vanilla-DxCUcxYW.css';
2
+ import { createRuntimeFn } from '@vanilla-extract/recipes/createRuntimeFn';
3
+
4
+ var badgeColorVar = 'var(--badgeColorVar__6943by0)';
5
+ var badgeContrastVar = 'var(--badgeContrastVar__6943by1)';
6
+ var badgeDotStyle = 'Badge_badgeDotStyle__6943byd';
7
+ var badgeIconStyle = 'Badge_badgeIconStyle__6943byc';
8
+ var badgeRecipe = createRuntimeFn({defaultClassName:'Badge_badgeRecipe__6943by2',variantClassNames:{size:{xs:'Badge_badgeRecipe_size_xs__6943by3',sm:'Badge_badgeRecipe_size_sm__6943by4',md:'Badge_badgeRecipe_size_md__6943by5',lg:'Badge_badgeRecipe_size_lg__6943by6'},variant:{subtle:'Badge_badgeRecipe_variant_subtle__6943by7',solid:'Badge_badgeRecipe_variant_solid__6943by8',outline:'Badge_badgeRecipe_variant_outline__6943by9',dot:'Badge_badgeRecipe_variant_dot__6943bya'},uppercase:{true:'Badge_badgeRecipe_uppercase_true__6943byb'}},defaultVariants:{size:'sm',variant:'subtle'},compoundVariants:[]});
9
+ var badgeRemoveButtonStyle = 'Badge_badgeRemoveButtonStyle__6943bye';
10
+
11
+ export { badgeColorVar, badgeContrastVar, badgeDotStyle, badgeIconStyle, badgeRecipe, badgeRemoveButtonStyle };
12
+ //# sourceMappingURL=Badge.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -0,0 +1,67 @@
1
+ "use client";
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import React, { useCallback } from 'react';
4
+ import { assignInlineVars } from '@vanilla-extract/dynamic';
5
+ import { vars } from '../../../theme/contract.css.js';
6
+ import { cx } from '../../../utils/cx.js';
7
+ import { badgeContrastVar, badgeColorVar, badgeDotStyle, badgeIconStyle, badgeRemoveButtonStyle, badgeRecipe } from './Badge.css.js';
8
+
9
+ const NAMED_COLOR_MAP = {
10
+ neutral: vars.colors.text.muted,
11
+ primary: vars.colors.accent.primary,
12
+ info: vars.colors.accent.primary,
13
+ success: vars.colors.accent.success,
14
+ warning: vars.colors.accent.warning,
15
+ error: vars.colors.accent.error,
16
+ };
17
+ /**
18
+ * Resolve a `BadgeColor` to a CSS color value.
19
+ *
20
+ * Named values produce a `var(...)` reference into the theme; everything
21
+ * else is treated as a raw CSS color string (hex, rgb, hsl, …).
22
+ */
23
+ function resolveBadgeColor(color) {
24
+ const named = NAMED_COLOR_MAP[color];
25
+ if (named) {
26
+ // For neutral we keep contrast as the text primary so solid reads well.
27
+ const contrast = color === 'neutral' ? vars.colors.text.primary : vars.colors.text.primary;
28
+ return { color: named, contrast };
29
+ }
30
+ return { color, contrast: '#ffffff' };
31
+ }
32
+ const RemoveIcon = () => (jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", "aria-hidden": "true", focusable: "false", children: jsx("path", { d: "M2 2 L8 8 M8 2 L2 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) }));
33
+ /**
34
+ * A small inline status indicator / tag.
35
+ *
36
+ * Badges are visual labels for status, counts, or tags. Pair with an
37
+ * editor item to indicate its state (e.g. "DRAFT", "ERROR", "3 NEW").
38
+ *
39
+ * @example
40
+ * ```tsx
41
+ * <Badge color="success">Saved</Badge>
42
+ * <Badge variant="outline" color="warning" icon={<WarningIcon />}>
43
+ * Warning
44
+ * </Badge>
45
+ * <Badge removable onRemove={handleRemove}>feature/foo</Badge>
46
+ * ```
47
+ */
48
+ const Badge = /*#__PURE__*/ React.memo(({ variant = 'subtle', size = 'sm', color = 'neutral', uppercase = false, icon, removable = false, onRemove, children, className, style, testId, ref, ...rest }) => {
49
+ const resolved = resolveBadgeColor(color);
50
+ const handleRemoveClick = useCallback((event) => {
51
+ event.stopPropagation();
52
+ onRemove?.(event);
53
+ }, [onRemove]);
54
+ const inlineVars = assignInlineVars({
55
+ [badgeColorVar]: resolved.color,
56
+ [badgeContrastVar]: resolved.contrast,
57
+ });
58
+ return (jsxs("span", { ref: ref, className: cx(badgeRecipe({
59
+ variant,
60
+ size,
61
+ uppercase: uppercase || undefined,
62
+ }), className), style: { ...inlineVars, ...style }, "data-testid": testId, ...rest, children: [variant === 'dot' && jsx("span", { className: badgeDotStyle, "aria-hidden": true }), icon && (jsx("span", { className: badgeIconStyle, "aria-hidden": true, children: icon })), children && jsx("span", { children: children }), removable && (jsx("button", { type: "button", className: badgeRemoveButtonStyle, onClick: handleRemoveClick, "aria-label": "Remove", children: jsx(RemoveIcon, {}) }))] }));
63
+ });
64
+ Badge.displayName = 'Badge';
65
+
66
+ export { Badge };
67
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","sources":["../../../../../../src/components/primitives/Badge/Badge.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAgBA;AACE;AACA;AACA;AACA;AACA;AACA;;AAGF;;;;;AAKG;AACH;AAIE;;;;AAKE;;AAEF;AACF;AAEA;AAiBA;;;;;;;;;;;;;;AAcG;;AAiBC;AAEA;;AAGI;AACF;;AAKA;AACA;AACD;;;;;AAUM;AA0BT;AAGF;;"}
@@ -0,0 +1,7 @@
1
+ import './../../../assets/src/components/primitives/Code/Code.css.ts.vanilla-mayBqLDM.css';
2
+ import { createRuntimeFn } from '@vanilla-extract/recipes/createRuntimeFn';
3
+
4
+ var codeRecipe = createRuntimeFn({defaultClassName:'Code_codeRecipe__13vd650',variantClassNames:{size:{xs:'Code_codeRecipe_size_xs__13vd651',sm:'Code_codeRecipe_size_sm__13vd652',md:'Code_codeRecipe_size_md__13vd653'}},defaultVariants:{size:'sm'},compoundVariants:[]});
5
+
6
+ export { codeRecipe };
7
+ //# sourceMappingURL=Code.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Code.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,24 @@
1
+ "use client";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import React from 'react';
4
+ import { cx } from '../../../utils/cx.js';
5
+ import { codeRecipe } from './Code.css.js';
6
+
7
+ /**
8
+ * Small inline `<code>` primitive with theme-aware background and font.
9
+ *
10
+ * Complements `ChatCodeBlock` (block-level) — use `Code` for short inline
11
+ * snippets inside sentences and markdown renderers.
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * <Text>Run <Code>npm install</Code> to add the package.</Text>
16
+ * ```
17
+ */
18
+ const Code = /*#__PURE__*/ React.memo(({ children, size = 'sm', className, style, testId, ref, ...rest }) => {
19
+ return (jsx("code", { ref: ref, className: cx(codeRecipe({ size }), className), style: style, "data-testid": testId, ...rest, children: children }));
20
+ });
21
+ Code.displayName = 'Code';
22
+
23
+ export { Code };
24
+ //# sourceMappingURL=Code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Code.js","sources":["../../../../../../src/components/primitives/Code/Code.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAOA;;;;;;;;;;AAUG;AACI;AAEH;AAWF;AAGF;;"}
@@ -0,0 +1,10 @@
1
+ import './../../../assets/src/components/primitives/TextArea/TextArea.css.ts.vanilla-DTOMjGkp.css';
2
+ import { createRuntimeFn } from '@vanilla-extract/recipes/createRuntimeFn';
3
+
4
+ var textAreaContainerStyle = 'TextArea_textAreaContainerStyle__nwf0m90';
5
+ var textAreaFooterStyle = 'TextArea_textAreaFooterStyle__nwf0m9j';
6
+ var textAreaRecipe = createRuntimeFn({defaultClassName:'TextArea_textAreaRecipe__nwf0m9e',variantClassNames:{size:{sm:'TextArea_textAreaRecipe_size_sm__nwf0m9f',md:'TextArea_textAreaRecipe_size_md__nwf0m9g',lg:'TextArea_textAreaRecipe_size_lg__nwf0m9h'},monospace:{true:'TextArea_textAreaRecipe_monospace_true__nwf0m9i'}},defaultVariants:{size:'md'},compoundVariants:[]});
7
+ var textAreaWrapperRecipe = createRuntimeFn({defaultClassName:'TextArea_textAreaWrapperRecipe__nwf0m91',variantClassNames:{size:{sm:'TextArea_textAreaWrapperRecipe_size_sm__nwf0m92',md:'TextArea_textAreaWrapperRecipe_size_md__nwf0m93',lg:'TextArea_textAreaWrapperRecipe_size_lg__nwf0m94'},error:{true:'TextArea_textAreaWrapperRecipe_error_true__nwf0m95',false:'TextArea_textAreaWrapperRecipe_error_false__nwf0m96'},disabled:{true:'TextArea_textAreaWrapperRecipe_disabled_true__nwf0m97',false:'TextArea_textAreaWrapperRecipe_disabled_false__nwf0m98'},focused:{true:'TextArea_textAreaWrapperRecipe_focused_true__nwf0m99',false:'TextArea_textAreaWrapperRecipe_focused_false__nwf0m9a'}},defaultVariants:{size:'md',error:false,disabled:false,focused:false},compoundVariants:[[{focused:true,error:false},'TextArea_textAreaWrapperRecipe_compound_0__nwf0m9b'],[{focused:false,error:false,disabled:false},'TextArea_textAreaWrapperRecipe_compound_1__nwf0m9c'],[{focused:false,error:false,disabled:true},'TextArea_textAreaWrapperRecipe_compound_2__nwf0m9d']]});
8
+
9
+ export { textAreaContainerStyle, textAreaFooterStyle, textAreaRecipe, textAreaWrapperRecipe };
10
+ //# sourceMappingURL=TextArea.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextArea.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -0,0 +1,97 @@
1
+ "use client";
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import React, { useRef, useId, useCallback, useEffect } from 'react';
4
+ import { cx } from '../../../utils/cx.js';
5
+ import { FormHelperText } from '../../form/FormHelperText.js';
6
+ import { FormLabel } from '../../form/FormLabel.js';
7
+ import { textAreaRecipe, textAreaWrapperRecipe, textAreaFooterStyle, textAreaContainerStyle } from './TextArea.css.js';
8
+
9
+ /**
10
+ * Multi-line text input with optional auto-resize.
11
+ *
12
+ * Visual parity with `Input` — uses the same border, focus ring, and error
13
+ * states. Auto-resize activates when `minRows` or `maxRows` is set and
14
+ * disables the native resize handle.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <TextArea
19
+ * label="Description"
20
+ * minRows={3}
21
+ * maxRows={8}
22
+ * value={value}
23
+ * onChange={setValue}
24
+ * showCount
25
+ * maxLength={500}
26
+ * />
27
+ * ```
28
+ */
29
+ const TextArea = ({ value, defaultValue, placeholder, size = 'md', disabled = false, error = false, required = false, readOnly = false, label, helperText, errorMessage, resize = 'vertical', rows = 3, minRows, maxRows, monospace = false, maxLength, showCount = false, className, style, onChange, onFocus, onBlur, onKeyDown, testId, ref, id, name, ...rest }) => {
30
+ const [focused, setFocused] = React.useState(false);
31
+ const [internalValue, setInternalValue] = React.useState(defaultValue ?? '');
32
+ const textareaRef = useRef(null);
33
+ const autoId = useId();
34
+ const inputId = id ?? autoId;
35
+ const isControlled = value !== undefined;
36
+ const currentValue = isControlled ? value : internalValue;
37
+ const autoSizeEnabled = minRows !== undefined || maxRows !== undefined;
38
+ const effectiveResize = autoSizeEnabled ? 'none' : resize;
39
+ const setRef = useCallback((node) => {
40
+ textareaRef.current = node;
41
+ if (typeof ref === 'function')
42
+ ref(node);
43
+ else if (ref)
44
+ ref.current =
45
+ node;
46
+ }, [ref]);
47
+ const autoResize = useCallback(() => {
48
+ if (!autoSizeEnabled)
49
+ return;
50
+ const el = textareaRef.current;
51
+ if (!el)
52
+ return;
53
+ el.style.height = 'auto';
54
+ const measuredLineHeight = parseFloat(getComputedStyle(el).lineHeight);
55
+ const lineHeight = Number.isFinite(measuredLineHeight)
56
+ ? measuredLineHeight
57
+ : 18;
58
+ const minHeight = (minRows ?? 1) * lineHeight;
59
+ const maxHeight = maxRows ? maxRows * lineHeight : Infinity;
60
+ const next = Math.min(Math.max(el.scrollHeight, minHeight), maxHeight);
61
+ el.style.height = `${next}px`;
62
+ el.style.overflowY = el.scrollHeight > maxHeight ? 'auto' : 'hidden';
63
+ }, [autoSizeEnabled, minRows, maxRows]);
64
+ useEffect(() => {
65
+ autoResize();
66
+ }, [currentValue, autoResize]);
67
+ const handleFocus = (event) => {
68
+ setFocused(true);
69
+ onFocus?.(event);
70
+ };
71
+ const handleBlur = (event) => {
72
+ setFocused(false);
73
+ onBlur?.(event);
74
+ };
75
+ const handleChange = (event) => {
76
+ const next = event.target.value;
77
+ if (!isControlled)
78
+ setInternalValue(next);
79
+ onChange?.(next);
80
+ };
81
+ const effectiveHelper = error && errorMessage ? errorMessage : helperText;
82
+ const count = currentValue?.length ?? 0;
83
+ return (jsxs("div", { className: cx(textAreaContainerStyle, className), style: style, children: [label && (jsx(FormLabel, { htmlFor: inputId, disabled: disabled, required: required, children: label })), jsx("div", { className: textAreaWrapperRecipe({ size, error, disabled, focused }), children: jsx("textarea", { ref: setRef, id: inputId, name: name, placeholder: placeholder, disabled: disabled, required: required, readOnly: readOnly, value: isControlled ? value : undefined, defaultValue: isControlled ? undefined : defaultValue, rows: autoSizeEnabled ? (minRows ?? rows) : rows, maxLength: maxLength, className: textAreaRecipe({
84
+ size,
85
+ monospace: monospace || undefined,
86
+ }), style: { resize: effectiveResize }, onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: onKeyDown, "data-testid": testId, "aria-invalid": error || undefined, ...rest }) }), (effectiveHelper !== undefined && effectiveHelper !== '') ||
87
+ showCount ? (jsxs("div", { style: {
88
+ display: 'flex',
89
+ justifyContent: 'space-between',
90
+ alignItems: 'flex-start',
91
+ gap: 8,
92
+ }, children: [effectiveHelper !== undefined && effectiveHelper !== '' ? (jsx(FormHelperText, { error: error, children: effectiveHelper })) : (jsx("span", {})), showCount && (jsx("div", { className: textAreaFooterStyle, children: maxLength !== undefined ? `${count}/${maxLength}` : count }))] })) : null] }));
93
+ };
94
+ TextArea.displayName = 'TextArea';
95
+
96
+ export { TextArea };
97
+ //# sourceMappingURL=TextArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextArea.js","sources":["../../../../../../src/components/primitives/TextArea/TextArea.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAcA;;;;;;;;;;;;;;;;;;;AAmBG;AACI;AA+BL;AACA;AACA;AACA;AACA;AAEA;;;;AAMA;AAEI;;;AAEK;AACF;AACC;AACN;AAIF;AACE;;AACA;AACA;;AAEA;;AAGA;AACE;;;AAGF;AAEA;;AAEA;;;AAIA;AACF;AAEA;;AAEE;AACF;AACA;;AAEE;AACF;AACA;AACE;AACA;;AACA;AACF;AAEA;AACA;AAEA;;;AA0BS;AAaL;AAGM;AACA;AACA;AACA;AACD;AAgBX;AAEA;;"}
package/dist/esm/index.js CHANGED
@@ -3,21 +3,27 @@ export { darkThemeValues } from './theme/darkTheme.css.js';
3
3
  export { createCustomTheme } from './theme/createCustomTheme.js';
4
4
  export { VanillaThemeProvider } from './theme/VanillaThemeProvider.js';
5
5
  export { ThemeProvider } from './theme/ThemeProvider.js';
6
+ import './assets/src/theme/globalScrollbars.css.ts.vanilla-BAJwnUEJ.css';
6
7
  export { Accordion } from './components/layout/Accordion/Accordion.js';
7
8
  export { AccordionItem } from './components/layout/Accordion/AccordionItem.js';
8
9
  export { AccordionTrigger } from './components/layout/Accordion/AccordionTrigger.js';
9
10
  export { AccordionContent } from './components/layout/Accordion/AccordionContent.js';
11
+ export { Divider } from './components/layout/Divider/Divider.js';
10
12
  export { Flex } from './components/layout/Flex/Flex.js';
11
13
  export { Grid } from './components/layout/Grid/Grid.js';
14
+ export { ListItem } from './components/layout/ListItem/ListItem.js';
15
+ export { PageHeader } from './components/layout/PageHeader/PageHeader.js';
12
16
  export { PanelSurface } from './components/layout/PanelSurface/PanelSurface.js';
13
17
  export { ScrollArea } from './components/layout/ScrollArea/ScrollArea.js';
14
18
  export { Spacer } from './components/layout/Spacer/Spacer.js';
15
19
  export { SplitPane } from './components/layout/SplitPane/SplitPane.js';
16
20
  export { SplitPanePanel } from './components/layout/SplitPane/SplitPanePanel.js';
17
21
  export { Stack } from './components/layout/Stack/Stack.js';
22
+ export { Badge } from './components/primitives/Badge/Badge.js';
18
23
  export { Button } from './components/primitives/Button/Button.js';
19
24
  export { Checkbox } from './components/primitives/Checkbox/Checkbox.js';
20
25
  export { CheckboxGroup } from './components/primitives/Checkbox/CheckboxGroup.js';
26
+ export { Code } from './components/primitives/Code/Code.js';
21
27
  export { Collapsible } from './components/primitives/Collapsible/Collapsible.js';
22
28
  export { Icon } from './components/primitives/Icon/Icon.js';
23
29
  export { IconButton } from './components/primitives/IconButton/IconButton.js';
@@ -29,6 +35,7 @@ export { PopoverContent } from './components/primitives/Popover/PopoverContent.j
29
35
  export { PopoverTrigger } from './components/primitives/Popover/PopoverTrigger.js';
30
36
  export { Switch } from './components/primitives/Switch/Switch.js';
31
37
  export { Text } from './components/primitives/Text/Text.js';
38
+ export { TextArea } from './components/primitives/TextArea/TextArea.js';
32
39
  export { Tooltip } from './components/primitives/Tooltip/Tooltip.js';
33
40
  import 'react';
34
41
  import './components/primitives/canvas/CanvasContainer.js';
@@ -66,6 +73,8 @@ export { DialogHeader } from './components/feedback/Dialog/DialogHeader.js';
66
73
  export { DialogBody } from './components/feedback/Dialog/DialogBody.js';
67
74
  export { DialogFooter } from './components/feedback/Dialog/DialogFooter.js';
68
75
  export { DialogClose } from './components/feedback/Dialog/DialogClose.js';
76
+ export { EmptyState } from './components/feedback/EmptyState/EmptyState.js';
77
+ export { Spinner } from './components/feedback/Spinner/Spinner.js';
69
78
  export { ToastProvider } from './components/feedback/Toast/ToastProvider.js';
70
79
  export { useToast } from './components/feedback/Toast/useToast.js';
71
80
  export { PropertyPanel } from './components/editor/PropertyInspector/PropertyPanel.js';
@@ -88,6 +97,7 @@ export { ChatContextChip } from './components/editor/ChatPanel/ChatContextChip.j
88
97
  export { ChatEmptyState } from './components/editor/ChatPanel/ChatEmptyState.js';
89
98
  export { ChatActionBar } from './components/editor/ChatPanel/ChatActionBar.js';
90
99
  export { ChatInputToolbar } from './components/editor/ChatPanel/ChatInputToolbar.js';
100
+ export { ChatMarkdownRenderer } from './components/editor/ChatPanel/ChatMarkdownRenderer.js';
91
101
  export { useChatMessages } from './components/editor/ChatPanel/useChatMessages.js';
92
102
  export { useChatInput } from './components/editor/ChatPanel/useChatInput.js';
93
103
  export { useChatScroll } from './components/editor/ChatPanel/useChatScroll.js';
@@ -97,4 +107,5 @@ export { MenuBar } from './components/shell/MenuBar/MenuBar.js';
97
107
  export { StatusBar } from './components/shell/StatusBar/StatusBar.js';
98
108
  export { Toolbar } from './components/shell/Toolbar/Toolbar.js';
99
109
  export { cx as cn, cx } from './utils/cx.js';
110
+ export { animBlink, animFadeIn, animPulse, animSpin, blinkKeyframe, fadeInKeyframe, pulseKeyframe, spinKeyframe } from './utils/animations.css.js';
100
111
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,16 +1,30 @@
1
1
  "use client";
2
2
  import { jsx, Fragment } from 'react/jsx-runtime';
3
+ import { useEffect } from 'react';
4
+ import { GLOBAL_SCROLLBARS_CLASS } from './globalScrollbars.css.js';
3
5
 
4
6
  /**
5
7
  * Theme provider for Entangle UI components.
6
8
  *
7
- * The dark theme is applied globally via CSS custom properties on `:root`.
8
- * This provider is a simple pass-through most apps don't need it.
9
+ * The dark theme is applied globally via CSS custom properties on `:root`,
10
+ * so this provider is a pass-through for most apps. Use it to opt into
11
+ * additional global behaviors such as native-scrollbar theming.
9
12
  *
10
13
  * For scoped theme overrides, use `VanillaThemeProvider` with a custom
11
14
  * class generated by `createCustomTheme()`.
12
15
  */
13
- const ThemeProvider = ({ children }) => {
16
+ const ThemeProvider = ({ children, globalScrollbars = false, }) => {
17
+ useEffect(() => {
18
+ if (!globalScrollbars)
19
+ return;
20
+ if (typeof document === 'undefined')
21
+ return;
22
+ const body = document.body;
23
+ body.classList.add(GLOBAL_SCROLLBARS_CLASS);
24
+ return () => {
25
+ body.classList.remove(GLOBAL_SCROLLBARS_CLASS);
26
+ };
27
+ }, [globalScrollbars]);
14
28
  return jsx(Fragment, { children: children });
15
29
  };
16
30
 
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.js","sources":["../../../../src/theme/ThemeProvider.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;AAQA;;;;;;;;AAQG;;;AAGH;;"}
1
+ {"version":3,"file":"ThemeProvider.js","sources":["../../../../src/theme/ThemeProvider.tsx"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAoBA;;;;;;;;;AASG;AACI;;AAKH;;;;AAGA;AACA;AACA;AACE;AACF;AACF;;AAGF;;"}
@@ -1,4 +1,4 @@
1
- var vars = {colors:{background:{primary:'var(--etui-color-bg-primary)',secondary:'var(--etui-color-bg-secondary)',tertiary:'var(--etui-color-bg-tertiary)',elevated:'var(--etui-color-bg-elevated)'},surface:{'default':'var(--etui-color-surface-default)',hover:'var(--etui-color-surface-hover)',active:'var(--etui-color-surface-active)',disabled:'var(--etui-color-surface-disabled)',whiteOverlay:'var(--etui-color-surface-white-overlay)'},border:{'default':'var(--etui-color-border-default)',focus:'var(--etui-color-border-focus)',error:'var(--etui-color-border-error)',success:'var(--etui-color-border-success)'},text:{primary:'var(--etui-color-text-primary)',secondary:'var(--etui-color-text-secondary)',muted:'var(--etui-color-text-muted)',disabled:'var(--etui-color-text-disabled)'},accent:{primary:'var(--etui-color-accent-primary)',secondary:'var(--etui-color-accent-secondary)',success:'var(--etui-color-accent-success)',warning:'var(--etui-color-accent-warning)',error:'var(--etui-color-accent-error)'},backdrop:'var(--etui-color-backdrop)'},spacing:{xs:'var(--etui-spacing-xs)',sm:'var(--etui-spacing-sm)',md:'var(--etui-spacing-md)',lg:'var(--etui-spacing-lg)',xl:'var(--etui-spacing-xl)',xxl:'var(--etui-spacing-xxl)',xxxl:'var(--etui-spacing-xxxl)'},typography:{fontSize:{xxs:'var(--etui-font-size-xxs)',xs:'var(--etui-font-size-xs)',sm:'var(--etui-font-size-sm)',md:'var(--etui-font-size-md)',lg:'var(--etui-font-size-lg)',xl:'var(--etui-font-size-xl)'},fontWeight:{normal:'var(--etui-font-weight-normal)',medium:'var(--etui-font-weight-medium)',semibold:'var(--etui-font-weight-semibold)'},lineHeight:{tight:'var(--etui-line-height-tight)',normal:'var(--etui-line-height-normal)',relaxed:'var(--etui-line-height-relaxed)'},fontFamily:{mono:'var(--etui-font-family-mono)',sans:'var(--etui-font-family-sans)'}},borderRadius:{none:'var(--etui-radius-none)',sm:'var(--etui-radius-sm)',md:'var(--etui-radius-md)',lg:'var(--etui-radius-lg)'},shadows:{sm:'var(--etui-shadow-sm)',md:'var(--etui-shadow-md)',lg:'var(--etui-shadow-lg)',xl:'var(--etui-shadow-xl)',focus:'var(--etui-shadow-focus)',separatorBottom:'var(--etui-shadow-separator-bottom)',separatorRight:'var(--etui-shadow-separator-right)',separatorLeft:'var(--etui-shadow-separator-left)',thumb:'var(--etui-shadow-thumb)'},transitions:{fast:'var(--etui-transition-fast)',normal:'var(--etui-transition-normal)',slow:'var(--etui-transition-slow)'},zIndex:{base:'var(--etui-z-base)',dropdown:'var(--etui-z-dropdown)',popover:'var(--etui-z-popover)',tooltip:'var(--etui-z-tooltip)',modal:'var(--etui-z-modal)'},shell:{menuBar:{height:'var(--etui-shell-menubar-height)',bg:'var(--etui-shell-menubar-bg)',hoverBg:'var(--etui-shell-menubar-hover-bg)',activeBg:'var(--etui-shell-menubar-active-bg)',text:'var(--etui-shell-menubar-text)',shortcutText:'var(--etui-shell-menubar-shortcut-text)'},toolbar:{height:{sm:'var(--etui-shell-toolbar-height-sm)',md:'var(--etui-shell-toolbar-height-md)'},bg:'var(--etui-shell-toolbar-bg)',separator:'var(--etui-shell-toolbar-separator)'},statusBar:{height:'var(--etui-shell-statusbar-height)',heightMd:'var(--etui-shell-statusbar-height-md)',bg:'var(--etui-shell-statusbar-bg)',text:'var(--etui-shell-statusbar-text)'},dock:{tabHeight:'var(--etui-shell-dock-tab-height)',tabBg:'var(--etui-shell-dock-tab-bg)',tabActiveBg:'var(--etui-shell-dock-tab-active-bg)',tabHoverBg:'var(--etui-shell-dock-tab-hover-bg)',tabText:'var(--etui-shell-dock-tab-text)',tabActiveText:'var(--etui-shell-dock-tab-active-text)',splitterSize:'var(--etui-shell-dock-splitter-size)',splitterColor:'var(--etui-shell-dock-splitter-color)',splitterHoverColor:'var(--etui-shell-dock-splitter-hover-color)',borderBarBg:'var(--etui-shell-dock-border-bar-bg)',borderBarSize:'var(--etui-shell-dock-border-bar-size)',dropOverlay:'var(--etui-shell-dock-drop-overlay)'}},storybook:{canvas:{gradientStart:'var(--etui-storybook-gradient-start)',gradientMid:'var(--etui-storybook-gradient-mid)',gradientEnd:'var(--etui-storybook-gradient-end)'}}};
1
+ var vars = {colors:{background:{primary:'var(--etui-color-bg-primary)',secondary:'var(--etui-color-bg-secondary)',tertiary:'var(--etui-color-bg-tertiary)',elevated:'var(--etui-color-bg-elevated)',inset:'var(--etui-color-bg-inset)'},surface:{'default':'var(--etui-color-surface-default)',hover:'var(--etui-color-surface-hover)',active:'var(--etui-color-surface-active)',disabled:'var(--etui-color-surface-disabled)',whiteOverlay:'var(--etui-color-surface-white-overlay)',row:'var(--etui-color-surface-row)',rowHover:'var(--etui-color-surface-row-hover)'},border:{'default':'var(--etui-color-border-default)',focus:'var(--etui-color-border-focus)',error:'var(--etui-color-border-error)',success:'var(--etui-color-border-success)'},text:{primary:'var(--etui-color-text-primary)',secondary:'var(--etui-color-text-secondary)',muted:'var(--etui-color-text-muted)',disabled:'var(--etui-color-text-disabled)'},accent:{primary:'var(--etui-color-accent-primary)',secondary:'var(--etui-color-accent-secondary)',success:'var(--etui-color-accent-success)',warning:'var(--etui-color-accent-warning)',error:'var(--etui-color-accent-error)'},backdrop:'var(--etui-color-backdrop)'},spacing:{xs:'var(--etui-spacing-xs)',sm:'var(--etui-spacing-sm)',md:'var(--etui-spacing-md)',lg:'var(--etui-spacing-lg)',xl:'var(--etui-spacing-xl)',xxl:'var(--etui-spacing-xxl)',xxxl:'var(--etui-spacing-xxxl)'},typography:{fontSize:{xxs:'var(--etui-font-size-xxs)',xs:'var(--etui-font-size-xs)',sm:'var(--etui-font-size-sm)',md:'var(--etui-font-size-md)',lg:'var(--etui-font-size-lg)',xl:'var(--etui-font-size-xl)'},fontWeight:{normal:'var(--etui-font-weight-normal)',medium:'var(--etui-font-weight-medium)',semibold:'var(--etui-font-weight-semibold)'},lineHeight:{tight:'var(--etui-line-height-tight)',normal:'var(--etui-line-height-normal)',relaxed:'var(--etui-line-height-relaxed)'},fontFamily:{mono:'var(--etui-font-family-mono)',sans:'var(--etui-font-family-sans)'}},borderRadius:{none:'var(--etui-radius-none)',sm:'var(--etui-radius-sm)',md:'var(--etui-radius-md)',lg:'var(--etui-radius-lg)'},shadows:{sm:'var(--etui-shadow-sm)',md:'var(--etui-shadow-md)',lg:'var(--etui-shadow-lg)',xl:'var(--etui-shadow-xl)',focus:'var(--etui-shadow-focus)',separatorBottom:'var(--etui-shadow-separator-bottom)',separatorRight:'var(--etui-shadow-separator-right)',separatorLeft:'var(--etui-shadow-separator-left)',thumb:'var(--etui-shadow-thumb)'},transitions:{fast:'var(--etui-transition-fast)',normal:'var(--etui-transition-normal)',slow:'var(--etui-transition-slow)'},zIndex:{base:'var(--etui-z-base)',dropdown:'var(--etui-z-dropdown)',popover:'var(--etui-z-popover)',tooltip:'var(--etui-z-tooltip)',modal:'var(--etui-z-modal)'},shell:{menuBar:{height:'var(--etui-shell-menubar-height)',bg:'var(--etui-shell-menubar-bg)',hoverBg:'var(--etui-shell-menubar-hover-bg)',activeBg:'var(--etui-shell-menubar-active-bg)',text:'var(--etui-shell-menubar-text)',shortcutText:'var(--etui-shell-menubar-shortcut-text)'},toolbar:{height:{sm:'var(--etui-shell-toolbar-height-sm)',md:'var(--etui-shell-toolbar-height-md)'},bg:'var(--etui-shell-toolbar-bg)',separator:'var(--etui-shell-toolbar-separator)'},statusBar:{height:'var(--etui-shell-statusbar-height)',heightMd:'var(--etui-shell-statusbar-height-md)',bg:'var(--etui-shell-statusbar-bg)',text:'var(--etui-shell-statusbar-text)'},dock:{tabHeight:'var(--etui-shell-dock-tab-height)',tabBg:'var(--etui-shell-dock-tab-bg)',tabActiveBg:'var(--etui-shell-dock-tab-active-bg)',tabHoverBg:'var(--etui-shell-dock-tab-hover-bg)',tabText:'var(--etui-shell-dock-tab-text)',tabActiveText:'var(--etui-shell-dock-tab-active-text)',splitterSize:'var(--etui-shell-dock-splitter-size)',splitterColor:'var(--etui-shell-dock-splitter-color)',splitterHoverColor:'var(--etui-shell-dock-splitter-hover-color)',borderBarBg:'var(--etui-shell-dock-border-bar-bg)',borderBarSize:'var(--etui-shell-dock-border-bar-size)',dropOverlay:'var(--etui-shell-dock-drop-overlay)'}},storybook:{canvas:{gradientStart:'var(--etui-storybook-gradient-start)',gradientMid:'var(--etui-storybook-gradient-mid)',gradientEnd:'var(--etui-storybook-gradient-end)'}}};
2
2
 
3
3
  export { vars };
4
4
  //# sourceMappingURL=contract.css.js.map
@@ -1,6 +1,6 @@
1
- import './../assets/src/theme/darkTheme.css.ts.vanilla-DCe89yCJ.css';
1
+ import './../assets/src/theme/darkTheme.css.ts.vanilla-ab1WD4dr.css';
2
2
 
3
- var darkThemeValues = {colors:{background:{primary:'#1a1a1a',secondary:'#2d2d2d',tertiary:'#3a3a3a',elevated:'#404040'},surface:{'default':'#2d2d2d',hover:'#363636',active:'#404040',disabled:'#1f1f1f',whiteOverlay:'rgba(255, 255, 255, 0.1)'},border:{'default':'#4a4a4a',focus:'#007acc',error:'#f44336',success:'#4caf50'},text:{primary:'#ffffff',secondary:'#cccccc',muted:'#888888',disabled:'#555555'},accent:{primary:'#007acc',secondary:'#005a9e',success:'#4caf50',warning:'#ff9800',error:'#f44336'},backdrop:'rgba(0, 0, 0, 0.6)'},spacing:{xs:'2px',sm:'4px',md:'8px',lg:'12px',xl:'16px',xxl:'24px',xxxl:'32px'},typography:{fontSize:{xxs:'9px',xs:'10px',sm:'11px',md:'12px',lg:'14px',xl:'16px'},fontWeight:{normal:'400',medium:'500',semibold:'600'},lineHeight:{tight:'1.2',normal:'1.4',relaxed:'1.6'},fontFamily:{mono:'SF Mono, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',sans:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif'}},borderRadius:{none:'0px',sm:'2px',md:'4px',lg:'6px'},shadows:{sm:'0 1px 2px rgba(0, 0, 0, 0.2)',md:'0 2px 4px rgba(0, 0, 0, 0.3)',lg:'0 4px 8px rgba(0, 0, 0, 0.4)',xl:'0 8px 16px rgba(0, 0, 0, 0.5)',focus:'0 0 0 2px rgba(0, 122, 204, 0.4)',separatorBottom:'0 1px 2px rgba(0, 0, 0, 0.18)',separatorRight:'1px 0 2px rgba(0, 0, 0, 0.18)',separatorLeft:'-1px 0 2px rgba(0, 0, 0, 0.18)',thumb:'0 0 2px rgba(0, 0, 0, 0.5)'},transitions:{fast:'100ms ease-out',normal:'200ms ease-out',slow:'300ms ease-out'},zIndex:{base:'1',dropdown:'1000',popover:'1000',tooltip:'1000',modal:'1100'},shell:{menuBar:{height:'28px',bg:'#2d2d2d',hoverBg:'#363636',activeBg:'#005a9e',text:'#ffffff',shortcutText:'#888888'},toolbar:{height:{sm:'32px',md:'40px'},bg:'#2d2d2d',separator:'#4a4a4a'},statusBar:{height:'22px',heightMd:'26px',bg:'#007acc',text:'#ffffff'},dock:{tabHeight:'28px',tabBg:'#2d2d2d',tabActiveBg:'#1a1a1a',tabHoverBg:'#363636',tabText:'#cccccc',tabActiveText:'#ffffff',splitterSize:'4px',splitterColor:'#4a4a4a',splitterHoverColor:'#007acc',borderBarBg:'#2d2d2d',borderBarSize:'28px',dropOverlay:'rgba(0, 122, 204, 0.2)'}},storybook:{canvas:{gradientStart:'#061f21',gradientMid:'#031a1a',gradientEnd:'#091010'}}};
3
+ var darkThemeValues = {colors:{background:{primary:'#1a1a1a',secondary:'#2d2d2d',tertiary:'#3a3a3a',elevated:'#404040',inset:'rgba(0, 0, 0, 0.2)'},surface:{'default':'#2d2d2d',hover:'#363636',active:'#404040',disabled:'#1f1f1f',whiteOverlay:'rgba(255, 255, 255, 0.1)',row:'transparent',rowHover:'rgba(255, 255, 255, 0.03)'},border:{'default':'#4a4a4a',focus:'#007acc',error:'#f44336',success:'#4caf50'},text:{primary:'#ffffff',secondary:'#cccccc',muted:'#888888',disabled:'#555555'},accent:{primary:'#007acc',secondary:'#005a9e',success:'#4caf50',warning:'#ff9800',error:'#f44336'},backdrop:'rgba(0, 0, 0, 0.6)'},spacing:{xs:'2px',sm:'4px',md:'8px',lg:'12px',xl:'16px',xxl:'24px',xxxl:'32px'},typography:{fontSize:{xxs:'9px',xs:'10px',sm:'11px',md:'12px',lg:'14px',xl:'16px'},fontWeight:{normal:'400',medium:'500',semibold:'600'},lineHeight:{tight:'1.2',normal:'1.4',relaxed:'1.6'},fontFamily:{mono:'SF Mono, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',sans:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif'}},borderRadius:{none:'0px',sm:'2px',md:'4px',lg:'6px'},shadows:{sm:'0 1px 2px rgba(0, 0, 0, 0.2)',md:'0 2px 4px rgba(0, 0, 0, 0.3)',lg:'0 4px 8px rgba(0, 0, 0, 0.4)',xl:'0 8px 16px rgba(0, 0, 0, 0.5)',focus:'0 0 0 2px rgba(0, 122, 204, 0.4)',separatorBottom:'0 1px 2px rgba(0, 0, 0, 0.18)',separatorRight:'1px 0 2px rgba(0, 0, 0, 0.18)',separatorLeft:'-1px 0 2px rgba(0, 0, 0, 0.18)',thumb:'0 0 2px rgba(0, 0, 0, 0.5)'},transitions:{fast:'100ms ease-out',normal:'200ms ease-out',slow:'300ms ease-out'},zIndex:{base:'1',dropdown:'1000',popover:'1000',tooltip:'1000',modal:'1100'},shell:{menuBar:{height:'28px',bg:'#2d2d2d',hoverBg:'#363636',activeBg:'#005a9e',text:'#ffffff',shortcutText:'#888888'},toolbar:{height:{sm:'32px',md:'40px'},bg:'#2d2d2d',separator:'#4a4a4a'},statusBar:{height:'22px',heightMd:'26px',bg:'#007acc',text:'#ffffff'},dock:{tabHeight:'28px',tabBg:'#2d2d2d',tabActiveBg:'#1a1a1a',tabHoverBg:'#363636',tabText:'#cccccc',tabActiveText:'#ffffff',splitterSize:'4px',splitterColor:'#4a4a4a',splitterHoverColor:'#007acc',borderBarBg:'#2d2d2d',borderBarSize:'28px',dropOverlay:'rgba(0, 122, 204, 0.2)'}},storybook:{canvas:{gradientStart:'#061f21',gradientMid:'#031a1a',gradientEnd:'#091010'}}};
4
4
 
5
5
  export { darkThemeValues };
6
6
  //# sourceMappingURL=darkTheme.css.js.map
@@ -0,0 +1,6 @@
1
+ import './../assets/src/theme/globalScrollbars.css.ts.vanilla-BAJwnUEJ.css';
2
+
3
+ var GLOBAL_SCROLLBARS_CLASS = 'etuiGlobalScrollbars';
4
+
5
+ export { GLOBAL_SCROLLBARS_CLASS };
6
+ //# sourceMappingURL=globalScrollbars.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalScrollbars.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,13 @@
1
+ import './../assets/src/utils/animations.css.ts.vanilla-DOVlpljP.css';
2
+
3
+ var animBlink = 'animations_animBlink__1boy3ak6';
4
+ var animFadeIn = 'animations_animFadeIn__1boy3ak7';
5
+ var animPulse = 'animations_animPulse__1boy3ak5';
6
+ var animSpin = 'animations_animSpin__1boy3ak4';
7
+ var blinkKeyframe = 'animations_blinkKeyframe__1boy3ak2';
8
+ var fadeInKeyframe = 'animations_fadeInKeyframe__1boy3ak3';
9
+ var pulseKeyframe = 'animations_pulseKeyframe__1boy3ak1';
10
+ var spinKeyframe = 'animations_spinKeyframe__1boy3ak0';
11
+
12
+ export { animBlink, animFadeIn, animPulse, animSpin, blinkKeyframe, fadeInKeyframe, pulseKeyframe, spinKeyframe };
13
+ //# sourceMappingURL=animations.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animations.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}