@tonyarbor/components 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/dist/Avatar.d.mts +42 -0
  2. package/dist/Avatar.d.ts +42 -0
  3. package/dist/Avatar.js +158 -0
  4. package/dist/Avatar.js.map +1 -0
  5. package/dist/Avatar.mjs +7 -0
  6. package/dist/Avatar.mjs.map +1 -0
  7. package/dist/Banner.d.mts +59 -0
  8. package/dist/Banner.d.ts +59 -0
  9. package/dist/Banner.js +222 -0
  10. package/dist/Banner.js.map +1 -0
  11. package/dist/Banner.mjs +7 -0
  12. package/dist/Banner.mjs.map +1 -0
  13. package/dist/Breadcrumbs.d.mts +51 -0
  14. package/dist/Breadcrumbs.d.ts +51 -0
  15. package/dist/Breadcrumbs.js +276 -0
  16. package/dist/Breadcrumbs.js.map +1 -0
  17. package/dist/Breadcrumbs.mjs +7 -0
  18. package/dist/Breadcrumbs.mjs.map +1 -0
  19. package/dist/Checkbox.d.mts +4 -0
  20. package/dist/Checkbox.d.ts +4 -0
  21. package/dist/Checkbox.js +45 -16
  22. package/dist/Checkbox.js.map +1 -1
  23. package/dist/Checkbox.mjs +1 -1
  24. package/dist/DatePicker.d.mts +68 -0
  25. package/dist/DatePicker.d.ts +68 -0
  26. package/dist/DatePicker.js +490 -0
  27. package/dist/DatePicker.js.map +1 -0
  28. package/dist/DatePicker.mjs +7 -0
  29. package/dist/DatePicker.mjs.map +1 -0
  30. package/dist/Pagination.d.mts +36 -0
  31. package/dist/Pagination.d.ts +36 -0
  32. package/dist/Pagination.js +301 -0
  33. package/dist/Pagination.js.map +1 -0
  34. package/dist/Pagination.mjs +7 -0
  35. package/dist/Pagination.mjs.map +1 -0
  36. package/dist/Radio.js +32 -12
  37. package/dist/Radio.js.map +1 -1
  38. package/dist/Radio.mjs +1 -1
  39. package/dist/SearchGlobal.d.mts +45 -0
  40. package/dist/SearchGlobal.d.ts +45 -0
  41. package/dist/SearchGlobal.js +209 -0
  42. package/dist/SearchGlobal.js.map +1 -0
  43. package/dist/SearchGlobal.mjs +7 -0
  44. package/dist/SearchGlobal.mjs.map +1 -0
  45. package/dist/SearchOnPage.d.mts +45 -0
  46. package/dist/SearchOnPage.d.ts +45 -0
  47. package/dist/SearchOnPage.js +171 -0
  48. package/dist/SearchOnPage.js.map +1 -0
  49. package/dist/SearchOnPage.mjs +7 -0
  50. package/dist/SearchOnPage.mjs.map +1 -0
  51. package/dist/Table.d.mts +80 -0
  52. package/dist/Table.d.ts +80 -0
  53. package/dist/Table.js +347 -0
  54. package/dist/Table.js.map +1 -0
  55. package/dist/Table.mjs +8 -0
  56. package/dist/Table.mjs.map +1 -0
  57. package/dist/TableControls.d.mts +76 -0
  58. package/dist/TableControls.d.ts +76 -0
  59. package/dist/TableControls.js +461 -0
  60. package/dist/TableControls.js.map +1 -0
  61. package/dist/TableControls.mjs +7 -0
  62. package/dist/TableControls.mjs.map +1 -0
  63. package/dist/TableFooterPagination.d.mts +56 -0
  64. package/dist/TableFooterPagination.d.ts +56 -0
  65. package/dist/TableFooterPagination.js +499 -0
  66. package/dist/TableFooterPagination.js.map +1 -0
  67. package/dist/TableFooterPagination.mjs +7 -0
  68. package/dist/TableFooterPagination.mjs.map +1 -0
  69. package/dist/Tabs.d.mts +50 -0
  70. package/dist/Tabs.d.ts +50 -0
  71. package/dist/Tabs.js +187 -0
  72. package/dist/Tabs.js.map +1 -0
  73. package/dist/Tabs.mjs +7 -0
  74. package/dist/Tabs.mjs.map +1 -0
  75. package/dist/TextArea.d.mts +64 -0
  76. package/dist/TextArea.d.ts +64 -0
  77. package/dist/TextArea.js +171 -0
  78. package/dist/TextArea.js.map +1 -0
  79. package/dist/TextArea.mjs +7 -0
  80. package/dist/TextArea.mjs.map +1 -0
  81. package/dist/Toast.d.mts +48 -0
  82. package/dist/Toast.d.ts +48 -0
  83. package/dist/Toast.js +169 -0
  84. package/dist/Toast.js.map +1 -0
  85. package/dist/Toast.mjs +7 -0
  86. package/dist/Toast.mjs.map +1 -0
  87. package/dist/Toggle.d.mts +48 -0
  88. package/dist/Toggle.d.ts +48 -0
  89. package/dist/Toggle.js +291 -0
  90. package/dist/Toggle.js.map +1 -0
  91. package/dist/Toggle.mjs +7 -0
  92. package/dist/Toggle.mjs.map +1 -0
  93. package/dist/Tooltip.d.mts +32 -0
  94. package/dist/Tooltip.d.ts +32 -0
  95. package/dist/Tooltip.js +109 -0
  96. package/dist/Tooltip.js.map +1 -0
  97. package/dist/Tooltip.mjs +7 -0
  98. package/dist/Tooltip.mjs.map +1 -0
  99. package/dist/chunk-52TG3BFX.mjs +463 -0
  100. package/dist/chunk-52TG3BFX.mjs.map +1 -0
  101. package/dist/chunk-AI2U34CF.mjs +159 -0
  102. package/dist/chunk-AI2U34CF.mjs.map +1 -0
  103. package/dist/chunk-B7RX3TPX.mjs +135 -0
  104. package/dist/chunk-B7RX3TPX.mjs.map +1 -0
  105. package/dist/chunk-C25FFMRQ.mjs +255 -0
  106. package/dist/chunk-C25FFMRQ.mjs.map +1 -0
  107. package/dist/{chunk-BCYJIUQX.mjs → chunk-CUTYEIFE.mjs} +47 -18
  108. package/dist/chunk-CUTYEIFE.mjs.map +1 -0
  109. package/dist/chunk-DULH2KRW.mjs +133 -0
  110. package/dist/chunk-DULH2KRW.mjs.map +1 -0
  111. package/dist/chunk-G5NVKF2G.mjs +434 -0
  112. package/dist/chunk-G5NVKF2G.mjs.map +1 -0
  113. package/dist/chunk-JSG27ZZS.mjs +122 -0
  114. package/dist/chunk-JSG27ZZS.mjs.map +1 -0
  115. package/dist/{chunk-ARBHNHO7.mjs → chunk-M6DVBEEL.mjs} +33 -13
  116. package/dist/chunk-M6DVBEEL.mjs.map +1 -0
  117. package/dist/chunk-MBUMR2XJ.mjs +135 -0
  118. package/dist/chunk-MBUMR2XJ.mjs.map +1 -0
  119. package/dist/chunk-MNH2TGUX.mjs +73 -0
  120. package/dist/chunk-MNH2TGUX.mjs.map +1 -0
  121. package/dist/chunk-RQP6ZGD7.mjs +240 -0
  122. package/dist/chunk-RQP6ZGD7.mjs.map +1 -0
  123. package/dist/chunk-RRMG2SSZ.mjs +265 -0
  124. package/dist/chunk-RRMG2SSZ.mjs.map +1 -0
  125. package/dist/chunk-U4JXKZZG.mjs +186 -0
  126. package/dist/chunk-U4JXKZZG.mjs.map +1 -0
  127. package/dist/chunk-UPBHDBAK.mjs +173 -0
  128. package/dist/chunk-UPBHDBAK.mjs.map +1 -0
  129. package/dist/chunk-W55QJIAN.mjs +467 -0
  130. package/dist/chunk-W55QJIAN.mjs.map +1 -0
  131. package/dist/chunk-YV4OXFIM.mjs +151 -0
  132. package/dist/chunk-YV4OXFIM.mjs.map +1 -0
  133. package/dist/index.d.mts +15 -0
  134. package/dist/index.d.ts +15 -0
  135. package/dist/index.js +3414 -30
  136. package/dist/index.js.map +1 -1
  137. package/dist/index.mjs +63 -3
  138. package/package.json +78 -1
  139. package/dist/chunk-ARBHNHO7.mjs.map +0 -1
  140. package/dist/chunk-BCYJIUQX.mjs.map +0 -1
