@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
@@ -0,0 +1,42 @@
1
+ import * as React from 'react';
2
+
3
+ type AvatarSize = 'small' | 'medium' | 'large' | 'extra-large';
4
+ interface AvatarProps {
5
+ /**
6
+ * Size of the avatar
7
+ */
8
+ size?: AvatarSize;
9
+ /**
10
+ * Image source URL
11
+ */
12
+ src?: string;
13
+ /**
14
+ * Initials to display (2 characters) when no image is provided
15
+ */
16
+ initials?: string;
17
+ /**
18
+ * Alt text for the image
19
+ */
20
+ alt?: string;
21
+ /**
22
+ * Custom className
23
+ */
24
+ className?: string;
25
+ /**
26
+ * Custom style
27
+ */
28
+ style?: React.CSSProperties;
29
+ /**
30
+ * Test ID for testing
31
+ */
32
+ 'data-testid'?: string;
33
+ }
34
+ /**
35
+ * Avatar component - Arbor Design System
36
+ *
37
+ * Displays a user avatar with support for images, initials, or a placeholder icon.
38
+ * Features hover state with inner shadow effect.
39
+ */
40
+ declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>>;
41
+
42
+ export { Avatar, type AvatarProps, type AvatarSize };
@@ -0,0 +1,42 @@
1
+ import * as React from 'react';
2
+
3
+ type AvatarSize = 'small' | 'medium' | 'large' | 'extra-large';
4
+ interface AvatarProps {
5
+ /**
6
+ * Size of the avatar
7
+ */
8
+ size?: AvatarSize;
9
+ /**
10
+ * Image source URL
11
+ */
12
+ src?: string;
13
+ /**
14
+ * Initials to display (2 characters) when no image is provided
15
+ */
16
+ initials?: string;
17
+ /**
18
+ * Alt text for the image
19
+ */
20
+ alt?: string;
21
+ /**
22
+ * Custom className
23
+ */
24
+ className?: string;
25
+ /**
26
+ * Custom style
27
+ */
28
+ style?: React.CSSProperties;
29
+ /**
30
+ * Test ID for testing
31
+ */
32
+ 'data-testid'?: string;
33
+ }
34
+ /**
35
+ * Avatar component - Arbor Design System
36
+ *
37
+ * Displays a user avatar with support for images, initials, or a placeholder icon.
38
+ * Features hover state with inner shadow effect.
39
+ */
40
+ declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>>;
41
+
42
+ export { Avatar, type AvatarProps, type AvatarSize };
package/dist/Avatar.js ADDED
@@ -0,0 +1,158 @@
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/Avatar/index.ts
31
+ var Avatar_exports = {};
32
+ __export(Avatar_exports, {
33
+ Avatar: () => Avatar
34
+ });
35
+ module.exports = __toCommonJS(Avatar_exports);
36
+
37
+ // src/Avatar/Avatar.tsx
38
+ var React = __toESM(require("react"));
39
+ var import_lucide_react = require("lucide-react");
40
+ var import_jsx_runtime = require("react/jsx-runtime");
41
+ var sizeConfig = {
42
+ small: {
43
+ size: 20,
44
+ fontSize: 0,
45
+ // Too small for initials
46
+ fontWeight: 400,
47
+ iconSize: 12,
48
+ borderRadius: "99px"
49
+ },
50
+ medium: {
51
+ size: 32,
52
+ fontSize: 13,
53
+ fontWeight: 400,
54
+ iconSize: 16,
55
+ borderRadius: "99px"
56
+ },
57
+ large: {
58
+ size: 48,
59
+ fontSize: 13,
60
+ fontWeight: 400,
61
+ iconSize: 24,
62
+ borderRadius: "4px"
63
+ },
64
+ "extra-large": {
65
+ size: 96,
66
+ fontSize: 27,
67
+ fontWeight: 600,
68
+ iconSize: 48,
69
+ borderRadius: "8px"
70
+ }
71
+ };
72
+ var Avatar = React.forwardRef(
73
+ ({
74
+ size = "medium",
75
+ src,
76
+ initials,
77
+ alt = "Avatar",
78
+ className,
79
+ style,
80
+ "data-testid": dataTestId
81
+ }, ref) => {
82
+ const [isHovered, setIsHovered] = React.useState(false);
83
+ const [imageError, setImageError] = React.useState(false);
84
+ const config = sizeConfig[size];
85
+ const hasHoverState = size === "small";
86
+ const containerStyles = {
87
+ width: `${config.size}px`,
88
+ height: `${config.size}px`,
89
+ borderRadius: config.borderRadius,
90
+ border: "1px solid #efefef",
91
+ overflow: "hidden",
92
+ position: "relative",
93
+ backgroundColor: "#f8f8f8",
94
+ display: "flex",
95
+ alignItems: "center",
96
+ justifyContent: "center",
97
+ fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
98
+ cursor: "default",
99
+ boxSizing: "border-box",
100
+ ...style
101
+ };
102
+ const hoverOverlayStyles = {
103
+ position: "absolute",
104
+ inset: 0,
105
+ pointerEvents: "none",
106
+ boxShadow: isHovered && hasHoverState ? "inset 0px 4px 100px 0px rgba(32, 32, 32, 0.3)" : "none",
107
+ borderRadius: config.borderRadius,
108
+ transition: "box-shadow 0.2s ease-in-out"
109
+ };
110
+ const imageStyles = {
111
+ width: "100%",
112
+ height: "100%",
113
+ objectFit: "cover"
114
+ };
115
+ const initialsStyles = {
116
+ fontSize: `${config.fontSize}px`,
117
+ fontWeight: config.fontWeight,
118
+ color: "#2f2f2f",
119
+ lineHeight: 1.5,
120
+ textAlign: "center",
121
+ userSelect: "none"
122
+ };
123
+ const showImage = src && !imageError;
124
+ const showInitials = !showImage && initials && size !== "small";
125
+ const showPlaceholder = !showImage && !showInitials;
126
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
127
+ "div",
128
+ {
129
+ ref,
130
+ className,
131
+ style: containerStyles,
132
+ onMouseEnter: () => setIsHovered(true),
133
+ onMouseLeave: () => setIsHovered(false),
134
+ "data-testid": dataTestId,
135
+ children: [
136
+ showImage && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
137
+ "img",
138
+ {
139
+ src,
140
+ alt,
141
+ style: imageStyles,
142
+ onError: () => setImageError(true)
143
+ }
144
+ ),
145
+ showInitials && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { style: initialsStyles, children: initials.slice(0, 2).toUpperCase() }),
146
+ showPlaceholder && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.User, { size: config.iconSize, color: "#d1d1d1", strokeWidth: 2 }),
147
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: hoverOverlayStyles })
148
+ ]
149
+ }
150
+ );
151
+ }
152
+ );
153
+ Avatar.displayName = "Avatar";
154
+ // Annotate the CommonJS export names for ESM import in node:
155
+ 0 && (module.exports = {
156
+ Avatar
157
+ });
158
+ //# sourceMappingURL=Avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Avatar/index.ts","../src/Avatar/Avatar.tsx"],"sourcesContent":["export { Avatar } from './Avatar';\nexport type { AvatarProps, AvatarSize } from './Avatar';\n","import * as React from 'react';\nimport { User } from 'lucide-react';\n\nexport type AvatarSize = 'small' | 'medium' | 'large' | 'extra-large';\n\nexport interface AvatarProps {\n /**\n * Size of the avatar\n */\n size?: AvatarSize;\n /**\n * Image source URL\n */\n src?: string;\n /**\n * Initials to display (2 characters) when no image is provided\n */\n initials?: string;\n /**\n * Alt text for the image\n */\n alt?: string;\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 sizeConfig = {\n small: {\n size: 20,\n fontSize: 0, // Too small for initials\n fontWeight: 400,\n iconSize: 12,\n borderRadius: '99px',\n },\n medium: {\n size: 32,\n fontSize: 13,\n fontWeight: 400,\n iconSize: 16,\n borderRadius: '99px',\n },\n large: {\n size: 48,\n fontSize: 13,\n fontWeight: 400,\n iconSize: 24,\n borderRadius: '4px',\n },\n 'extra-large': {\n size: 96,\n fontSize: 27,\n fontWeight: 600,\n iconSize: 48,\n borderRadius: '8px',\n },\n};\n\n/**\n * Avatar component - Arbor Design System\n *\n * Displays a user avatar with support for images, initials, or a placeholder icon.\n * Features hover state with inner shadow effect.\n */\nexport const Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(\n (\n {\n size = 'medium',\n src,\n initials,\n alt = 'Avatar',\n className,\n style,\n 'data-testid': dataTestId,\n },\n ref\n ) => {\n const [isHovered, setIsHovered] = React.useState(false);\n const [imageError, setImageError] = React.useState(false);\n const config = sizeConfig[size];\n\n // Only apply hover state for small size\n const hasHoverState = size === 'small';\n\n const containerStyles: React.CSSProperties = {\n width: `${config.size}px`,\n height: `${config.size}px`,\n borderRadius: config.borderRadius,\n border: '1px solid #efefef',\n overflow: 'hidden',\n position: 'relative',\n backgroundColor: '#f8f8f8',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n cursor: 'default',\n boxSizing: 'border-box',\n ...style,\n };\n\n const hoverOverlayStyles: React.CSSProperties = {\n position: 'absolute',\n inset: 0,\n pointerEvents: 'none',\n boxShadow: isHovered && hasHoverState ? 'inset 0px 4px 100px 0px rgba(32, 32, 32, 0.3)' : 'none',\n borderRadius: config.borderRadius,\n transition: 'box-shadow 0.2s ease-in-out',\n };\n\n const imageStyles: React.CSSProperties = {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n };\n\n const initialsStyles: React.CSSProperties = {\n fontSize: `${config.fontSize}px`,\n fontWeight: config.fontWeight,\n color: '#2f2f2f',\n lineHeight: 1.5,\n textAlign: 'center',\n userSelect: 'none',\n };\n\n // Determine what to display\n const showImage = src && !imageError;\n const showInitials = !showImage && initials && size !== 'small';\n const showPlaceholder = !showImage && !showInitials;\n\n return (\n <div\n ref={ref}\n className={className}\n style={containerStyles}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n data-testid={dataTestId}\n >\n {showImage && (\n <img\n src={src}\n alt={alt}\n style={imageStyles}\n onError={() => setImageError(true)}\n />\n )}\n\n {showInitials && (\n <span style={initialsStyles}>\n {initials.slice(0, 2).toUpperCase()}\n </span>\n )}\n\n {showPlaceholder && (\n <User size={config.iconSize} color=\"#d1d1d1\" strokeWidth={2} />\n )}\n\n <div style={hoverOverlayStyles} />\n </div>\n );\n }\n);\n\nAvatar.displayName = 'Avatar';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,YAAuB;AACvB,0BAAqB;AA2If;AAxGN,IAAM,aAAa;AAAA,EACjB,OAAO;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,IACV,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,cAAc;AAAA,EAChB;AAAA,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,cAAc;AAAA,EAChB;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,cAAc;AAAA,EAChB;AAAA,EACA,eAAe;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,cAAc;AAAA,EAChB;AACF;AAQO,IAAM,SAAe;AAAA,EAC1B,CACE;AAAA,IACE,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA,eAAe;AAAA,EACjB,GACA,QACG;AACH,UAAM,CAAC,WAAW,YAAY,IAAU,eAAS,KAAK;AACtD,UAAM,CAAC,YAAY,aAAa,IAAU,eAAS,KAAK;AACxD,UAAM,SAAS,WAAW,IAAI;AAG9B,UAAM,gBAAgB,SAAS;AAE/B,UAAM,kBAAuC;AAAA,MAC3C,OAAO,GAAG,OAAO,IAAI;AAAA,MACrB,QAAQ,GAAG,OAAO,IAAI;AAAA,MACtB,cAAc,OAAO;AAAA,MACrB,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,UAAU;AAAA,MACV,iBAAiB;AAAA,MACjB,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,GAAG;AAAA,IACL;AAEA,UAAM,qBAA0C;AAAA,MAC9C,UAAU;AAAA,MACV,OAAO;AAAA,MACP,eAAe;AAAA,MACf,WAAW,aAAa,gBAAgB,kDAAkD;AAAA,MAC1F,cAAc,OAAO;AAAA,MACrB,YAAY;AAAA,IACd;AAEA,UAAM,cAAmC;AAAA,MACvC,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,WAAW;AAAA,IACb;AAEA,UAAM,iBAAsC;AAAA,MAC1C,UAAU,GAAG,OAAO,QAAQ;AAAA,MAC5B,YAAY,OAAO;AAAA,MACnB,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,YAAY;AAAA,IACd;AAGA,UAAM,YAAY,OAAO,CAAC;AAC1B,UAAM,eAAe,CAAC,aAAa,YAAY,SAAS;AACxD,UAAM,kBAAkB,CAAC,aAAa,CAAC;AAEvC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP,cAAc,MAAM,aAAa,IAAI;AAAA,QACrC,cAAc,MAAM,aAAa,KAAK;AAAA,QACtC,eAAa;AAAA,QAEZ;AAAA,uBACC;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA,OAAO;AAAA,cACP,SAAS,MAAM,cAAc,IAAI;AAAA;AAAA,UACnC;AAAA,UAGD,gBACC,4CAAC,UAAK,OAAO,gBACV,mBAAS,MAAM,GAAG,CAAC,EAAE,YAAY,GACpC;AAAA,UAGD,mBACC,4CAAC,4BAAK,MAAM,OAAO,UAAU,OAAM,WAAU,aAAa,GAAG;AAAA,UAG/D,4CAAC,SAAI,OAAO,oBAAoB;AAAA;AAAA;AAAA,IAClC;AAAA,EAEJ;AACF;AAEA,OAAO,cAAc;","names":[]}
@@ -0,0 +1,7 @@
1
+ import {
2
+ Avatar
3
+ } from "./chunk-JSG27ZZS.mjs";
4
+ export {
5
+ Avatar
6
+ };
7
+ //# sourceMappingURL=Avatar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,59 @@
1
+ import * as React from 'react';
2
+
3
+ type BannerVariant = 'warning' | 'destructive' | 'information' | 'neutral';
4
+ interface BannerProps {
5
+ /**
6
+ * Banner variant - determines color scheme
7
+ */
8
+ variant?: BannerVariant;
9
+ /**
10
+ * Optional title text
11
+ */
12
+ title?: string;
13
+ /**
14
+ * Main message/description text
15
+ */
16
+ message: string;
17
+ /**
18
+ * Optional icon (pass false to hide default icon, or pass custom ReactNode)
19
+ */
20
+ icon?: React.ReactNode | boolean;
21
+ /**
22
+ * Optional action button label
23
+ */
24
+ actionLabel?: string;
25
+ /**
26
+ * Action button click handler
27
+ */
28
+ onAction?: () => void;
29
+ /**
30
+ * Optional close button
31
+ */
32
+ onClose?: () => void;
33
+ /**
34
+ * Custom className
35
+ */
36
+ className?: string;
37
+ /**
38
+ * Custom style
39
+ */
40
+ style?: React.CSSProperties;
41
+ /**
42
+ * Test ID for testing
43
+ */
44
+ 'data-testid'?: string;
45
+ }
46
+ /**
47
+ * Banner component - Arbor Design System
48
+ *
49
+ * Informational banners with 4 variants (warning, destructive, information, neutral)
50
+ * and optional title, icon, and action button.
51
+ *
52
+ * IMPORTANT: Banners are always displayed inline with page content (not overlays).
53
+ * They flow with the document layout and push other content down.
54
+ *
55
+ * For overlay notifications in the top-right corner, use the Toast component instead.
56
+ */
57
+ declare const Banner: React.ForwardRefExoticComponent<BannerProps & React.RefAttributes<HTMLDivElement>>;
58
+
59
+ export { Banner, type BannerProps, type BannerVariant };
@@ -0,0 +1,59 @@
1
+ import * as React from 'react';
2
+
3
+ type BannerVariant = 'warning' | 'destructive' | 'information' | 'neutral';
4
+ interface BannerProps {
5
+ /**
6
+ * Banner variant - determines color scheme
7
+ */
8
+ variant?: BannerVariant;
9
+ /**
10
+ * Optional title text
11
+ */
12
+ title?: string;
13
+ /**
14
+ * Main message/description text
15
+ */
16
+ message: string;
17
+ /**
18
+ * Optional icon (pass false to hide default icon, or pass custom ReactNode)
19
+ */
20
+ icon?: React.ReactNode | boolean;
21
+ /**
22
+ * Optional action button label
23
+ */
24
+ actionLabel?: string;
25
+ /**
26
+ * Action button click handler
27
+ */
28
+ onAction?: () => void;
29
+ /**
30
+ * Optional close button
31
+ */
32
+ onClose?: () => void;
33
+ /**
34
+ * Custom className
35
+ */
36
+ className?: string;
37
+ /**
38
+ * Custom style
39
+ */
40
+ style?: React.CSSProperties;
41
+ /**
42
+ * Test ID for testing
43
+ */
44
+ 'data-testid'?: string;
45
+ }
46
+ /**
47
+ * Banner component - Arbor Design System
48
+ *
49
+ * Informational banners with 4 variants (warning, destructive, information, neutral)
50
+ * and optional title, icon, and action button.
51
+ *
52
+ * IMPORTANT: Banners are always displayed inline with page content (not overlays).
53
+ * They flow with the document layout and push other content down.
54
+ *
55
+ * For overlay notifications in the top-right corner, use the Toast component instead.
56
+ */
57
+ declare const Banner: React.ForwardRefExoticComponent<BannerProps & React.RefAttributes<HTMLDivElement>>;
58
+
59
+ export { Banner, type BannerProps, type BannerVariant };
package/dist/Banner.js ADDED
@@ -0,0 +1,222 @@
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/Banner/index.ts
31
+ var Banner_exports = {};
32
+ __export(Banner_exports, {
33
+ Banner: () => Banner
34
+ });
35
+ module.exports = __toCommonJS(Banner_exports);
36
+
37
+ // src/Banner/Banner.tsx
38
+ var React = __toESM(require("react"));
39
+ var import_clsx = require("clsx");
40
+ var import_lucide_react = require("lucide-react");
41
+ var import_jsx_runtime = require("react/jsx-runtime");
42
+ var containerStyles = {
43
+ display: "flex",
44
+ alignItems: "flex-start",
45
+ padding: "16px",
46
+ borderRadius: "8px",
47
+ border: "1px solid",
48
+ width: "100%",
49
+ fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
50
+ };
51
+ var iconContainerStyles = {
52
+ flexShrink: 0,
53
+ width: "24px",
54
+ height: "24px",
55
+ display: "flex",
56
+ alignItems: "center",
57
+ justifyContent: "center"
58
+ };
59
+ var contentContainerStyles = {
60
+ flex: 1,
61
+ display: "flex",
62
+ flexDirection: "column",
63
+ minWidth: 0
64
+ };
65
+ var titleStyles = {
66
+ fontSize: "18px",
67
+ fontWeight: 600,
68
+ lineHeight: "1.25",
69
+ marginBottom: "8px"
70
+ };
71
+ var messageStyles = {
72
+ fontSize: "13px",
73
+ fontWeight: 400,
74
+ lineHeight: "1.5",
75
+ margin: 0
76
+ };
77
+ var actionContainerStyles = {
78
+ display: "flex",
79
+ flexDirection: "column",
80
+ justifyContent: "flex-end",
81
+ alignItems: "flex-end",
82
+ alignSelf: "stretch",
83
+ flexShrink: 0
84
+ };
85
+ var actionButtonStyles = {
86
+ background: "none",
87
+ border: "none",
88
+ padding: 0,
89
+ fontSize: "13px",
90
+ fontWeight: 600,
91
+ lineHeight: "1.5",
92
+ textDecoration: "underline",
93
+ textUnderlinePosition: "from-font",
94
+ cursor: "pointer",
95
+ fontFamily: "inherit"
96
+ };
97
+ var closeButtonStyles = {
98
+ background: "none",
99
+ border: "none",
100
+ padding: "4px",
101
+ cursor: "pointer",
102
+ display: "flex",
103
+ alignItems: "center",
104
+ justifyContent: "center",
105
+ flexShrink: 0,
106
+ marginLeft: "8px"
107
+ };
108
+ var variantConfig = {
109
+ warning: {
110
+ backgroundColor: "#fffaf5",
111
+ borderColor: "#e4720d",
112
+ textColor: "#611f00",
113
+ actionColor: "#a74102",
114
+ icon: import_lucide_react.AlertTriangle
115
+ },
116
+ destructive: {
117
+ backgroundColor: "#fff5f5",
118
+ borderColor: "#c93232",
119
+ textColor: "#610202",
120
+ actionColor: "#920a0a",
121
+ icon: import_lucide_react.AlertCircle
122
+ },
123
+ information: {
124
+ backgroundColor: "#f5fbff",
125
+ borderColor: "#2c8bca",
126
+ textColor: "#053a61",
127
+ actionColor: "#024f83",
128
+ icon: import_lucide_react.Info
129
+ },
130
+ neutral: {
131
+ backgroundColor: "transparent",
132
+ borderColor: "#b3b3b3",
133
+ textColor: "#2f2f2f",
134
+ actionColor: "#2f2f2f",
135
+ icon: import_lucide_react.Info
136
+ }
137
+ };
138
+ var Banner = React.forwardRef(
139
+ ({
140
+ variant = "information",
141
+ title,
142
+ message,
143
+ icon = true,
144
+ actionLabel,
145
+ onAction,
146
+ onClose,
147
+ className,
148
+ style,
149
+ "data-testid": dataTestId
150
+ }, ref) => {
151
+ const config = variantConfig[variant];
152
+ const DefaultIcon = config.icon;
153
+ const showIcon = icon !== false;
154
+ const iconElement = icon === true || icon === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DefaultIcon, { size: 20, strokeWidth: 2 }) : icon;
155
+ const containerStylesCombined = {
156
+ ...containerStyles,
157
+ backgroundColor: config.backgroundColor,
158
+ borderColor: config.borderColor,
159
+ color: config.textColor,
160
+ gap: showIcon ? "16px" : "0px",
161
+ ...style
162
+ };
163
+ const titleStylesCombined = {
164
+ ...titleStyles,
165
+ color: config.textColor
166
+ };
167
+ const messageStylesCombined = {
168
+ ...messageStyles,
169
+ color: config.textColor
170
+ };
171
+ const actionButtonStylesCombined = {
172
+ ...actionButtonStyles,
173
+ color: config.actionColor
174
+ };
175
+ const closeButtonStylesCombined = {
176
+ ...closeButtonStyles,
177
+ color: config.textColor
178
+ };
179
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
180
+ "div",
181
+ {
182
+ ref,
183
+ className: (0, import_clsx.clsx)("arbor-banner", `arbor-banner--${variant}`, className),
184
+ style: containerStylesCombined,
185
+ "data-testid": dataTestId,
186
+ role: "alert",
187
+ children: [
188
+ showIcon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { ...iconContainerStyles, color: config.textColor }, children: iconElement }),
189
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: contentContainerStyles, children: [
190
+ title && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: titleStylesCombined, children: title }),
191
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { style: messageStylesCombined, children: message })
192
+ ] }),
193
+ actionLabel && onAction && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: actionContainerStyles, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
194
+ "button",
195
+ {
196
+ type: "button",
197
+ onClick: onAction,
198
+ style: actionButtonStylesCombined,
199
+ children: actionLabel
200
+ }
201
+ ) }),
202
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
203
+ "button",
204
+ {
205
+ type: "button",
206
+ onClick: onClose,
207
+ style: closeButtonStylesCombined,
208
+ "aria-label": "Close banner",
209
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.X, { size: 20 })
210
+ }
211
+ )
212
+ ]
213
+ }
214
+ );
215
+ }
216
+ );
217
+ Banner.displayName = "Banner";
218
+ // Annotate the CommonJS export names for ESM import in node:
219
+ 0 && (module.exports = {
220
+ Banner
221
+ });
222
+ //# sourceMappingURL=Banner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Banner/index.ts","../src/Banner/Banner.tsx"],"sourcesContent":["export { Banner } from './Banner';\nexport type { BannerProps, BannerVariant } from './Banner';\n","import * as React from 'react';\nimport { clsx } from 'clsx';\nimport { AlertCircle, AlertTriangle, Info, X } from 'lucide-react';\n\nexport type BannerVariant = 'warning' | 'destructive' | 'information' | 'neutral';\n\nexport interface BannerProps {\n /**\n * Banner variant - determines color scheme\n */\n variant?: BannerVariant;\n /**\n * Optional title text\n */\n title?: string;\n /**\n * Main message/description text\n */\n message: string;\n /**\n * Optional icon (pass false to hide default icon, or pass custom ReactNode)\n */\n icon?: React.ReactNode | boolean;\n /**\n * Optional action button label\n */\n actionLabel?: string;\n /**\n * Action button click handler\n */\n onAction?: () => void;\n /**\n * Optional close button\n */\n onClose?: () => 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 containerStyles: React.CSSProperties = {\n display: 'flex',\n alignItems: 'flex-start',\n padding: '16px',\n borderRadius: '8px',\n border: '1px solid',\n width: '100%',\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n};\n\nconst iconContainerStyles: React.CSSProperties = {\n flexShrink: 0,\n width: '24px',\n height: '24px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n};\n\nconst contentContainerStyles: React.CSSProperties = {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n minWidth: 0,\n};\n\nconst titleStyles: React.CSSProperties = {\n fontSize: '18px',\n fontWeight: 600,\n lineHeight: '1.25',\n marginBottom: '8px',\n};\n\nconst messageStyles: React.CSSProperties = {\n fontSize: '13px',\n fontWeight: 400,\n lineHeight: '1.5',\n margin: 0,\n};\n\nconst actionContainerStyles: React.CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-end',\n alignItems: 'flex-end',\n alignSelf: 'stretch',\n flexShrink: 0,\n};\n\nconst actionButtonStyles: React.CSSProperties = {\n background: 'none',\n border: 'none',\n padding: 0,\n fontSize: '13px',\n fontWeight: 600,\n lineHeight: '1.5',\n textDecoration: 'underline',\n textUnderlinePosition: 'from-font',\n cursor: 'pointer',\n fontFamily: 'inherit',\n};\n\nconst closeButtonStyles: React.CSSProperties = {\n background: 'none',\n border: 'none',\n padding: '4px',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n marginLeft: '8px',\n};\n\nconst variantConfig = {\n warning: {\n backgroundColor: '#fffaf5',\n borderColor: '#e4720d',\n textColor: '#611f00',\n actionColor: '#a74102',\n icon: AlertTriangle,\n },\n destructive: {\n backgroundColor: '#fff5f5',\n borderColor: '#c93232',\n textColor: '#610202',\n actionColor: '#920a0a',\n icon: AlertCircle,\n },\n information: {\n backgroundColor: '#f5fbff',\n borderColor: '#2c8bca',\n textColor: '#053a61',\n actionColor: '#024f83',\n icon: Info,\n },\n neutral: {\n backgroundColor: 'transparent',\n borderColor: '#b3b3b3',\n textColor: '#2f2f2f',\n actionColor: '#2f2f2f',\n icon: Info,\n },\n};\n\n/**\n * Banner component - Arbor Design System\n *\n * Informational banners with 4 variants (warning, destructive, information, neutral)\n * and optional title, icon, and action button.\n *\n * IMPORTANT: Banners are always displayed inline with page content (not overlays).\n * They flow with the document layout and push other content down.\n *\n * For overlay notifications in the top-right corner, use the Toast component instead.\n */\nexport const Banner = React.forwardRef<HTMLDivElement, BannerProps>(\n (\n {\n variant = 'information',\n title,\n message,\n icon = true,\n actionLabel,\n onAction,\n onClose,\n className,\n style,\n 'data-testid': dataTestId,\n },\n ref\n ) => {\n const config = variantConfig[variant];\n const DefaultIcon = config.icon;\n\n // Determine what icon to show\n const showIcon = icon !== false;\n const iconElement =\n icon === true || icon === undefined ? (\n <DefaultIcon size={20} strokeWidth={2} />\n ) : (\n icon\n );\n\n const containerStylesCombined: React.CSSProperties = {\n ...containerStyles,\n backgroundColor: config.backgroundColor,\n borderColor: config.borderColor,\n color: config.textColor,\n gap: showIcon ? '16px' : '0px',\n ...style,\n };\n\n const titleStylesCombined: React.CSSProperties = {\n ...titleStyles,\n color: config.textColor,\n };\n\n const messageStylesCombined: React.CSSProperties = {\n ...messageStyles,\n color: config.textColor,\n };\n\n const actionButtonStylesCombined: React.CSSProperties = {\n ...actionButtonStyles,\n color: config.actionColor,\n };\n\n const closeButtonStylesCombined: React.CSSProperties = {\n ...closeButtonStyles,\n color: config.textColor,\n };\n\n return (\n <div\n ref={ref}\n className={clsx('arbor-banner', `arbor-banner--${variant}`, className)}\n style={containerStylesCombined}\n data-testid={dataTestId}\n role=\"alert\"\n >\n {showIcon && (\n <div style={{ ...iconContainerStyles, color: config.textColor }}>\n {iconElement}\n </div>\n )}\n\n <div style={contentContainerStyles}>\n {title && <div style={titleStylesCombined}>{title}</div>}\n <p style={messageStylesCombined}>{message}</p>\n </div>\n\n {actionLabel && onAction && (\n <div style={actionContainerStyles}>\n <button\n type=\"button\"\n onClick={onAction}\n style={actionButtonStylesCombined}\n >\n {actionLabel}\n </button>\n </div>\n )}\n\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n style={closeButtonStylesCombined}\n aria-label=\"Close banner\"\n >\n <X size={20} />\n </button>\n )}\n </div>\n );\n }\n);\n\nBanner.displayName = 'Banner';\n"],"mappings":"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","names":[]}
@@ -0,0 +1,7 @@
1
+ import {
2
+ Banner
3
+ } from "./chunk-U4JXKZZG.mjs";
4
+ export {
5
+ Banner
6
+ };
7
+ //# sourceMappingURL=Banner.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}