package/dist/Tabs.d.ts ADDED
@@ -0,0 +1,50 @@
1
+ import * as React from 'react';
2
+
3
+ interface TabItem {
4
+ /**
5
+ * The label text for the tab
6
+ */
7
+ label: string;
8
+ /**
9
+ * Optional icon component
10
+ */
11
+ icon?: React.ReactNode;
12
+ /**
13
+ * Value to identify this tab
14
+ */
15
+ value: string;
16
+ }
17
+ interface TabsProps {
18
+ /**
19
+ * Array of tab items to display
20
+ */
21
+ tabs: TabItem[];
22
+ /**
23
+ * Currently active tab value
24
+ */
25
+ activeTab?: string;
26
+ /**
27
+ * Callback when tab is clicked
28
+ */
29
+ onTabChange?: (value: string) => void;
30
+ /**
31
+ * Custom className
32
+ */
33
+ className?: string;
34
+ /**
35
+ * Custom style
36
+ */
37
+ style?: React.CSSProperties;
38
+ /**
39
+ * Test ID for testing
40
+ */
41
+ 'data-testid'?: string;
42
+ }
43
+ /**
44
+ * Tabs component - Arbor Design System
45
+ *
46
+ * Horizontal tabs with support for icons and various states.
47
+ */
48
+ declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>>;
49
+
50
+ export { type TabItem, Tabs, type TabsProps };
package/dist/Tabs.js ADDED
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/Tabs/index.ts
31
+ var Tabs_exports = {};
32
+ __export(Tabs_exports, {
33
+ Tabs: () => Tabs
34
+ });
35
+ module.exports = __toCommonJS(Tabs_exports);
36
+
37
+ // src/Tabs/Tabs.tsx
38
+ var React = __toESM(require("react"));
39
+ var import_clsx = require("clsx");
40
+ var import_jsx_runtime = require("react/jsx-runtime");
41
+ var tabsContainerStyles = {
42
+ display: "flex",
43
+ alignItems: "flex-start",
44
+ gap: "12px",
45
+ borderBottom: "1px solid #f8f8f8",
46
+ paddingBottom: "1px",
47
+ width: "100%"
48
+ };
49
+ var tabItemWrapperStyles = {
50
+ display: "flex",
51
+ flexDirection: "column",
52
+ alignItems: "center",
53
+ cursor: "pointer",
54
+ position: "relative"
55
+ };
56
+ var tabItemStyles = {
57
+ display: "flex",
58
+ alignItems: "center",
59
+ justifyContent: "center",
60
+ gap: "8px",
61
+ padding: "8px 12px",
62
+ borderRadius: "8px",
63
+ fontSize: "14px",
64
+ lineHeight: "1.5",
65
+ fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
66
+ outline: "none",
67
+ transition: "all 0.2s ease-in-out",
68
+ userSelect: "none"
69
+ };
70
+ var underlineStyles = {
71
+ width: "100%",
72
+ height: "2px",
73
+ borderTopLeftRadius: "4px",
74
+ borderTopRightRadius: "4px",
75
+ transition: "background-color 0.2s ease-in-out"
76
+ };
77
+ var Tabs = React.forwardRef(
78
+ ({
79
+ tabs,
80
+ activeTab,
81
+ onTabChange,
82
+ className,
83
+ style,
84
+ "data-testid": dataTestId
85
+ }, ref) => {
86
+ const [hoveredTab, setHoveredTab] = React.useState(null);
87
+ const [focusedTab, setFocusedTab] = React.useState(null);
88
+ const currentActiveTab = activeTab || (tabs.length > 0 ? tabs[0].value : "");
89
+ const handleTabClick = (value) => {
90
+ onTabChange?.(value);
91
+ };
92
+ const handleKeyDown = (e, value) => {
93
+ if (e.key === "Enter" || e.key === " ") {
94
+ e.preventDefault();
95
+ handleTabClick(value);
96
+ }
97
+ };
98
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
99
+ "div",
100
+ {
101
+ ref,
102
+ className: (0, import_clsx.clsx)("arbor-tabs", className),
103
+ style: { ...tabsContainerStyles, ...style },
104
+ "data-testid": dataTestId,
105
+ role: "tablist",
106
+ children: tabs.map((tab) => {
107
+ const isActive = tab.value === currentActiveTab;
108
+ const isHovered = tab.value === hoveredTab;
109
+ const isFocused = tab.value === focusedTab;
110
+ const getTextColor = () => {
111
+ if (isActive) {
112
+ return "#0e8a0e";
113
+ }
114
+ if (isHovered) {
115
+ return "#202020";
116
+ }
117
+ return "#2f2f2f";
118
+ };
119
+ const getFontWeight = () => {
120
+ return isActive ? 600 : 500;
121
+ };
122
+ const getUnderlineColor = () => {
123
+ if (isActive) {
124
+ return "#0e8a0e";
125
+ }
126
+ if (isHovered) {
127
+ return "#d1d1d1";
128
+ }
129
+ return "transparent";
130
+ };
131
+ const getBoxShadow = () => {
132
+ if (isFocused) {
133
+ return "0px 0px 0px 3px #3cad51";
134
+ }
135
+ return void 0;
136
+ };
137
+ const tabItemStylesCombined = {
138
+ ...tabItemStyles,
139
+ color: getTextColor(),
140
+ fontWeight: getFontWeight(),
141
+ boxShadow: getBoxShadow(),
142
+ backgroundColor: isFocused ? "rgba(255, 255, 255, 0.01)" : "transparent"
143
+ };
144
+ const underlineStylesCombined = {
145
+ ...underlineStyles,
146
+ backgroundColor: getUnderlineColor()
147
+ };
148
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
149
+ "div",
150
+ {
151
+ style: tabItemWrapperStyles,
152
+ onMouseEnter: () => setHoveredTab(tab.value),
153
+ onMouseLeave: () => setHoveredTab(null),
154
+ children: [
155
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
156
+ "div",
157
+ {
158
+ role: "tab",
159
+ "aria-selected": isActive,
160
+ tabIndex: isActive ? 0 : -1,
161
+ onClick: () => handleTabClick(tab.value),
162
+ onKeyDown: (e) => handleKeyDown(e, tab.value),
163
+ onFocus: () => setFocusedTab(tab.value),
164
+ onBlur: () => setFocusedTab(null),
165
+ style: tabItemStylesCombined,
166
+ children: [
167
+ tab.icon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: { display: "flex", alignItems: "center" }, children: tab.icon }),
168
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: tab.label })
169
+ ]
170
+ }
171
+ ),
172
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: underlineStylesCombined })
173
+ ]
174
+ },
175
+ tab.value
176
+ );
177
+ })
178
+ }
179
+ );
180
+ }
181
+ );
182
+ Tabs.displayName = "Tabs";
183
+ // Annotate the CommonJS export names for ESM import in node:
184
+ 0 && (module.exports = {
185
+ Tabs
186
+ });
187
+ //# sourceMappingURL=Tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Tabs/index.ts","../src/Tabs/Tabs.tsx"],"sourcesContent":["export { Tabs } from './Tabs';\nexport type { TabsProps, TabItem } from './Tabs';\n","import * as React from 'react';\nimport { clsx } from 'clsx';\n\nexport interface TabItem {\n /**\n * The label text for the tab\n */\n label: string;\n /**\n * Optional icon component\n */\n icon?: React.ReactNode;\n /**\n * Value to identify this tab\n */\n value: string;\n}\n\nexport interface TabsProps {\n /**\n * Array of tab items to display\n */\n tabs: TabItem[];\n /**\n * Currently active tab value\n */\n activeTab?: string;\n /**\n * Callback when tab is clicked\n */\n onTabChange?: (value: string) => void;\n /**\n * Custom className\n */\n className?: string;\n /**\n * Custom style\n */\n style?: React.CSSProperties;\n /**\n * Test ID for testing\n */\n 'data-testid'?: string;\n}\n\nconst tabsContainerStyles: React.CSSProperties = {\n display: 'flex',\n alignItems: 'flex-start',\n gap: '12px',\n borderBottom: '1px solid #f8f8f8',\n paddingBottom: '1px',\n width: '100%',\n};\n\nconst tabItemWrapperStyles: React.CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n cursor: 'pointer',\n position: 'relative',\n};\n\nconst tabItemStyles: React.CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '8px',\n padding: '8px 12px',\n borderRadius: '8px',\n fontSize: '14px',\n lineHeight: '1.5',\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n outline: 'none',\n transition: 'all 0.2s ease-in-out',\n userSelect: 'none' as const,\n};\n\nconst underlineStyles: React.CSSProperties = {\n width: '100%',\n height: '2px',\n borderTopLeftRadius: '4px',\n borderTopRightRadius: '4px',\n transition: 'background-color 0.2s ease-in-out',\n};\n\n/**\n * Tabs component - Arbor Design System\n *\n * Horizontal tabs with support for icons and various states.\n */\nexport const Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n (\n {\n tabs,\n activeTab,\n onTabChange,\n className,\n style,\n 'data-testid': dataTestId,\n },\n ref\n ) => {\n const [hoveredTab, setHoveredTab] = React.useState<string | null>(null);\n const [focusedTab, setFocusedTab] = React.useState<string | null>(null);\n\n // Determine the active tab (first tab by default)\n const currentActiveTab = activeTab || (tabs.length > 0 ? tabs[0].value : '');\n\n const handleTabClick = (value: string) => {\n onTabChange?.(value);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent, value: string) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleTabClick(value);\n }\n };\n\n return (\n <div\n ref={ref}\n className={clsx('arbor-tabs', className)}\n style={{ ...tabsContainerStyles, ...style }}\n data-testid={dataTestId}\n role=\"tablist\"\n >\n {tabs.map((tab) => {\n const isActive = tab.value === currentActiveTab;\n const isHovered = tab.value === hoveredTab;\n const isFocused = tab.value === focusedTab;\n\n // Determine text color\n const getTextColor = (): string => {\n if (isActive) {\n return '#0e8a0e'; // Active green\n }\n if (isHovered) {\n return '#202020'; // Hover darker grey\n }\n return '#2f2f2f'; // Default grey\n };\n\n // Determine font weight\n const getFontWeight = (): number => {\n return isActive ? 600 : 500; // Semibold for active, medium for inactive\n };\n\n // Determine underline color\n const getUnderlineColor = (): string => {\n if (isActive) {\n return '#0e8a0e'; // Active green\n }\n if (isHovered) {\n return '#d1d1d1'; // Hover grey\n }\n return 'transparent'; // Default transparent\n };\n\n // Get box shadow for focus ring\n const getBoxShadow = (): string | undefined => {\n if (isFocused) {\n return '0px 0px 0px 3px #3cad51';\n }\n return undefined;\n };\n\n const tabItemStylesCombined: React.CSSProperties = {\n ...tabItemStyles,\n color: getTextColor(),\n fontWeight: getFontWeight(),\n boxShadow: getBoxShadow(),\n backgroundColor: isFocused ? 'rgba(255, 255, 255, 0.01)' : 'transparent',\n };\n\n const underlineStylesCombined: React.CSSProperties = {\n ...underlineStyles,\n backgroundColor: getUnderlineColor(),\n };\n\n return (\n <div\n key={tab.value}\n style={tabItemWrapperStyles}\n onMouseEnter={() => setHoveredTab(tab.value)}\n onMouseLeave={() => setHoveredTab(null)}\n >\n <div\n role=\"tab\"\n aria-selected={isActive}\n tabIndex={isActive ? 0 : -1}\n onClick={() => handleTabClick(tab.value)}\n onKeyDown={(e) => handleKeyDown(e, tab.value)}\n onFocus={() => setFocusedTab(tab.value)}\n onBlur={() => setFocusedTab(null)}\n style={tabItemStylesCombined}\n >\n {tab.icon && (\n <span style={{ display: 'flex', alignItems: 'center' }}>\n {tab.icon}\n </span>\n )}\n <span>{tab.label}</span>\n </div>\n <div style={underlineStylesCombined} />\n </div>\n );\n })}\n </div>\n );\n }\n);\n\nTabs.displayName = 'Tabs';\n"],"mappings":"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","names":[]}
package/dist/Tabs.mjs ADDED
@@ -0,0 +1,7 @@
1
+ import {
2
+ Tabs
3
+ } from "./chunk-YV4OXFIM.mjs";
4
+ export {
5
+ Tabs
6
+ };
7
+ //# sourceMappingURL=Tabs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,64 @@
1
+ import * as React from 'react';
2
+
3
+ interface TextAreaProps {
4
+ /**
5
+ * The label for the textarea
6
+ */
7
+ label?: string;
8
+ /**
9
+ * Placeholder text
10
+ */
11
+ placeholder?: string;
12
+ /**
13
+ * Current value
14
+ */
15
+ value?: string;
16
+ /**
17
+ * Change handler
18
+ */
19
+ onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;
20
+ /**
21
+ * Validation state - affects border color
22
+ */
23
+ state?: 'default' | 'success' | 'error';
24
+ /**
25
+ * Error message (implies error state)
26
+ */
27
+ error?: string;
28
+ /**
29
+ * Helper text shown below input
30
+ */
31
+ helperText?: string;
32
+ /**
33
+ * Whether the textarea is disabled
34
+ */
35
+ disabled?: boolean;
36
+ /**
37
+ * Number of rows (affects height)
38
+ */
39
+ rows?: number;
40
+ /**
41
+ * Custom className
42
+ */
43
+ className?: string;
44
+ /**
45
+ * Custom style
46
+ */
47
+ style?: React.CSSProperties;
48
+ /**
49
+ * Test ID for testing
50
+ */
51
+ 'data-testid'?: string;
52
+ /**
53
+ * Name attribute for form submission
54
+ */
55
+ name?: string;
56
+ }
57
+ /**
58
+ * TextArea component - Arbor Design System
59
+ *
60
+ * A multi-line text input with label, helper text, and validation states.
61
+ */
62
+ declare const TextArea: React.ForwardRefExoticComponent<TextAreaProps & React.RefAttributes<HTMLTextAreaElement>>;
63
+
64
+ export { TextArea, type TextAreaProps };
@@ -0,0 +1,64 @@
1
+ import * as React from 'react';
2
+
3
+ interface TextAreaProps {
4
+ /**
5
+ * The label for the textarea
6
+ */
7
+ label?: string;
8
+ /**
9
+ * Placeholder text
10
+ */
11
+ placeholder?: string;
12
+ /**
13
+ * Current value
14
+ */
15
+ value?: string;
16
+ /**
17
+ * Change handler
18
+ */
19
+ onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;
20
+ /**
21
+ * Validation state - affects border color
22
+ */
23
+ state?: 'default' | 'success' | 'error';
24
+ /**
25
+ * Error message (implies error state)
26
+ */
27
+ error?: string;
28
+ /**
29
+ * Helper text shown below input
30
+ */
31
+ helperText?: string;
32
+ /**
33
+ * Whether the textarea is disabled
34
+ */
35
+ disabled?: boolean;
36
+ /**
37
+ * Number of rows (affects height)
38
+ */
39
+ rows?: number;
40
+ /**
41
+ * Custom className
42
+ */
43
+ className?: string;
44
+ /**
45
+ * Custom style
46
+ */
47
+ style?: React.CSSProperties;
48
+ /**
49
+ * Test ID for testing
50
+ */
51
+ 'data-testid'?: string;
52
+ /**
53
+ * Name attribute for form submission
54
+ */
55
+ name?: string;
56
+ }
57
+ /**
58
+ * TextArea component - Arbor Design System
59
+ *
60
+ * A multi-line text input with label, helper text, and validation states.
61
+ */
62
+ declare const TextArea: React.ForwardRefExoticComponent<TextAreaProps & React.RefAttributes<HTMLTextAreaElement>>;
63
+
64
+ export { TextArea, type TextAreaProps };
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/TextArea/index.ts
31
+ var TextArea_exports = {};
32
+ __export(TextArea_exports, {
33
+ TextArea: () => TextArea
34
+ });
35
+ module.exports = __toCommonJS(TextArea_exports);
36
+
37
+ // src/TextArea/TextArea.tsx
38
+ var React = __toESM(require("react"));
39
+ var import_clsx = require("clsx");
40
+ var import_jsx_runtime = require("react/jsx-runtime");
41
+ var labelStyles = {
42
+ fontSize: "13px",
43
+ fontWeight: 600,
44
+ color: "#2f2f2f",
45
+ marginBottom: "0px",
46
+ display: "block",
47
+ fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
48
+ };
49
+ var textareaWrapperStyles = {
50
+ position: "relative",
51
+ width: "100%"
52
+ };
53
+ var textareaStyles = {
54
+ width: "100%",
55
+ minHeight: "72px",
56
+ padding: "8px",
57
+ fontSize: "13px",
58
+ fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
59
+ border: "1px solid",
60
+ borderRadius: "8px",
61
+ outline: "none",
62
+ resize: "vertical",
63
+ transition: "all 0.2s ease-in-out",
64
+ lineHeight: "1.5"
65
+ };
66
+ var helperTextStyles = {
67
+ fontSize: "13px",
68
+ marginTop: "4px",
69
+ fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
70
+ };
71
+ var TextArea = React.forwardRef(
72
+ ({
73
+ label,
74
+ placeholder,
75
+ value,
76
+ onChange,
77
+ state = "default",
78
+ error,
79
+ helperText,
80
+ disabled = false,
81
+ rows = 3,
82
+ className,
83
+ style,
84
+ "data-testid": dataTestId,
85
+ name
86
+ }, ref) => {
87
+ const [isFocused, setIsFocused] = React.useState(false);
88
+ const [isHovered, setIsHovered] = React.useState(false);
89
+ const textareaId = React.useId();
90
+ const actualState = error ? "error" : state;
91
+ const getBorderColor = () => {
92
+ if (disabled) {
93
+ return "#dfdfdf";
94
+ }
95
+ if (actualState === "error") {
96
+ return "#c93232";
97
+ }
98
+ if (actualState === "success") {
99
+ return "#0e8a0e";
100
+ }
101
+ if (isFocused) {
102
+ return "#0e8a0e";
103
+ }
104
+ if (isHovered) {
105
+ return "#7e7e7e";
106
+ }
107
+ return "#dfdfdf";
108
+ };
109
+ const getBackgroundColor = () => {
110
+ if (disabled) {
111
+ return "#efefef";
112
+ }
113
+ return "#ffffff";
114
+ };
115
+ const getBoxShadow = () => {
116
+ if (isFocused && !disabled) {
117
+ if (actualState === "error") {
118
+ return "0px 0px 0px 3px rgba(201, 50, 50, 0.2)";
119
+ }
120
+ return "0px 0px 0px 3px #3cad51";
121
+ }
122
+ return void 0;
123
+ };
124
+ const textareaStylesCombined = {
125
+ ...textareaStyles,
126
+ borderColor: getBorderColor(),
127
+ backgroundColor: getBackgroundColor(),
128
+ boxShadow: getBoxShadow(),
129
+ color: disabled ? "#7e7e7e" : "#2f2f2f",
130
+ cursor: disabled ? "not-allowed" : "text"
131
+ };
132
+ const helperColor = error ? "#c93232" : actualState === "success" ? "#0e8a0e" : "#595959";
133
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
134
+ "div",
135
+ {
136
+ className: (0, import_clsx.clsx)("arbor-textarea-wrapper", className),
137
+ style,
138
+ "data-testid": dataTestId,
139
+ children: [
140
+ label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("label", { htmlFor: textareaId, style: labelStyles, children: label }),
141
+ label && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { height: "8px" } }),
142
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: textareaWrapperStyles, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
143
+ "textarea",
144
+ {
145
+ ref,
146
+ id: textareaId,
147
+ name,
148
+ placeholder,
149
+ value,
150
+ onChange,
151
+ disabled,
152
+ rows,
153
+ onFocus: () => setIsFocused(true),
154
+ onBlur: () => setIsFocused(false),
155
+ onMouseEnter: () => setIsHovered(true),
156
+ onMouseLeave: () => setIsHovered(false),
157
+ style: textareaStylesCombined
158
+ }
159
+ ) }),
160
+ (error || helperText) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { ...helperTextStyles, color: helperColor }, role: error ? "alert" : void 0, children: error || helperText })
161
+ ]
162
+ }
163
+ );
164
+ }
165
+ );
166
+ TextArea.displayName = "TextArea";
167
+ // Annotate the CommonJS export names for ESM import in node:
168
+ 0 && (module.exports = {
169
+ TextArea
170
+ });
171
+ //# sourceMappingURL=TextArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/TextArea/index.ts","../src/TextArea/TextArea.tsx"],"sourcesContent":["export { TextArea } from './TextArea';\nexport type { TextAreaProps } from './TextArea';\n","import * as React from 'react';\nimport { clsx } from 'clsx';\n\nexport interface TextAreaProps {\n /**\n * The label for the textarea\n */\n label?: string;\n /**\n * Placeholder text\n */\n placeholder?: string;\n /**\n * Current value\n */\n value?: string;\n /**\n * Change handler\n */\n onChange?: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n /**\n * Validation state - affects border color\n */\n state?: 'default' | 'success' | 'error';\n /**\n * Error message (implies error state)\n */\n error?: string;\n /**\n * Helper text shown below input\n */\n helperText?: string;\n /**\n * Whether the textarea is disabled\n */\n disabled?: boolean;\n /**\n * Number of rows (affects height)\n */\n rows?: number;\n /**\n * Custom className\n */\n className?: string;\n /**\n * Custom style\n */\n style?: React.CSSProperties;\n /**\n * Test ID for testing\n */\n 'data-testid'?: string;\n /**\n * Name attribute for form submission\n */\n name?: string;\n}\n\nconst labelStyles: React.CSSProperties = {\n fontSize: '13px',\n fontWeight: 600,\n color: '#2f2f2f',\n marginBottom: '0px',\n display: 'block',\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n};\n\nconst textareaWrapperStyles: React.CSSProperties = {\n position: 'relative',\n width: '100%',\n};\n\nconst textareaStyles: React.CSSProperties = {\n width: '100%',\n minHeight: '72px',\n padding: '8px',\n fontSize: '13px',\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n border: '1px solid',\n borderRadius: '8px',\n outline: 'none',\n resize: 'vertical',\n transition: 'all 0.2s ease-in-out',\n lineHeight: '1.5',\n};\n\nconst helperTextStyles: React.CSSProperties = {\n fontSize: '13px',\n marginTop: '4px',\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n};\n\n/**\n * TextArea component - Arbor Design System\n *\n * A multi-line text input with label, helper text, and validation states.\n */\nexport const TextArea = React.forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n label,\n placeholder,\n value,\n onChange,\n state = 'default',\n error,\n helperText,\n disabled = false,\n rows = 3,\n className,\n style,\n 'data-testid': dataTestId,\n name,\n },\n ref\n ) => {\n const [isFocused, setIsFocused] = React.useState(false);\n const [isHovered, setIsHovered] = React.useState(false);\n const textareaId = React.useId();\n\n // Determine the actual state (error overrides state prop)\n const actualState = error ? 'error' : state;\n\n // Get border color based on state and interactions\n const getBorderColor = (): string => {\n if (disabled) {\n return '#dfdfdf';\n }\n\n if (actualState === 'error') {\n return '#c93232';\n }\n\n if (actualState === 'success') {\n return '#0e8a0e';\n }\n\n if (isFocused) {\n return '#0e8a0e';\n }\n\n if (isHovered) {\n return '#7e7e7e';\n }\n\n return '#dfdfdf';\n };\n\n // Get background color\n const getBackgroundColor = (): string => {\n if (disabled) {\n return '#efefef';\n }\n return '#ffffff';\n };\n\n // Get box shadow (focus ring)\n const getBoxShadow = (): string | undefined => {\n if (isFocused && !disabled) {\n if (actualState === 'error') {\n return '0px 0px 0px 3px rgba(201, 50, 50, 0.2)';\n }\n return '0px 0px 0px 3px #3cad51';\n }\n return undefined;\n };\n\n const textareaStylesCombined: React.CSSProperties = {\n ...textareaStyles,\n borderColor: getBorderColor(),\n backgroundColor: getBackgroundColor(),\n boxShadow: getBoxShadow(),\n color: disabled ? '#7e7e7e' : '#2f2f2f',\n cursor: disabled ? 'not-allowed' : 'text',\n };\n\n const helperColor = error ? '#c93232' : actualState === 'success' ? '#0e8a0e' : '#595959';\n\n return (\n <div\n className={clsx('arbor-textarea-wrapper', className)}\n style={style}\n data-testid={dataTestId}\n >\n {label && (\n <label htmlFor={textareaId} style={labelStyles}>\n {label}\n </label>\n )}\n {label && <div style={{ height: '8px' }} />}\n <div style={textareaWrapperStyles}>\n <textarea\n ref={ref}\n id={textareaId}\n name={name}\n placeholder={placeholder}\n value={value}\n onChange={onChange}\n disabled={disabled}\n rows={rows}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n style={textareaStylesCombined}\n />\n </div>\n {(error || helperText) && (\n <div style={{ ...helperTextStyles, color: helperColor }} role={error ? 'alert' : undefined}>\n {error || helperText}\n </div>\n )}\n </div>\n );\n }\n);\n\nTextArea.displayName = 'TextArea';\n"],"mappings":"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","names":[]}
@@ -0,0 +1,7 @@
1
+ import {
2
+ TextArea
3
+ } from "./chunk-MBUMR2XJ.mjs";
4
+ export {
5
+ TextArea
6
+ };
7
+ //# sourceMappingURL=TextArea.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,48 @@
1
+ import * as React from 'react';
2
+
3
+ interface ToastProps {
4
+ /**
5
+ * The variant of the toast
6
+ */
7
+ variant: 'information' | 'danger' | 'warning' | 'success' | 'caution';
8
+ /**
9
+ * The message to display
10
+ */
11
+ message: string;
12
+ /**
13
+ * Callback when close button is clicked
14
+ */
15
+ onClose?: () => void;
16
+ /**
17
+ * Custom className
18
+ */
19
+ className?: string;
20
+ /**
21
+ * Custom style
22
+ */
23
+ style?: React.CSSProperties;
24
+ /**
25
+ * Test ID for testing
26
+ */
27
+ 'data-testid'?: string;
28
+ }
29
+ /**
30
+ * Toast component - Arbor Design System
31
+ *
32
+ * A notification toast with different variants for different message types.
33
+ *
34
+ * IMPORTANT: Toasts are designed to overlay content in the top-right corner.
35
+ * Use absolute/fixed positioning to display them above page content.
36
+ *
37
+ * For inline notifications that flow with page content, use the Banner component instead.
38
+ *
39
+ * Example usage with positioning:
40
+ * ```tsx
41
+ * <div style={{ position: 'fixed', top: '24px', right: '24px', zIndex: 1000 }}>
42
+ * <Toast variant="success" message="Changes saved!" onClose={() => {}} />
43
+ * </div>
44
+ * ```
45
+ */
46
+ declare const Toast: React.ForwardRefExoticComponent<ToastProps & React.RefAttributes<HTMLDivElement>>;
47
+
48
+ export { Toast, type ToastProps };