@tonyarbor/components 0.4.0 → 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.
- package/dist/Button.d.mts +1 -1
- package/dist/Button.d.ts +1 -1
- package/dist/Button.js +56 -0
- package/dist/Button.js.map +1 -1
- package/dist/Button.mjs +1 -1
- package/dist/ButtonSegmented.d.mts +61 -0
- package/dist/ButtonSegmented.d.ts +61 -0
- package/dist/ButtonSegmented.js +167 -0
- package/dist/ButtonSegmented.js.map +1 -0
- package/dist/ButtonSegmented.mjs +7 -0
- package/dist/ButtonSegmented.mjs.map +1 -0
- package/dist/ListRow.d.mts +72 -0
- package/dist/ListRow.d.ts +72 -0
- package/dist/ListRow.js +194 -0
- package/dist/ListRow.js.map +1 -0
- package/dist/ListRow.mjs +7 -0
- package/dist/ListRow.mjs.map +1 -0
- package/dist/ListRowMultiLine.d.mts +56 -0
- package/dist/ListRowMultiLine.d.ts +56 -0
- package/dist/ListRowMultiLine.js +182 -0
- package/dist/ListRowMultiLine.js.map +1 -0
- package/dist/ListRowMultiLine.mjs +7 -0
- package/dist/ListRowMultiLine.mjs.map +1 -0
- package/dist/Logo.d.mts +39 -0
- package/dist/Logo.d.ts +39 -0
- package/dist/Logo.js +119 -0
- package/dist/Logo.js.map +1 -0
- package/dist/Logo.mjs +7 -0
- package/dist/Logo.mjs.map +1 -0
- package/dist/Modal.d.mts +73 -0
- package/dist/Modal.d.ts +73 -0
- package/dist/Modal.js +114 -0
- package/dist/Modal.js.map +1 -0
- package/dist/Modal.mjs +9 -0
- package/dist/Modal.mjs.map +1 -0
- package/dist/ModalFooter.d.mts +40 -0
- package/dist/ModalFooter.d.ts +40 -0
- package/dist/ModalFooter.js +73 -0
- package/dist/ModalFooter.js.map +1 -0
- package/dist/ModalFooter.mjs +7 -0
- package/dist/ModalFooter.mjs.map +1 -0
- package/dist/ModalHeader.d.mts +65 -0
- package/dist/ModalHeader.d.ts +65 -0
- package/dist/ModalHeader.js +257 -0
- package/dist/ModalHeader.js.map +1 -0
- package/dist/ModalHeader.mjs +8 -0
- package/dist/ModalHeader.mjs.map +1 -0
- package/dist/Section.d.mts +57 -0
- package/dist/Section.d.ts +57 -0
- package/dist/Section.js +72 -0
- package/dist/Section.js.map +1 -0
- package/dist/Section.mjs +7 -0
- package/dist/Section.mjs.map +1 -0
- package/dist/SectionHeading.d.mts +111 -0
- package/dist/SectionHeading.d.ts +111 -0
- package/dist/SectionHeading.js +385 -0
- package/dist/SectionHeading.js.map +1 -0
- package/dist/SectionHeading.mjs +8 -0
- package/dist/SectionHeading.mjs.map +1 -0
- package/dist/SectionHeadingInteractive.d.mts +67 -0
- package/dist/SectionHeadingInteractive.d.ts +67 -0
- package/dist/SectionHeadingInteractive.js +225 -0
- package/dist/SectionHeadingInteractive.js.map +1 -0
- package/dist/SectionHeadingInteractive.mjs +7 -0
- package/dist/SectionHeadingInteractive.mjs.map +1 -0
- package/dist/SectionIcon.d.mts +35 -0
- package/dist/SectionIcon.d.ts +35 -0
- package/dist/SectionIcon.js +142 -0
- package/dist/SectionIcon.js.map +1 -0
- package/dist/SectionIcon.mjs +7 -0
- package/dist/SectionIcon.mjs.map +1 -0
- package/dist/SubSectionHeading.d.mts +75 -0
- package/dist/SubSectionHeading.d.ts +75 -0
- package/dist/SubSectionHeading.js +225 -0
- package/dist/SubSectionHeading.js.map +1 -0
- package/dist/SubSectionHeading.mjs +7 -0
- package/dist/SubSectionHeading.mjs.map +1 -0
- package/dist/SubSectionInteractive.d.mts +65 -0
- package/dist/SubSectionInteractive.d.ts +65 -0
- package/dist/SubSectionInteractive.js +211 -0
- package/dist/SubSectionInteractive.js.map +1 -0
- package/dist/SubSectionInteractive.mjs +7 -0
- package/dist/SubSectionInteractive.mjs.map +1 -0
- package/dist/chunk-7JWINM2N.mjs +77 -0
- package/dist/chunk-7JWINM2N.mjs.map +1 -0
- package/dist/chunk-7NYBJKJS.mjs +106 -0
- package/dist/chunk-7NYBJKJS.mjs.map +1 -0
- package/dist/chunk-ALLCJATI.mjs +189 -0
- package/dist/chunk-ALLCJATI.mjs.map +1 -0
- package/dist/chunk-F6JVEIWC.mjs +158 -0
- package/dist/chunk-F6JVEIWC.mjs.map +1 -0
- package/dist/chunk-GHATS25Y.mjs +249 -0
- package/dist/chunk-GHATS25Y.mjs.map +1 -0
- package/dist/chunk-GIQDPHZQ.mjs +121 -0
- package/dist/chunk-GIQDPHZQ.mjs.map +1 -0
- package/dist/chunk-ILLGBZ6R.mjs +131 -0
- package/dist/chunk-ILLGBZ6R.mjs.map +1 -0
- package/dist/chunk-NNYU4DPD.mjs +83 -0
- package/dist/chunk-NNYU4DPD.mjs.map +1 -0
- package/dist/{chunk-ALEJXAZY.mjs → chunk-NOUFR6W2.mjs} +57 -1
- package/dist/chunk-NOUFR6W2.mjs.map +1 -0
- package/dist/chunk-ODKT7LGV.mjs +146 -0
- package/dist/chunk-ODKT7LGV.mjs.map +1 -0
- package/dist/chunk-P7RKUESQ.mjs +37 -0
- package/dist/chunk-P7RKUESQ.mjs.map +1 -0
- package/dist/chunk-RL4G7MR3.mjs +189 -0
- package/dist/chunk-RL4G7MR3.mjs.map +1 -0
- package/dist/chunk-X2CW5GF3.mjs +175 -0
- package/dist/chunk-X2CW5GF3.mjs.map +1 -0
- package/dist/chunk-YJ36ZZJQ.mjs +36 -0
- package/dist/chunk-YJ36ZZJQ.mjs.map +1 -0
- package/dist/index.d.mts +14 -1
- package/dist/index.d.ts +14 -1
- package/dist/index.js +1722 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +55 -1
- package/package.json +66 -1
- package/dist/chunk-ALEJXAZY.mjs.map +0 -1
package/dist/index.js
CHANGED
|
@@ -34,16 +34,30 @@ __export(src_exports, {
|
|
|
34
34
|
Banner: () => Banner,
|
|
35
35
|
Breadcrumbs: () => Breadcrumbs,
|
|
36
36
|
Button: () => Button,
|
|
37
|
+
ButtonSegmented: () => ButtonSegmented,
|
|
37
38
|
Card: () => Card,
|
|
38
39
|
Checkbox: () => Checkbox,
|
|
39
40
|
Combobox: () => Combobox,
|
|
40
41
|
DatePicker: () => DatePicker,
|
|
41
42
|
Input: () => Input,
|
|
43
|
+
ListRow: () => ListRow,
|
|
44
|
+
ListRowMultiLine: () => ListRowMultiLine,
|
|
45
|
+
Logo: () => Logo,
|
|
46
|
+
Modal: () => Modal,
|
|
47
|
+
ModalContent: () => ModalContent,
|
|
48
|
+
ModalFooter: () => ModalFooter,
|
|
49
|
+
ModalHeader: () => ModalHeader,
|
|
42
50
|
NumericInput: () => NumericInput,
|
|
43
51
|
Pagination: () => Pagination,
|
|
44
52
|
Radio: () => Radio,
|
|
45
53
|
SearchGlobal: () => SearchGlobal,
|
|
46
54
|
SearchOnPage: () => SearchOnPage,
|
|
55
|
+
Section: () => Section,
|
|
56
|
+
SectionHeading: () => SectionHeading,
|
|
57
|
+
SectionHeadingInteractive: () => SectionHeadingInteractive,
|
|
58
|
+
SectionIcon: () => SectionIcon,
|
|
59
|
+
SubSectionHeading: () => SubSectionHeading,
|
|
60
|
+
SubSectionInteractive: () => SubSectionInteractive,
|
|
47
61
|
Table: () => Table,
|
|
48
62
|
TableControls: () => TableControls,
|
|
49
63
|
TableFooterPagination: () => TableFooterPagination,
|
|
@@ -124,6 +138,32 @@ var buttonStyles = {
|
|
|
124
138
|
cursor: "not-allowed"
|
|
125
139
|
}
|
|
126
140
|
},
|
|
141
|
+
tertiary: {
|
|
142
|
+
backgroundColor: "#efefef",
|
|
143
|
+
// grey-100
|
|
144
|
+
color: "#2f2f2f",
|
|
145
|
+
// grey-900
|
|
146
|
+
":hover": {
|
|
147
|
+
backgroundColor: "#dfdfdf"
|
|
148
|
+
// grey-200
|
|
149
|
+
},
|
|
150
|
+
":active": {
|
|
151
|
+
backgroundColor: "#d1d1d1"
|
|
152
|
+
// grey-300
|
|
153
|
+
},
|
|
154
|
+
":focus-visible": {
|
|
155
|
+
outline: "3px solid #3cad51",
|
|
156
|
+
// brand-500
|
|
157
|
+
outlineOffset: "0px"
|
|
158
|
+
},
|
|
159
|
+
":disabled": {
|
|
160
|
+
backgroundColor: "#f8f8f8",
|
|
161
|
+
// grey-050
|
|
162
|
+
color: "#b3b3b3",
|
|
163
|
+
// grey-400
|
|
164
|
+
cursor: "not-allowed"
|
|
165
|
+
}
|
|
166
|
+
},
|
|
127
167
|
destructive: {
|
|
128
168
|
backgroundColor: "#c93232",
|
|
129
169
|
// destructive-500
|
|
@@ -146,6 +186,36 @@ var buttonStyles = {
|
|
|
146
186
|
cursor: "not-allowed"
|
|
147
187
|
}
|
|
148
188
|
},
|
|
189
|
+
"destructive-secondary": {
|
|
190
|
+
backgroundColor: "#ffffff",
|
|
191
|
+
color: "#a62323",
|
|
192
|
+
// destructive-600
|
|
193
|
+
border: "1px solid #c93232",
|
|
194
|
+
// destructive-500
|
|
195
|
+
":hover": {
|
|
196
|
+
backgroundColor: "#a62323",
|
|
197
|
+
// destructive-600
|
|
198
|
+
color: "#ffffff",
|
|
199
|
+
border: "1px solid #a62323"
|
|
200
|
+
},
|
|
201
|
+
":active": {
|
|
202
|
+
backgroundColor: "#920a0a",
|
|
203
|
+
// destructive-700
|
|
204
|
+
color: "#ffffff",
|
|
205
|
+
border: "1px solid #920a0a"
|
|
206
|
+
},
|
|
207
|
+
":focus-visible": {
|
|
208
|
+
outline: "3px solid #3cad51",
|
|
209
|
+
// brand-500 (green focus ring)
|
|
210
|
+
outlineOffset: "0px"
|
|
211
|
+
},
|
|
212
|
+
":disabled": {
|
|
213
|
+
backgroundColor: "#ffffff",
|
|
214
|
+
color: "#b3b3b3",
|
|
215
|
+
border: "1px solid #d1d1d1",
|
|
216
|
+
cursor: "not-allowed"
|
|
217
|
+
}
|
|
218
|
+
},
|
|
149
219
|
ghost: {
|
|
150
220
|
backgroundColor: "transparent",
|
|
151
221
|
color: "#0b800b",
|
|
@@ -4700,22 +4770,1674 @@ var Breadcrumbs = React23.forwardRef(
|
|
|
4700
4770
|
}
|
|
4701
4771
|
);
|
|
4702
4772
|
Breadcrumbs.displayName = "Breadcrumbs";
|
|
4773
|
+
|
|
4774
|
+
// src/Logo/Logo.tsx
|
|
4775
|
+
var React24 = __toESM(require("react"));
|
|
4776
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
4777
|
+
var Logo = React24.forwardRef(
|
|
4778
|
+
({
|
|
4779
|
+
withText = true,
|
|
4780
|
+
light = false,
|
|
4781
|
+
width,
|
|
4782
|
+
height,
|
|
4783
|
+
className,
|
|
4784
|
+
style
|
|
4785
|
+
}, ref) => {
|
|
4786
|
+
const defaultWidth = withText ? 66 : 25;
|
|
4787
|
+
const defaultHeight = withText ? 26 : 25;
|
|
4788
|
+
const finalWidth = width ?? defaultWidth;
|
|
4789
|
+
const finalHeight = height ?? defaultHeight;
|
|
4790
|
+
if (!withText) {
|
|
4791
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
4792
|
+
"svg",
|
|
4793
|
+
{
|
|
4794
|
+
ref,
|
|
4795
|
+
width: finalWidth,
|
|
4796
|
+
height: finalHeight,
|
|
4797
|
+
viewBox: "0 0 25 25",
|
|
4798
|
+
fill: "none",
|
|
4799
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4800
|
+
className,
|
|
4801
|
+
style,
|
|
4802
|
+
"aria-label": "Arbor logo",
|
|
4803
|
+
children: [
|
|
4804
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("g", { clipPath: "url(#clip0_logo_icon)", children: [
|
|
4805
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M12.6821 12.448C12.6821 9.06699 15.4229 6.32623 18.8039 6.32623C18.8039 2.94571 16.0631 0.205391 12.6817 0.205391C9.30163 0.205391 6.56086 2.94571 6.56042 6.32623C9.94138 6.32623 12.6817 9.06699 12.6821 12.448Z", fill: "#F7931E" }),
|
|
4806
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M12.6826 12.4481C12.6826 15.8286 9.9423 18.5694 6.56178 18.5694C6.56178 21.9503 9.3021 24.6902 12.6826 24.6902C16.064 24.6902 18.8043 21.9499 18.8043 18.5694C15.4229 18.5676 12.6822 15.8281 12.6822 12.4472L12.6826 12.4481Z", fill: "#AFD318" }),
|
|
4807
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M18.8043 6.32631C18.8043 9.70727 16.064 12.448 12.6826 12.448C16.0636 12.448 18.8043 15.1888 18.8043 18.5693C22.1853 18.5693 24.9252 15.8286 24.9252 12.448C24.9252 9.06619 22.1844 6.32543 18.8048 6.32543L18.8043 6.32631Z", fill: "#DEEE21" }),
|
|
4808
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M12.6826 12.448C16.064 12.448 18.8043 9.70725 18.8043 6.32673C15.4225 6.32673 12.6822 9.06705 12.6826 12.448Z", fill: "#D58822" }),
|
|
4809
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M12.6822 12.4481C12.6822 15.8286 15.423 18.5693 18.8039 18.5693C18.8039 15.1875 16.0632 12.4472 12.6818 12.4472L12.6822 12.4481Z", fill: "#96BA0F" }),
|
|
4810
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M12.6826 12.448C9.30204 12.448 6.56128 9.70725 6.56128 6.32673C3.18076 6.32673 0.440002 9.06705 0.440002 12.448C0.440002 15.8285 3.18076 18.5684 6.56128 18.5693C6.56128 15.1874 9.30204 12.4471 12.6826 12.4471V12.448Z", fill: "#7DBA3C" }),
|
|
4811
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M12.6826 12.448C12.6826 9.06705 9.9423 6.32629 6.56178 6.32629L6.56134 6.32673C6.56134 9.70769 9.3021 12.448 12.6826 12.448Z", fill: "#A0861A" }),
|
|
4812
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M12.6826 12.4481C9.3021 12.4481 6.56178 15.1888 6.56134 18.5693C9.94186 18.5676 12.6826 15.8281 12.6826 12.4472V12.4481Z", fill: "#68AA22" })
|
|
4813
|
+
] }),
|
|
4814
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("clipPath", { id: "clip0_logo_icon", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("rect", { width: "25", height: "25", fill: "white" }) }) })
|
|
4815
|
+
]
|
|
4816
|
+
}
|
|
4817
|
+
);
|
|
4818
|
+
}
|
|
4819
|
+
const textColor = light ? "#2F2F2F" : "white";
|
|
4820
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
4821
|
+
"svg",
|
|
4822
|
+
{
|
|
4823
|
+
ref,
|
|
4824
|
+
width: finalWidth,
|
|
4825
|
+
height: finalHeight,
|
|
4826
|
+
viewBox: "0 0 66 26",
|
|
4827
|
+
fill: "none",
|
|
4828
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4829
|
+
className,
|
|
4830
|
+
style,
|
|
4831
|
+
"aria-label": "Arbor",
|
|
4832
|
+
children: [
|
|
4833
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M12.6822 12.4479C12.6822 9.06698 15.423 6.32622 18.8039 6.32622C18.8039 2.9457 16.0632 0.205383 12.6818 0.205383C9.30169 0.205383 6.56093 2.9457 6.56049 6.32622C9.94145 6.32622 12.6818 9.06698 12.6822 12.4479Z", fill: "#F7931E" }),
|
|
4834
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M12.6826 12.4481C12.6826 15.8286 9.9423 18.5694 6.56178 18.5694C6.56178 21.9503 9.3021 24.6902 12.6826 24.6902C16.064 24.6902 18.8043 21.9499 18.8043 18.5694C15.4229 18.5676 12.6822 15.8281 12.6822 12.4472L12.6826 12.4481Z", fill: "#AFD318" }),
|
|
4835
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M18.8044 6.3263C18.8044 9.70726 16.0641 12.448 12.6827 12.448C16.0636 12.448 18.8044 15.1888 18.8044 18.5693C22.1854 18.5693 24.9252 15.8285 24.9252 12.448C24.9252 9.06618 22.1845 6.32542 18.8048 6.32542L18.8044 6.3263Z", fill: "#DEEE21" }),
|
|
4836
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M12.6827 12.448C16.0641 12.448 18.8044 9.70725 18.8044 6.32673C15.4226 6.32673 12.6822 9.06705 12.6827 12.448Z", fill: "#D58822" }),
|
|
4837
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M12.6823 12.4481C12.6823 15.8286 15.423 18.5693 18.804 18.5693C18.804 15.1875 16.0632 12.4472 12.6818 12.4472L12.6823 12.4481Z", fill: "#96BA0F" }),
|
|
4838
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M12.6826 12.448C9.30204 12.448 6.56128 9.70725 6.56128 6.32673C3.18076 6.32673 0.440002 9.06705 0.440002 12.448C0.440002 15.8285 3.18076 18.5684 6.56128 18.5693C6.56128 15.1875 9.30204 12.4471 12.6826 12.4471V12.448Z", fill: "#7DBA3C" }),
|
|
4839
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M12.6826 12.448C12.6826 9.06705 9.9423 6.32629 6.56178 6.32629L6.56134 6.32673C6.56134 9.70769 9.3021 12.448 12.6826 12.448Z", fill: "#A0861A" }),
|
|
4840
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M12.6826 12.4481C9.3021 12.4481 6.56178 15.1888 6.56134 18.5693C9.94186 18.5676 12.6826 15.8281 12.6826 12.4472V12.4481Z", fill: "#68AA22" }),
|
|
4841
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M37.7924 17.8181L36.4913 14.3809H31.9131L30.6604 17.7055H29.1345L33.4716 6.57394H34.9821L39.255 17.4965L37.7924 17.8181ZM34.1936 8.37222L32.4266 13.0459H35.9761L34.195 8.37222H34.1936Z", fill: textColor }),
|
|
4842
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M41.4713 13.1755V17.7053H40.0417V10.0427H41.1822L41.4229 11.6012C41.9689 10.7335 42.8529 9.94635 44.1056 9.88211L44.3308 11.2479C43.0614 11.3121 41.9843 12.1635 41.4708 13.1751L41.4713 13.1755Z", fill: textColor }),
|
|
4843
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M48.2659 17.8016C47.1092 17.8016 46.2903 17.6252 45.2779 17.3194V6.33171L46.707 6.10687V10.942C47.2218 10.4118 47.9601 9.88163 49.0047 9.88163C50.6591 9.88163 52.024 11.1026 52.024 13.6564C52.024 16.4513 50.4822 17.8008 48.2659 17.8008V17.8016ZM48.7957 11.1515C47.9931 11.1515 47.2861 11.6817 46.7079 12.4046V16.3241C47.1897 16.5006 47.5439 16.5811 48.2505 16.5811C49.7443 16.5811 50.5795 15.6971 50.5795 13.722C50.5795 12.0522 49.8231 11.1528 48.7957 11.1528V11.1515Z", fill: textColor }),
|
|
4844
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M56.5064 17.8664C54.467 17.8664 52.9882 16.4042 52.9882 13.8826C52.9882 11.3605 54.467 9.88211 56.5064 9.88211C58.563 9.88211 60.0722 11.3601 60.0722 13.8826C60.0722 16.4038 58.563 17.8664 56.5064 17.8664ZM56.5064 11.0873C55.1248 11.0873 54.4345 12.2762 54.4345 13.8822C54.4345 15.4565 55.1574 16.6775 56.5064 16.6775C57.9202 16.6775 58.6263 15.4886 58.6263 13.8822C58.625 12.3087 57.8845 11.0877 56.5042 11.0877L56.5064 11.0873Z", fill: textColor }),
|
|
4845
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("path", { d: "M62.4495 13.1755V17.7053H61.0199V10.0427H62.1613L62.4019 11.6012C62.948 10.7335 63.8315 9.94635 65.0846 9.88211L65.3099 11.2479C64.0423 11.3121 62.9651 12.1635 62.4517 13.1751L62.4495 13.1755Z", fill: textColor })
|
|
4846
|
+
]
|
|
4847
|
+
}
|
|
4848
|
+
);
|
|
4849
|
+
}
|
|
4850
|
+
);
|
|
4851
|
+
Logo.displayName = "Logo";
|
|
4852
|
+
|
|
4853
|
+
// src/ButtonSegmented/ButtonSegmented.tsx
|
|
4854
|
+
var React25 = __toESM(require("react"));
|
|
4855
|
+
var import_clsx20 = require("clsx");
|
|
4856
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
4857
|
+
var segmentedStyles = {
|
|
4858
|
+
container: {
|
|
4859
|
+
display: "inline-flex",
|
|
4860
|
+
alignItems: "center",
|
|
4861
|
+
gap: "8px",
|
|
4862
|
+
padding: "8px",
|
|
4863
|
+
backgroundColor: "#ffffff",
|
|
4864
|
+
border: "1px solid #efefef",
|
|
4865
|
+
borderRadius: "99px",
|
|
4866
|
+
fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
|
4867
|
+
},
|
|
4868
|
+
button: {
|
|
4869
|
+
base: {
|
|
4870
|
+
display: "inline-flex",
|
|
4871
|
+
alignItems: "center",
|
|
4872
|
+
justifyContent: "center",
|
|
4873
|
+
gap: "8px",
|
|
4874
|
+
padding: "8px 16px",
|
|
4875
|
+
borderRadius: "99px",
|
|
4876
|
+
border: "none",
|
|
4877
|
+
cursor: "pointer",
|
|
4878
|
+
fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
4879
|
+
fontSize: "13px",
|
|
4880
|
+
fontWeight: "600",
|
|
4881
|
+
lineHeight: "1.5",
|
|
4882
|
+
transition: "all 0.15s ease-in-out",
|
|
4883
|
+
outline: "none",
|
|
4884
|
+
whiteSpace: "nowrap"
|
|
4885
|
+
},
|
|
4886
|
+
default: {
|
|
4887
|
+
backgroundColor: "transparent",
|
|
4888
|
+
color: "#595959"
|
|
4889
|
+
},
|
|
4890
|
+
hover: {
|
|
4891
|
+
backgroundColor: "#f8f8f8",
|
|
4892
|
+
color: "#2f2f2f"
|
|
4893
|
+
},
|
|
4894
|
+
active: {
|
|
4895
|
+
backgroundColor: "#0e8a0e",
|
|
4896
|
+
color: "#ffffff"
|
|
4897
|
+
},
|
|
4898
|
+
activeHover: {
|
|
4899
|
+
backgroundColor: "#005700",
|
|
4900
|
+
color: "#ffffff"
|
|
4901
|
+
}
|
|
4902
|
+
}
|
|
4903
|
+
};
|
|
4904
|
+
var ButtonSegmented = React25.forwardRef(
|
|
4905
|
+
({ items, activeIndex = 0, onChange, className, style, ...props }, ref) => {
|
|
4906
|
+
const [hoveredIndex, setHoveredIndex] = React25.useState(null);
|
|
4907
|
+
const validItems = items.slice(0, 4);
|
|
4908
|
+
if (validItems.length < 2) {
|
|
4909
|
+
console.warn("ButtonSegmented requires at least 2 items");
|
|
4910
|
+
}
|
|
4911
|
+
const hasIcons = validItems.some((item) => item.icon);
|
|
4912
|
+
const handleClick = (index) => {
|
|
4913
|
+
if (index !== activeIndex && onChange) {
|
|
4914
|
+
onChange(index, validItems[index]);
|
|
4915
|
+
}
|
|
4916
|
+
};
|
|
4917
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
4918
|
+
"div",
|
|
4919
|
+
{
|
|
4920
|
+
ref,
|
|
4921
|
+
className: (0, import_clsx20.clsx)("arbor-button-segmented", className),
|
|
4922
|
+
style: { ...segmentedStyles.container, ...style },
|
|
4923
|
+
role: "group",
|
|
4924
|
+
"aria-label": "Segmented button group",
|
|
4925
|
+
...props,
|
|
4926
|
+
children: validItems.map((item, index) => {
|
|
4927
|
+
const isActive = index === activeIndex;
|
|
4928
|
+
const isHovered = hoveredIndex === index;
|
|
4929
|
+
let buttonStyle = {
|
|
4930
|
+
...segmentedStyles.button.base
|
|
4931
|
+
};
|
|
4932
|
+
if (isActive) {
|
|
4933
|
+
buttonStyle = {
|
|
4934
|
+
...buttonStyle,
|
|
4935
|
+
...segmentedStyles.button.active,
|
|
4936
|
+
...isHovered && segmentedStyles.button.activeHover
|
|
4937
|
+
};
|
|
4938
|
+
} else {
|
|
4939
|
+
buttonStyle = {
|
|
4940
|
+
...buttonStyle,
|
|
4941
|
+
...segmentedStyles.button.default,
|
|
4942
|
+
...isHovered && segmentedStyles.button.hover
|
|
4943
|
+
};
|
|
4944
|
+
}
|
|
4945
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
4946
|
+
"button",
|
|
4947
|
+
{
|
|
4948
|
+
type: "button",
|
|
4949
|
+
style: buttonStyle,
|
|
4950
|
+
onClick: () => handleClick(index),
|
|
4951
|
+
onMouseEnter: () => setHoveredIndex(index),
|
|
4952
|
+
onMouseLeave: () => setHoveredIndex(null),
|
|
4953
|
+
"aria-pressed": isActive,
|
|
4954
|
+
children: [
|
|
4955
|
+
hasIcons && item.icon && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
4956
|
+
"span",
|
|
4957
|
+
{
|
|
4958
|
+
style: {
|
|
4959
|
+
display: "flex",
|
|
4960
|
+
alignItems: "center",
|
|
4961
|
+
justifyContent: "center",
|
|
4962
|
+
width: "16px",
|
|
4963
|
+
height: "16px"
|
|
4964
|
+
},
|
|
4965
|
+
children: item.icon
|
|
4966
|
+
}
|
|
4967
|
+
),
|
|
4968
|
+
item.label
|
|
4969
|
+
]
|
|
4970
|
+
},
|
|
4971
|
+
item.value || index
|
|
4972
|
+
);
|
|
4973
|
+
})
|
|
4974
|
+
}
|
|
4975
|
+
);
|
|
4976
|
+
}
|
|
4977
|
+
);
|
|
4978
|
+
ButtonSegmented.displayName = "ButtonSegmented";
|
|
4979
|
+
|
|
4980
|
+
// src/SectionHeading/SectionHeading.tsx
|
|
4981
|
+
var React27 = __toESM(require("react"));
|
|
4982
|
+
var import_clsx22 = require("clsx");
|
|
4983
|
+
|
|
4984
|
+
// src/SectionIcon/SectionIcon.tsx
|
|
4985
|
+
var React26 = __toESM(require("react"));
|
|
4986
|
+
var import_clsx21 = require("clsx");
|
|
4987
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
4988
|
+
var WarningIcon = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("svg", { width: "14", height: "12", viewBox: "0 0 14 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
4989
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
4990
|
+
"path",
|
|
4991
|
+
{
|
|
4992
|
+
d: "M7 0.5L13.5 11.5H0.5L7 0.5Z",
|
|
4993
|
+
stroke: color,
|
|
4994
|
+
strokeWidth: "1.2",
|
|
4995
|
+
strokeLinejoin: "round",
|
|
4996
|
+
fill: "none"
|
|
4997
|
+
}
|
|
4998
|
+
),
|
|
4999
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
5000
|
+
"path",
|
|
5001
|
+
{
|
|
5002
|
+
d: "M7 4.5V7",
|
|
5003
|
+
stroke: color,
|
|
5004
|
+
strokeWidth: "1.2",
|
|
5005
|
+
strokeLinecap: "round"
|
|
5006
|
+
}
|
|
5007
|
+
),
|
|
5008
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("circle", { cx: "7", cy: "9", r: "0.75", fill: color })
|
|
5009
|
+
] });
|
|
5010
|
+
var InfoIcon = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
5011
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("circle", { cx: "7", cy: "7", r: "6", stroke: color, strokeWidth: "1.2", fill: "none" }),
|
|
5012
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("path", { d: "M7 6V10", stroke: color, strokeWidth: "1.2", strokeLinecap: "round" }),
|
|
5013
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("circle", { cx: "7", cy: "4", r: "0.75", fill: color })
|
|
5014
|
+
] });
|
|
5015
|
+
var SuccessIcon = ({ color }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
5016
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("circle", { cx: "7", cy: "7", r: "6", stroke: color, strokeWidth: "1.2", fill: "none" }),
|
|
5017
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("path", { d: "M4 7L6 9L10 5", stroke: color, strokeWidth: "1.2", strokeLinecap: "round", strokeLinejoin: "round" })
|
|
5018
|
+
] });
|
|
5019
|
+
var variantConfig3 = {
|
|
5020
|
+
warning: {
|
|
5021
|
+
backgroundColor: "#fffaf5",
|
|
5022
|
+
iconColor: "#e4720d"
|
|
5023
|
+
},
|
|
5024
|
+
danger: {
|
|
5025
|
+
backgroundColor: "#fff5f5",
|
|
5026
|
+
iconColor: "#c93232"
|
|
5027
|
+
},
|
|
5028
|
+
info: {
|
|
5029
|
+
backgroundColor: "#f5fbff",
|
|
5030
|
+
iconColor: "#2c8bca"
|
|
5031
|
+
},
|
|
5032
|
+
success: {
|
|
5033
|
+
backgroundColor: "#f5fff8",
|
|
5034
|
+
iconColor: "#16a33d"
|
|
5035
|
+
}
|
|
5036
|
+
};
|
|
5037
|
+
var sectionIconStyles = {
|
|
5038
|
+
container: {
|
|
5039
|
+
display: "inline-flex",
|
|
5040
|
+
alignItems: "center",
|
|
5041
|
+
justifyContent: "center",
|
|
5042
|
+
padding: "4px",
|
|
5043
|
+
borderRadius: "99px"
|
|
5044
|
+
},
|
|
5045
|
+
iconWrapper: {
|
|
5046
|
+
display: "flex",
|
|
5047
|
+
alignItems: "center",
|
|
5048
|
+
justifyContent: "center",
|
|
5049
|
+
width: "16px",
|
|
5050
|
+
height: "16px"
|
|
5051
|
+
}
|
|
5052
|
+
};
|
|
5053
|
+
var SectionIcon = React26.forwardRef(
|
|
5054
|
+
({ variant = "info", className, style, ...props }, ref) => {
|
|
5055
|
+
const config = variantConfig3[variant];
|
|
5056
|
+
const renderIcon = () => {
|
|
5057
|
+
switch (variant) {
|
|
5058
|
+
case "warning":
|
|
5059
|
+
case "danger":
|
|
5060
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(WarningIcon, { color: config.iconColor });
|
|
5061
|
+
case "success":
|
|
5062
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SuccessIcon, { color: config.iconColor });
|
|
5063
|
+
case "info":
|
|
5064
|
+
default:
|
|
5065
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(InfoIcon, { color: config.iconColor });
|
|
5066
|
+
}
|
|
5067
|
+
};
|
|
5068
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
5069
|
+
"div",
|
|
5070
|
+
{
|
|
5071
|
+
ref,
|
|
5072
|
+
className: (0, import_clsx21.clsx)("arbor-section-icon", className),
|
|
5073
|
+
style: {
|
|
5074
|
+
...sectionIconStyles.container,
|
|
5075
|
+
backgroundColor: config.backgroundColor,
|
|
5076
|
+
...style
|
|
5077
|
+
},
|
|
5078
|
+
...props,
|
|
5079
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { style: sectionIconStyles.iconWrapper, children: renderIcon() })
|
|
5080
|
+
}
|
|
5081
|
+
);
|
|
5082
|
+
}
|
|
5083
|
+
);
|
|
5084
|
+
SectionIcon.displayName = "SectionIcon";
|
|
5085
|
+
|
|
5086
|
+
// src/SectionHeading/SectionHeading.tsx
|
|
5087
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
5088
|
+
var AvatarPlaceholder = () => /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("svg", { width: "22", height: "33", viewBox: "0 0 22 33", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
5089
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("circle", { cx: "11", cy: "7", r: "7", fill: "#d1d1d1" }),
|
|
5090
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("ellipse", { cx: "11", cy: "33", rx: "11", ry: "11", fill: "#d1d1d1" })
|
|
5091
|
+
] });
|
|
5092
|
+
var sectionHeadingStyles = {
|
|
5093
|
+
container: {
|
|
5094
|
+
display: "flex",
|
|
5095
|
+
alignItems: "center",
|
|
5096
|
+
gap: "12px",
|
|
5097
|
+
padding: "8px",
|
|
5098
|
+
borderBottom: "1px solid #f8f8f8",
|
|
5099
|
+
fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
5100
|
+
minHeight: "56px",
|
|
5101
|
+
boxSizing: "border-box"
|
|
5102
|
+
},
|
|
5103
|
+
title: {
|
|
5104
|
+
fontSize: "22px",
|
|
5105
|
+
fontWeight: "600",
|
|
5106
|
+
color: "#2f2f2f",
|
|
5107
|
+
lineHeight: "1.25",
|
|
5108
|
+
flex: 1,
|
|
5109
|
+
overflow: "hidden",
|
|
5110
|
+
textOverflow: "ellipsis",
|
|
5111
|
+
whiteSpace: "nowrap",
|
|
5112
|
+
margin: 0
|
|
5113
|
+
},
|
|
5114
|
+
titleWithIcon: {
|
|
5115
|
+
display: "flex",
|
|
5116
|
+
alignItems: "center",
|
|
5117
|
+
gap: "8px",
|
|
5118
|
+
flex: 1
|
|
5119
|
+
},
|
|
5120
|
+
iconBadge: {
|
|
5121
|
+
display: "flex",
|
|
5122
|
+
alignItems: "center",
|
|
5123
|
+
flexShrink: 0
|
|
5124
|
+
},
|
|
5125
|
+
avatar: {
|
|
5126
|
+
width: "48px",
|
|
5127
|
+
height: "48px",
|
|
5128
|
+
borderRadius: "8px",
|
|
5129
|
+
border: "1px solid #efefef",
|
|
5130
|
+
backgroundColor: "#f8f8f8",
|
|
5131
|
+
flexShrink: 0,
|
|
5132
|
+
overflow: "hidden",
|
|
5133
|
+
display: "flex",
|
|
5134
|
+
alignItems: "center",
|
|
5135
|
+
justifyContent: "center"
|
|
5136
|
+
},
|
|
5137
|
+
avatarImage: {
|
|
5138
|
+
width: "100%",
|
|
5139
|
+
height: "100%",
|
|
5140
|
+
objectFit: "cover"
|
|
5141
|
+
},
|
|
5142
|
+
avatarInitials: {
|
|
5143
|
+
fontSize: "18px",
|
|
5144
|
+
fontWeight: "600",
|
|
5145
|
+
color: "#595959"
|
|
5146
|
+
},
|
|
5147
|
+
button: {
|
|
5148
|
+
display: "inline-flex",
|
|
5149
|
+
alignItems: "center",
|
|
5150
|
+
justifyContent: "center",
|
|
5151
|
+
gap: "8px",
|
|
5152
|
+
height: "32px",
|
|
5153
|
+
padding: "0 16px",
|
|
5154
|
+
backgroundColor: "#0e8a0e",
|
|
5155
|
+
color: "#ffffff",
|
|
5156
|
+
border: "none",
|
|
5157
|
+
borderRadius: "99px",
|
|
5158
|
+
fontSize: "13px",
|
|
5159
|
+
fontWeight: "600",
|
|
5160
|
+
cursor: "pointer",
|
|
5161
|
+
transition: "background-color 0.15s ease-in-out",
|
|
5162
|
+
whiteSpace: "nowrap",
|
|
5163
|
+
flexShrink: 0
|
|
5164
|
+
},
|
|
5165
|
+
buttonHover: {
|
|
5166
|
+
backgroundColor: "#005700"
|
|
5167
|
+
},
|
|
5168
|
+
buttonGroup: {
|
|
5169
|
+
container: {
|
|
5170
|
+
display: "inline-flex",
|
|
5171
|
+
alignItems: "center",
|
|
5172
|
+
gap: "8px",
|
|
5173
|
+
padding: "8px",
|
|
5174
|
+
backgroundColor: "#ffffff",
|
|
5175
|
+
border: "1px solid #efefef",
|
|
5176
|
+
borderRadius: "99px",
|
|
5177
|
+
flexShrink: 0
|
|
5178
|
+
},
|
|
5179
|
+
button: {
|
|
5180
|
+
base: {
|
|
5181
|
+
display: "inline-flex",
|
|
5182
|
+
alignItems: "center",
|
|
5183
|
+
justifyContent: "center",
|
|
5184
|
+
gap: "8px",
|
|
5185
|
+
padding: "8px 16px",
|
|
5186
|
+
borderRadius: "99px",
|
|
5187
|
+
border: "none",
|
|
5188
|
+
cursor: "pointer",
|
|
5189
|
+
fontSize: "13px",
|
|
5190
|
+
fontWeight: "600",
|
|
5191
|
+
lineHeight: "1.5",
|
|
5192
|
+
transition: "all 0.15s ease-in-out",
|
|
5193
|
+
outline: "none",
|
|
5194
|
+
whiteSpace: "nowrap"
|
|
5195
|
+
},
|
|
5196
|
+
default: {
|
|
5197
|
+
backgroundColor: "transparent",
|
|
5198
|
+
color: "#595959"
|
|
5199
|
+
},
|
|
5200
|
+
hover: {
|
|
5201
|
+
backgroundColor: "#f8f8f8",
|
|
5202
|
+
color: "#2f2f2f"
|
|
5203
|
+
},
|
|
5204
|
+
active: {
|
|
5205
|
+
backgroundColor: "#0e8a0e",
|
|
5206
|
+
color: "#ffffff"
|
|
5207
|
+
},
|
|
5208
|
+
activeHover: {
|
|
5209
|
+
backgroundColor: "#005700",
|
|
5210
|
+
color: "#ffffff"
|
|
5211
|
+
}
|
|
5212
|
+
}
|
|
5213
|
+
}
|
|
5214
|
+
};
|
|
5215
|
+
var SectionHeading = React27.forwardRef(
|
|
5216
|
+
({ title, icon, avatar, button, buttonGroup, className, style, ...props }, ref) => {
|
|
5217
|
+
const [buttonHovered, setButtonHovered] = React27.useState(false);
|
|
5218
|
+
const [hoveredGroupIndex, setHoveredGroupIndex] = React27.useState(null);
|
|
5219
|
+
if (button && buttonGroup) {
|
|
5220
|
+
console.warn("SectionHeading: button and buttonGroup are mutually exclusive. Only button will be rendered.");
|
|
5221
|
+
}
|
|
5222
|
+
const renderAvatar = () => {
|
|
5223
|
+
if (!avatar) return null;
|
|
5224
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { style: sectionHeadingStyles.avatar, children: avatar.src ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
5225
|
+
"img",
|
|
5226
|
+
{
|
|
5227
|
+
src: avatar.src,
|
|
5228
|
+
alt: avatar.alt || "Avatar",
|
|
5229
|
+
style: sectionHeadingStyles.avatarImage
|
|
5230
|
+
}
|
|
5231
|
+
) : avatar.initials ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { style: sectionHeadingStyles.avatarInitials, children: avatar.initials }) : /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(AvatarPlaceholder, {}) });
|
|
5232
|
+
};
|
|
5233
|
+
const renderTitle = () => {
|
|
5234
|
+
if (icon) {
|
|
5235
|
+
const iconVariant = typeof icon === "string" ? icon : "info";
|
|
5236
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { style: sectionHeadingStyles.titleWithIcon, children: [
|
|
5237
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("h2", { style: { ...sectionHeadingStyles.title, flex: "none" }, children: title }),
|
|
5238
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { style: sectionHeadingStyles.iconBadge, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SectionIcon, { variant: iconVariant }) })
|
|
5239
|
+
] });
|
|
5240
|
+
}
|
|
5241
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("h2", { style: sectionHeadingStyles.title, children: title });
|
|
5242
|
+
};
|
|
5243
|
+
const renderButton = () => {
|
|
5244
|
+
if (!button) return null;
|
|
5245
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
5246
|
+
"button",
|
|
5247
|
+
{
|
|
5248
|
+
type: "button",
|
|
5249
|
+
style: {
|
|
5250
|
+
...sectionHeadingStyles.button,
|
|
5251
|
+
...buttonHovered && sectionHeadingStyles.buttonHover
|
|
5252
|
+
},
|
|
5253
|
+
onClick: button.onClick,
|
|
5254
|
+
onMouseEnter: () => setButtonHovered(true),
|
|
5255
|
+
onMouseLeave: () => setButtonHovered(false),
|
|
5256
|
+
children: [
|
|
5257
|
+
button.icon && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { style: { display: "flex", alignItems: "center", width: "16px", height: "16px" }, children: button.icon }),
|
|
5258
|
+
button.label
|
|
5259
|
+
]
|
|
5260
|
+
}
|
|
5261
|
+
);
|
|
5262
|
+
};
|
|
5263
|
+
const renderButtonGroup = () => {
|
|
5264
|
+
if (!buttonGroup || button) return null;
|
|
5265
|
+
const { items, activeIndex = 0, onChange } = buttonGroup;
|
|
5266
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { style: sectionHeadingStyles.buttonGroup.container, children: items.slice(0, 4).map((item, index) => {
|
|
5267
|
+
const isActive = index === activeIndex;
|
|
5268
|
+
const isHovered = hoveredGroupIndex === index;
|
|
5269
|
+
let btnStyle = {
|
|
5270
|
+
...sectionHeadingStyles.buttonGroup.button.base
|
|
5271
|
+
};
|
|
5272
|
+
if (isActive) {
|
|
5273
|
+
btnStyle = {
|
|
5274
|
+
...btnStyle,
|
|
5275
|
+
...sectionHeadingStyles.buttonGroup.button.active,
|
|
5276
|
+
...isHovered && sectionHeadingStyles.buttonGroup.button.activeHover
|
|
5277
|
+
};
|
|
5278
|
+
} else {
|
|
5279
|
+
btnStyle = {
|
|
5280
|
+
...btnStyle,
|
|
5281
|
+
...sectionHeadingStyles.buttonGroup.button.default,
|
|
5282
|
+
...isHovered && sectionHeadingStyles.buttonGroup.button.hover
|
|
5283
|
+
};
|
|
5284
|
+
}
|
|
5285
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
5286
|
+
"button",
|
|
5287
|
+
{
|
|
5288
|
+
type: "button",
|
|
5289
|
+
style: btnStyle,
|
|
5290
|
+
onClick: () => {
|
|
5291
|
+
if (index !== activeIndex && onChange) {
|
|
5292
|
+
onChange(index);
|
|
5293
|
+
}
|
|
5294
|
+
},
|
|
5295
|
+
onMouseEnter: () => setHoveredGroupIndex(index),
|
|
5296
|
+
onMouseLeave: () => setHoveredGroupIndex(null),
|
|
5297
|
+
children: [
|
|
5298
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { style: { display: "flex", alignItems: "center", width: "16px", height: "16px" }, children: item.icon }),
|
|
5299
|
+
item.label
|
|
5300
|
+
]
|
|
5301
|
+
},
|
|
5302
|
+
item.value || index
|
|
5303
|
+
);
|
|
5304
|
+
}) });
|
|
5305
|
+
};
|
|
5306
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
5307
|
+
"div",
|
|
5308
|
+
{
|
|
5309
|
+
ref,
|
|
5310
|
+
className: (0, import_clsx22.clsx)("arbor-section-heading", className),
|
|
5311
|
+
style: { ...sectionHeadingStyles.container, ...style },
|
|
5312
|
+
...props,
|
|
5313
|
+
children: [
|
|
5314
|
+
renderAvatar(),
|
|
5315
|
+
renderTitle(),
|
|
5316
|
+
renderButton(),
|
|
5317
|
+
renderButtonGroup()
|
|
5318
|
+
]
|
|
5319
|
+
}
|
|
5320
|
+
);
|
|
5321
|
+
}
|
|
5322
|
+
);
|
|
5323
|
+
SectionHeading.displayName = "SectionHeading";
|
|
5324
|
+
|
|
5325
|
+
// src/ListRow/ListRow.tsx
|
|
5326
|
+
var React28 = __toESM(require("react"));
|
|
5327
|
+
var import_clsx23 = require("clsx");
|
|
5328
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
5329
|
+
var CaretIcon = ({ isHovered }) => {
|
|
5330
|
+
if (isHovered) {
|
|
5331
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
5332
|
+
"path",
|
|
5333
|
+
{
|
|
5334
|
+
d: "M6 4L10 8L6 12",
|
|
5335
|
+
stroke: "#2f2f2f",
|
|
5336
|
+
strokeWidth: "1.2",
|
|
5337
|
+
strokeLinecap: "round",
|
|
5338
|
+
strokeLinejoin: "round"
|
|
5339
|
+
}
|
|
5340
|
+
) });
|
|
5341
|
+
}
|
|
5342
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
5343
|
+
"path",
|
|
5344
|
+
{
|
|
5345
|
+
d: "M6 4L10 8L6 12",
|
|
5346
|
+
stroke: "#b3b3b3",
|
|
5347
|
+
strokeWidth: "1.2",
|
|
5348
|
+
strokeLinecap: "round",
|
|
5349
|
+
strokeLinejoin: "round"
|
|
5350
|
+
}
|
|
5351
|
+
) });
|
|
5352
|
+
};
|
|
5353
|
+
var listRowStyles = {
|
|
5354
|
+
container: {
|
|
5355
|
+
display: "flex",
|
|
5356
|
+
alignItems: "center",
|
|
5357
|
+
width: "100%",
|
|
5358
|
+
borderBottom: "1px solid #f8f8f8",
|
|
5359
|
+
fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
5360
|
+
boxSizing: "border-box",
|
|
5361
|
+
borderRadius: "8px",
|
|
5362
|
+
transition: "background-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out",
|
|
5363
|
+
outline: "none"
|
|
5364
|
+
},
|
|
5365
|
+
containerHover: {
|
|
5366
|
+
backgroundColor: "#f8f8f8"
|
|
5367
|
+
},
|
|
5368
|
+
containerFocus: {
|
|
5369
|
+
outline: "3px solid #3cad51",
|
|
5370
|
+
outlineOffset: "-3px"
|
|
5371
|
+
},
|
|
5372
|
+
containerClickable: {
|
|
5373
|
+
cursor: "pointer"
|
|
5374
|
+
},
|
|
5375
|
+
content: {
|
|
5376
|
+
display: "flex",
|
|
5377
|
+
alignItems: "center",
|
|
5378
|
+
justifyContent: "space-between",
|
|
5379
|
+
width: "100%",
|
|
5380
|
+
padding: "4px 8px",
|
|
5381
|
+
minHeight: "28px"
|
|
5382
|
+
},
|
|
5383
|
+
label: {
|
|
5384
|
+
fontSize: "13px",
|
|
5385
|
+
fontWeight: "600",
|
|
5386
|
+
color: "#2f2f2f",
|
|
5387
|
+
lineHeight: "1.5",
|
|
5388
|
+
width: "190px",
|
|
5389
|
+
flexShrink: 0
|
|
5390
|
+
},
|
|
5391
|
+
valueContainer: {
|
|
5392
|
+
flex: 1,
|
|
5393
|
+
display: "flex",
|
|
5394
|
+
alignItems: "center"
|
|
5395
|
+
},
|
|
5396
|
+
value: {
|
|
5397
|
+
fontSize: "13px",
|
|
5398
|
+
fontWeight: "400",
|
|
5399
|
+
color: "#2f2f2f",
|
|
5400
|
+
lineHeight: "1.5"
|
|
5401
|
+
},
|
|
5402
|
+
rightContainer: {
|
|
5403
|
+
display: "flex",
|
|
5404
|
+
alignItems: "center",
|
|
5405
|
+
justifyContent: "flex-end",
|
|
5406
|
+
gap: "8px",
|
|
5407
|
+
flexShrink: 0
|
|
5408
|
+
},
|
|
5409
|
+
note: {
|
|
5410
|
+
fontSize: "13px",
|
|
5411
|
+
fontWeight: "400",
|
|
5412
|
+
fontStyle: "italic",
|
|
5413
|
+
color: "#2f2f2f",
|
|
5414
|
+
lineHeight: "1.5",
|
|
5415
|
+
textAlign: "right"
|
|
5416
|
+
},
|
|
5417
|
+
iconWrapper: {
|
|
5418
|
+
display: "flex",
|
|
5419
|
+
alignItems: "center",
|
|
5420
|
+
justifyContent: "center",
|
|
5421
|
+
width: "16px",
|
|
5422
|
+
height: "16px",
|
|
5423
|
+
flexShrink: 0
|
|
5424
|
+
}
|
|
5425
|
+
};
|
|
5426
|
+
var ListRow = React28.forwardRef(
|
|
5427
|
+
({ value, label, note, icon = false, onClick, className, style, ...props }, ref) => {
|
|
5428
|
+
const [isHovered, setIsHovered] = React28.useState(false);
|
|
5429
|
+
const [isFocused, setIsFocused] = React28.useState(false);
|
|
5430
|
+
const showHoverState = icon && isHovered;
|
|
5431
|
+
const isClickable = icon && onClick;
|
|
5432
|
+
const containerStyle = {
|
|
5433
|
+
...listRowStyles.container,
|
|
5434
|
+
...showHoverState && listRowStyles.containerHover,
|
|
5435
|
+
...isFocused && listRowStyles.containerFocus,
|
|
5436
|
+
...isClickable && listRowStyles.containerClickable,
|
|
5437
|
+
...style
|
|
5438
|
+
};
|
|
5439
|
+
const handleClick = () => {
|
|
5440
|
+
if (isClickable && onClick) {
|
|
5441
|
+
onClick();
|
|
5442
|
+
}
|
|
5443
|
+
};
|
|
5444
|
+
const handleKeyDown = (event) => {
|
|
5445
|
+
if (isClickable && (event.key === "Enter" || event.key === " ")) {
|
|
5446
|
+
event.preventDefault();
|
|
5447
|
+
onClick?.();
|
|
5448
|
+
}
|
|
5449
|
+
};
|
|
5450
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
5451
|
+
"div",
|
|
5452
|
+
{
|
|
5453
|
+
ref,
|
|
5454
|
+
className: (0, import_clsx23.clsx)("arbor-list-row", className),
|
|
5455
|
+
style: containerStyle,
|
|
5456
|
+
onClick: handleClick,
|
|
5457
|
+
onMouseEnter: () => icon && setIsHovered(true),
|
|
5458
|
+
onMouseLeave: () => setIsHovered(false),
|
|
5459
|
+
onFocus: () => setIsFocused(true),
|
|
5460
|
+
onBlur: () => setIsFocused(false),
|
|
5461
|
+
onKeyDown: handleKeyDown,
|
|
5462
|
+
tabIndex: isClickable ? 0 : void 0,
|
|
5463
|
+
role: isClickable ? "button" : void 0,
|
|
5464
|
+
...props,
|
|
5465
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { style: listRowStyles.content, children: [
|
|
5466
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { style: listRowStyles.label, children: label }),
|
|
5467
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { style: listRowStyles.valueContainer, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { style: listRowStyles.value, children: value }) }),
|
|
5468
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { style: listRowStyles.rightContainer, children: [
|
|
5469
|
+
note && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { style: listRowStyles.note, children: note }),
|
|
5470
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { style: listRowStyles.iconWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(CaretIcon, { isHovered }) })
|
|
5471
|
+
] })
|
|
5472
|
+
] })
|
|
5473
|
+
}
|
|
5474
|
+
);
|
|
5475
|
+
}
|
|
5476
|
+
);
|
|
5477
|
+
ListRow.displayName = "ListRow";
|
|
5478
|
+
|
|
5479
|
+
// src/ListRowMultiLine/ListRowMultiLine.tsx
|
|
5480
|
+
var React29 = __toESM(require("react"));
|
|
5481
|
+
var import_clsx24 = require("clsx");
|
|
5482
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
5483
|
+
var CaretIcon2 = ({ isHovered }) => {
|
|
5484
|
+
if (isHovered) {
|
|
5485
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
5486
|
+
"path",
|
|
5487
|
+
{
|
|
5488
|
+
d: "M6 4L10 8L6 12",
|
|
5489
|
+
stroke: "#2f2f2f",
|
|
5490
|
+
strokeWidth: "1.2",
|
|
5491
|
+
strokeLinecap: "round",
|
|
5492
|
+
strokeLinejoin: "round"
|
|
5493
|
+
}
|
|
5494
|
+
) });
|
|
5495
|
+
}
|
|
5496
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
5497
|
+
"path",
|
|
5498
|
+
{
|
|
5499
|
+
d: "M6 4L10 8L6 12",
|
|
5500
|
+
stroke: "#b3b3b3",
|
|
5501
|
+
strokeWidth: "1.2",
|
|
5502
|
+
strokeLinecap: "round",
|
|
5503
|
+
strokeLinejoin: "round"
|
|
5504
|
+
}
|
|
5505
|
+
) });
|
|
5506
|
+
};
|
|
5507
|
+
var listRowMultiLineStyles = {
|
|
5508
|
+
container: {
|
|
5509
|
+
display: "flex",
|
|
5510
|
+
alignItems: "center",
|
|
5511
|
+
width: "100%",
|
|
5512
|
+
borderBottom: "1px solid #f8f8f8",
|
|
5513
|
+
fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
5514
|
+
boxSizing: "border-box",
|
|
5515
|
+
borderRadius: "8px",
|
|
5516
|
+
transition: "background-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out",
|
|
5517
|
+
outline: "none"
|
|
5518
|
+
},
|
|
5519
|
+
containerHover: {
|
|
5520
|
+
backgroundColor: "#f8f8f8"
|
|
5521
|
+
},
|
|
5522
|
+
containerFocus: {
|
|
5523
|
+
outline: "3px solid #3cad51",
|
|
5524
|
+
outlineOffset: "-3px"
|
|
5525
|
+
},
|
|
5526
|
+
containerClickable: {
|
|
5527
|
+
cursor: "pointer"
|
|
5528
|
+
},
|
|
5529
|
+
content: {
|
|
5530
|
+
display: "flex",
|
|
5531
|
+
alignItems: "center",
|
|
5532
|
+
justifyContent: "space-between",
|
|
5533
|
+
width: "100%",
|
|
5534
|
+
padding: "4px 8px",
|
|
5535
|
+
minHeight: "44px"
|
|
5536
|
+
},
|
|
5537
|
+
textContent: {
|
|
5538
|
+
display: "flex",
|
|
5539
|
+
flexDirection: "column",
|
|
5540
|
+
alignItems: "flex-start",
|
|
5541
|
+
justifyContent: "center",
|
|
5542
|
+
flex: 1,
|
|
5543
|
+
gap: "0px"
|
|
5544
|
+
},
|
|
5545
|
+
title: {
|
|
5546
|
+
fontSize: "16px",
|
|
5547
|
+
fontWeight: "600",
|
|
5548
|
+
color: "#2f2f2f",
|
|
5549
|
+
lineHeight: "1.5",
|
|
5550
|
+
margin: 0
|
|
5551
|
+
},
|
|
5552
|
+
description: {
|
|
5553
|
+
fontSize: "13px",
|
|
5554
|
+
fontWeight: "400",
|
|
5555
|
+
color: "#2f2f2f",
|
|
5556
|
+
lineHeight: "1.5",
|
|
5557
|
+
margin: 0
|
|
5558
|
+
},
|
|
5559
|
+
iconWrapper: {
|
|
5560
|
+
display: "flex",
|
|
5561
|
+
alignItems: "center",
|
|
5562
|
+
justifyContent: "center",
|
|
5563
|
+
width: "16px",
|
|
5564
|
+
height: "16px",
|
|
5565
|
+
flexShrink: 0,
|
|
5566
|
+
marginLeft: "8px"
|
|
5567
|
+
}
|
|
5568
|
+
};
|
|
5569
|
+
var ListRowMultiLine = React29.forwardRef(
|
|
5570
|
+
({ title, description, icon = false, onClick, className, style, ...props }, ref) => {
|
|
5571
|
+
const [isHovered, setIsHovered] = React29.useState(false);
|
|
5572
|
+
const [isFocused, setIsFocused] = React29.useState(false);
|
|
5573
|
+
const showHoverState = icon && isHovered;
|
|
5574
|
+
const isClickable = icon && onClick;
|
|
5575
|
+
const containerStyle = {
|
|
5576
|
+
...listRowMultiLineStyles.container,
|
|
5577
|
+
...showHoverState && listRowMultiLineStyles.containerHover,
|
|
5578
|
+
...isFocused && listRowMultiLineStyles.containerFocus,
|
|
5579
|
+
...isClickable && listRowMultiLineStyles.containerClickable,
|
|
5580
|
+
...style
|
|
5581
|
+
};
|
|
5582
|
+
const handleClick = () => {
|
|
5583
|
+
if (isClickable && onClick) {
|
|
5584
|
+
onClick();
|
|
5585
|
+
}
|
|
5586
|
+
};
|
|
5587
|
+
const handleKeyDown = (event) => {
|
|
5588
|
+
if (isClickable && (event.key === "Enter" || event.key === " ")) {
|
|
5589
|
+
event.preventDefault();
|
|
5590
|
+
onClick?.();
|
|
5591
|
+
}
|
|
5592
|
+
};
|
|
5593
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
5594
|
+
"div",
|
|
5595
|
+
{
|
|
5596
|
+
ref,
|
|
5597
|
+
className: (0, import_clsx24.clsx)("arbor-list-row-multi-line", className),
|
|
5598
|
+
style: containerStyle,
|
|
5599
|
+
onClick: handleClick,
|
|
5600
|
+
onMouseEnter: () => icon && setIsHovered(true),
|
|
5601
|
+
onMouseLeave: () => setIsHovered(false),
|
|
5602
|
+
onFocus: () => setIsFocused(true),
|
|
5603
|
+
onBlur: () => setIsFocused(false),
|
|
5604
|
+
onKeyDown: handleKeyDown,
|
|
5605
|
+
tabIndex: isClickable ? 0 : void 0,
|
|
5606
|
+
role: isClickable ? "button" : void 0,
|
|
5607
|
+
...props,
|
|
5608
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { style: listRowMultiLineStyles.content, children: [
|
|
5609
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { style: listRowMultiLineStyles.textContent, children: [
|
|
5610
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { style: listRowMultiLineStyles.title, children: title }),
|
|
5611
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { style: listRowMultiLineStyles.description, children: description })
|
|
5612
|
+
] }),
|
|
5613
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { style: listRowMultiLineStyles.iconWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(CaretIcon2, { isHovered }) })
|
|
5614
|
+
] })
|
|
5615
|
+
}
|
|
5616
|
+
);
|
|
5617
|
+
}
|
|
5618
|
+
);
|
|
5619
|
+
ListRowMultiLine.displayName = "ListRowMultiLine";
|
|
5620
|
+
|
|
5621
|
+
// src/SubSectionHeading/SubSectionHeading.tsx
|
|
5622
|
+
var React30 = __toESM(require("react"));
|
|
5623
|
+
var import_clsx25 = require("clsx");
|
|
5624
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
5625
|
+
var InfoIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
5626
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("circle", { cx: "8", cy: "8", r: "6.5", stroke: "#2f2f2f", strokeWidth: "1.2" }),
|
|
5627
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5628
|
+
"path",
|
|
5629
|
+
{
|
|
5630
|
+
d: "M8 7V11",
|
|
5631
|
+
stroke: "#2f2f2f",
|
|
5632
|
+
strokeWidth: "1.2",
|
|
5633
|
+
strokeLinecap: "round"
|
|
5634
|
+
}
|
|
5635
|
+
),
|
|
5636
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("circle", { cx: "8", cy: "5", r: "0.75", fill: "#2f2f2f" })
|
|
5637
|
+
] });
|
|
5638
|
+
var PlusIcon = ({ color = "#2f2f2f" }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
5639
|
+
"path",
|
|
5640
|
+
{
|
|
5641
|
+
d: "M8 3V13M3 8H13",
|
|
5642
|
+
stroke: color,
|
|
5643
|
+
strokeWidth: "1.2",
|
|
5644
|
+
strokeLinecap: "round",
|
|
5645
|
+
strokeLinejoin: "round"
|
|
5646
|
+
}
|
|
5647
|
+
) });
|
|
5648
|
+
var subSectionHeadingStyles = {
|
|
5649
|
+
container: {
|
|
5650
|
+
display: "flex",
|
|
5651
|
+
alignItems: "center",
|
|
5652
|
+
width: "100%",
|
|
5653
|
+
borderBottom: "1px solid #efefef",
|
|
5654
|
+
fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
5655
|
+
boxSizing: "border-box"
|
|
5656
|
+
},
|
|
5657
|
+
containerNoButton: {
|
|
5658
|
+
padding: "12px 8px",
|
|
5659
|
+
gap: "0px"
|
|
5660
|
+
},
|
|
5661
|
+
containerWithButton: {
|
|
5662
|
+
padding: "8px",
|
|
5663
|
+
gap: "12px",
|
|
5664
|
+
justifyContent: "space-between"
|
|
5665
|
+
},
|
|
5666
|
+
textContainer: {
|
|
5667
|
+
display: "flex",
|
|
5668
|
+
alignItems: "center",
|
|
5669
|
+
gap: "8px",
|
|
5670
|
+
flex: 1,
|
|
5671
|
+
minHeight: "16px"
|
|
5672
|
+
},
|
|
5673
|
+
title: {
|
|
5674
|
+
fontSize: "18px",
|
|
5675
|
+
fontWeight: "600",
|
|
5676
|
+
color: "#2f2f2f",
|
|
5677
|
+
lineHeight: "1.25",
|
|
5678
|
+
margin: 0,
|
|
5679
|
+
whiteSpace: "nowrap"
|
|
5680
|
+
},
|
|
5681
|
+
iconWrapper: {
|
|
5682
|
+
display: "flex",
|
|
5683
|
+
alignItems: "center",
|
|
5684
|
+
justifyContent: "center",
|
|
5685
|
+
width: "16px",
|
|
5686
|
+
height: "16px",
|
|
5687
|
+
flexShrink: 0
|
|
5688
|
+
},
|
|
5689
|
+
buttonBase: {
|
|
5690
|
+
display: "flex",
|
|
5691
|
+
alignItems: "center",
|
|
5692
|
+
justifyContent: "center",
|
|
5693
|
+
gap: "8px",
|
|
5694
|
+
height: "32px",
|
|
5695
|
+
minHeight: "32px",
|
|
5696
|
+
padding: "0 16px",
|
|
5697
|
+
borderRadius: "99px",
|
|
5698
|
+
border: "none",
|
|
5699
|
+
cursor: "pointer",
|
|
5700
|
+
fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
5701
|
+
fontSize: "13px",
|
|
5702
|
+
fontWeight: "600",
|
|
5703
|
+
lineHeight: "1.5",
|
|
5704
|
+
whiteSpace: "nowrap",
|
|
5705
|
+
flexShrink: 0,
|
|
5706
|
+
transition: "background-color 0.15s ease-in-out, opacity 0.15s ease-in-out"
|
|
5707
|
+
},
|
|
5708
|
+
buttonPrimary: {
|
|
5709
|
+
backgroundColor: "#0e8a0e",
|
|
5710
|
+
color: "#ffffff"
|
|
5711
|
+
},
|
|
5712
|
+
buttonPrimaryHover: {
|
|
5713
|
+
backgroundColor: "#0a6b0a"
|
|
5714
|
+
},
|
|
5715
|
+
buttonTertiary: {
|
|
5716
|
+
backgroundColor: "#efefef",
|
|
5717
|
+
color: "#2f2f2f"
|
|
5718
|
+
},
|
|
5719
|
+
buttonTertiaryHover: {
|
|
5720
|
+
backgroundColor: "#e5e5e5"
|
|
5721
|
+
},
|
|
5722
|
+
buttonIconWrapper: {
|
|
5723
|
+
display: "flex",
|
|
5724
|
+
alignItems: "center",
|
|
5725
|
+
justifyContent: "center",
|
|
5726
|
+
width: "16px",
|
|
5727
|
+
height: "16px",
|
|
5728
|
+
flexShrink: 0
|
|
5729
|
+
}
|
|
5730
|
+
};
|
|
5731
|
+
var SubSectionHeading = React30.forwardRef(
|
|
5732
|
+
({
|
|
5733
|
+
title,
|
|
5734
|
+
icon = false,
|
|
5735
|
+
button,
|
|
5736
|
+
buttonText = "Button Text",
|
|
5737
|
+
buttonIcon,
|
|
5738
|
+
onButtonClick,
|
|
5739
|
+
className,
|
|
5740
|
+
style,
|
|
5741
|
+
...props
|
|
5742
|
+
}, ref) => {
|
|
5743
|
+
const [isButtonHovered, setIsButtonHovered] = React30.useState(false);
|
|
5744
|
+
const containerStyle = {
|
|
5745
|
+
...subSectionHeadingStyles.container,
|
|
5746
|
+
...button ? subSectionHeadingStyles.containerWithButton : subSectionHeadingStyles.containerNoButton,
|
|
5747
|
+
...style
|
|
5748
|
+
};
|
|
5749
|
+
const getButtonStyle = () => {
|
|
5750
|
+
const baseStyle = { ...subSectionHeadingStyles.buttonBase };
|
|
5751
|
+
if (button === "primary") {
|
|
5752
|
+
return {
|
|
5753
|
+
...baseStyle,
|
|
5754
|
+
...subSectionHeadingStyles.buttonPrimary,
|
|
5755
|
+
...isButtonHovered && subSectionHeadingStyles.buttonPrimaryHover
|
|
5756
|
+
};
|
|
5757
|
+
}
|
|
5758
|
+
if (button === "tertiary") {
|
|
5759
|
+
return {
|
|
5760
|
+
...baseStyle,
|
|
5761
|
+
...subSectionHeadingStyles.buttonTertiary,
|
|
5762
|
+
...isButtonHovered && subSectionHeadingStyles.buttonTertiaryHover
|
|
5763
|
+
};
|
|
5764
|
+
}
|
|
5765
|
+
return baseStyle;
|
|
5766
|
+
};
|
|
5767
|
+
const renderButtonIcon = () => {
|
|
5768
|
+
if (buttonIcon) {
|
|
5769
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { style: subSectionHeadingStyles.buttonIconWrapper, children: buttonIcon });
|
|
5770
|
+
}
|
|
5771
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { style: subSectionHeadingStyles.buttonIconWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(PlusIcon, { color: button === "primary" ? "#ffffff" : "#2f2f2f" }) });
|
|
5772
|
+
};
|
|
5773
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
5774
|
+
"div",
|
|
5775
|
+
{
|
|
5776
|
+
ref,
|
|
5777
|
+
className: (0, import_clsx25.clsx)("arbor-sub-section-heading", className),
|
|
5778
|
+
style: containerStyle,
|
|
5779
|
+
...props,
|
|
5780
|
+
children: [
|
|
5781
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { style: subSectionHeadingStyles.textContainer, children: [
|
|
5782
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("h3", { style: subSectionHeadingStyles.title, children: title }),
|
|
5783
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { style: subSectionHeadingStyles.iconWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(InfoIcon2, {}) })
|
|
5784
|
+
] }),
|
|
5785
|
+
button && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
5786
|
+
"button",
|
|
5787
|
+
{
|
|
5788
|
+
type: "button",
|
|
5789
|
+
style: getButtonStyle(),
|
|
5790
|
+
onClick: onButtonClick,
|
|
5791
|
+
onMouseEnter: () => setIsButtonHovered(true),
|
|
5792
|
+
onMouseLeave: () => setIsButtonHovered(false),
|
|
5793
|
+
children: [
|
|
5794
|
+
renderButtonIcon(),
|
|
5795
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { children: buttonText })
|
|
5796
|
+
]
|
|
5797
|
+
}
|
|
5798
|
+
)
|
|
5799
|
+
]
|
|
5800
|
+
}
|
|
5801
|
+
);
|
|
5802
|
+
}
|
|
5803
|
+
);
|
|
5804
|
+
SubSectionHeading.displayName = "SubSectionHeading";
|
|
5805
|
+
|
|
5806
|
+
// src/SubSectionInteractive/SubSectionInteractive.tsx
|
|
5807
|
+
var React31 = __toESM(require("react"));
|
|
5808
|
+
var import_clsx26 = require("clsx");
|
|
5809
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
5810
|
+
var ChevronIcon = ({ expanded }) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
5811
|
+
"svg",
|
|
5812
|
+
{
|
|
5813
|
+
width: "16",
|
|
5814
|
+
height: "16",
|
|
5815
|
+
viewBox: "0 0 16 16",
|
|
5816
|
+
fill: "none",
|
|
5817
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
5818
|
+
style: {
|
|
5819
|
+
transform: expanded ? "rotate(0deg)" : "rotate(180deg)",
|
|
5820
|
+
transition: "transform 0.2s ease-in-out"
|
|
5821
|
+
},
|
|
5822
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
5823
|
+
"path",
|
|
5824
|
+
{
|
|
5825
|
+
d: "M4 6L8 10L12 6",
|
|
5826
|
+
stroke: "#2f2f2f",
|
|
5827
|
+
strokeWidth: "1.2",
|
|
5828
|
+
strokeLinecap: "round",
|
|
5829
|
+
strokeLinejoin: "round"
|
|
5830
|
+
}
|
|
5831
|
+
)
|
|
5832
|
+
}
|
|
5833
|
+
);
|
|
5834
|
+
var subSectionInteractiveStyles = {
|
|
5835
|
+
container: {
|
|
5836
|
+
display: "flex",
|
|
5837
|
+
flexDirection: "column",
|
|
5838
|
+
width: "100%",
|
|
5839
|
+
fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
5840
|
+
boxSizing: "border-box"
|
|
5841
|
+
},
|
|
5842
|
+
header: {
|
|
5843
|
+
display: "flex",
|
|
5844
|
+
alignItems: "center",
|
|
5845
|
+
width: "100%",
|
|
5846
|
+
cursor: "pointer",
|
|
5847
|
+
border: "none",
|
|
5848
|
+
background: "transparent",
|
|
5849
|
+
padding: 0,
|
|
5850
|
+
margin: 0,
|
|
5851
|
+
textAlign: "left",
|
|
5852
|
+
outline: "none"
|
|
5853
|
+
},
|
|
5854
|
+
headerContent: {
|
|
5855
|
+
display: "flex",
|
|
5856
|
+
alignItems: "center",
|
|
5857
|
+
justifyContent: "space-between",
|
|
5858
|
+
width: "100%",
|
|
5859
|
+
padding: "12px 8px",
|
|
5860
|
+
borderRadius: "8px",
|
|
5861
|
+
transition: "background-color 0.15s ease-in-out",
|
|
5862
|
+
minHeight: "16px",
|
|
5863
|
+
gap: "12px"
|
|
5864
|
+
},
|
|
5865
|
+
headerContentHover: {
|
|
5866
|
+
backgroundColor: "#f8f8f8"
|
|
5867
|
+
},
|
|
5868
|
+
headerContentFocus: {
|
|
5869
|
+
outline: "3px solid #3cad51",
|
|
5870
|
+
outlineOffset: "-3px"
|
|
5871
|
+
},
|
|
5872
|
+
title: {
|
|
5873
|
+
fontSize: "18px",
|
|
5874
|
+
fontWeight: "600",
|
|
5875
|
+
color: "#2f2f2f",
|
|
5876
|
+
lineHeight: "1.25",
|
|
5877
|
+
margin: 0,
|
|
5878
|
+
flex: 1,
|
|
5879
|
+
whiteSpace: "nowrap"
|
|
5880
|
+
},
|
|
5881
|
+
iconWrapper: {
|
|
5882
|
+
display: "flex",
|
|
5883
|
+
alignItems: "center",
|
|
5884
|
+
justifyContent: "center",
|
|
5885
|
+
width: "16px",
|
|
5886
|
+
height: "16px",
|
|
5887
|
+
flexShrink: 0
|
|
5888
|
+
},
|
|
5889
|
+
content: {
|
|
5890
|
+
overflow: "hidden",
|
|
5891
|
+
transition: "max-height 0.3s ease-in-out, opacity 0.2s ease-in-out"
|
|
5892
|
+
},
|
|
5893
|
+
contentExpanded: {
|
|
5894
|
+
maxHeight: "2000px",
|
|
5895
|
+
opacity: 1
|
|
5896
|
+
},
|
|
5897
|
+
contentCollapsed: {
|
|
5898
|
+
maxHeight: "0px",
|
|
5899
|
+
opacity: 0
|
|
5900
|
+
},
|
|
5901
|
+
contentInner: {
|
|
5902
|
+
borderBottom: "1px solid #f8f8f8"
|
|
5903
|
+
}
|
|
5904
|
+
};
|
|
5905
|
+
var SubSectionInteractive = React31.forwardRef(
|
|
5906
|
+
({
|
|
5907
|
+
title,
|
|
5908
|
+
children,
|
|
5909
|
+
expanded: controlledExpanded,
|
|
5910
|
+
defaultExpanded = true,
|
|
5911
|
+
onExpandedChange,
|
|
5912
|
+
className,
|
|
5913
|
+
style,
|
|
5914
|
+
...props
|
|
5915
|
+
}, ref) => {
|
|
5916
|
+
const [internalExpanded, setInternalExpanded] = React31.useState(defaultExpanded);
|
|
5917
|
+
const isControlled = controlledExpanded !== void 0;
|
|
5918
|
+
const isExpanded = isControlled ? controlledExpanded : internalExpanded;
|
|
5919
|
+
const [isHovered, setIsHovered] = React31.useState(false);
|
|
5920
|
+
const [isFocused, setIsFocused] = React31.useState(false);
|
|
5921
|
+
const handleToggle = () => {
|
|
5922
|
+
const newExpanded = !isExpanded;
|
|
5923
|
+
if (!isControlled) {
|
|
5924
|
+
setInternalExpanded(newExpanded);
|
|
5925
|
+
}
|
|
5926
|
+
onExpandedChange?.(newExpanded);
|
|
5927
|
+
};
|
|
5928
|
+
const handleKeyDown = (event) => {
|
|
5929
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
5930
|
+
event.preventDefault();
|
|
5931
|
+
handleToggle();
|
|
5932
|
+
}
|
|
5933
|
+
};
|
|
5934
|
+
const headerContentStyle = {
|
|
5935
|
+
...subSectionInteractiveStyles.headerContent,
|
|
5936
|
+
...isHovered && subSectionInteractiveStyles.headerContentHover,
|
|
5937
|
+
...isFocused && subSectionInteractiveStyles.headerContentFocus
|
|
5938
|
+
};
|
|
5939
|
+
const contentStyle = {
|
|
5940
|
+
...subSectionInteractiveStyles.content,
|
|
5941
|
+
...isExpanded ? subSectionInteractiveStyles.contentExpanded : subSectionInteractiveStyles.contentCollapsed
|
|
5942
|
+
};
|
|
5943
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
|
|
5944
|
+
"div",
|
|
5945
|
+
{
|
|
5946
|
+
ref,
|
|
5947
|
+
className: (0, import_clsx26.clsx)("arbor-sub-section-interactive", className),
|
|
5948
|
+
style: { ...subSectionInteractiveStyles.container, ...style },
|
|
5949
|
+
...props,
|
|
5950
|
+
children: [
|
|
5951
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
5952
|
+
"button",
|
|
5953
|
+
{
|
|
5954
|
+
type: "button",
|
|
5955
|
+
style: subSectionInteractiveStyles.header,
|
|
5956
|
+
onClick: handleToggle,
|
|
5957
|
+
onMouseEnter: () => setIsHovered(true),
|
|
5958
|
+
onMouseLeave: () => setIsHovered(false),
|
|
5959
|
+
onFocus: () => setIsFocused(true),
|
|
5960
|
+
onBlur: () => setIsFocused(false),
|
|
5961
|
+
onKeyDown: handleKeyDown,
|
|
5962
|
+
"aria-expanded": isExpanded,
|
|
5963
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { style: headerContentStyle, children: [
|
|
5964
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("h3", { style: subSectionInteractiveStyles.title, children: title }),
|
|
5965
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { style: subSectionInteractiveStyles.iconWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ChevronIcon, { expanded: isExpanded }) })
|
|
5966
|
+
] })
|
|
5967
|
+
}
|
|
5968
|
+
),
|
|
5969
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { style: contentStyle, "aria-hidden": !isExpanded, children: children && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { style: subSectionInteractiveStyles.contentInner, children }) })
|
|
5970
|
+
]
|
|
5971
|
+
}
|
|
5972
|
+
);
|
|
5973
|
+
}
|
|
5974
|
+
);
|
|
5975
|
+
SubSectionInteractive.displayName = "SubSectionInteractive";
|
|
5976
|
+
|
|
5977
|
+
// src/SectionHeadingInteractive/SectionHeadingInteractive.tsx
|
|
5978
|
+
var React32 = __toESM(require("react"));
|
|
5979
|
+
var import_clsx27 = require("clsx");
|
|
5980
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
5981
|
+
var ChevronIcon2 = ({ expanded }) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5982
|
+
"svg",
|
|
5983
|
+
{
|
|
5984
|
+
width: "16",
|
|
5985
|
+
height: "16",
|
|
5986
|
+
viewBox: "0 0 16 16",
|
|
5987
|
+
fill: "none",
|
|
5988
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
5989
|
+
style: {
|
|
5990
|
+
transform: expanded ? "rotate(180deg)" : "rotate(0deg)",
|
|
5991
|
+
transition: "transform 0.2s ease-in-out"
|
|
5992
|
+
},
|
|
5993
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
5994
|
+
"path",
|
|
5995
|
+
{
|
|
5996
|
+
d: "M4 6L8 10L12 6",
|
|
5997
|
+
stroke: "#2f2f2f",
|
|
5998
|
+
strokeWidth: "1.2",
|
|
5999
|
+
strokeLinecap: "round",
|
|
6000
|
+
strokeLinejoin: "round"
|
|
6001
|
+
}
|
|
6002
|
+
)
|
|
6003
|
+
}
|
|
6004
|
+
);
|
|
6005
|
+
var sectionHeadingInteractiveStyles = {
|
|
6006
|
+
container: {
|
|
6007
|
+
display: "flex",
|
|
6008
|
+
flexDirection: "column",
|
|
6009
|
+
width: "100%",
|
|
6010
|
+
fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
6011
|
+
boxSizing: "border-box"
|
|
6012
|
+
},
|
|
6013
|
+
header: {
|
|
6014
|
+
display: "flex",
|
|
6015
|
+
alignItems: "center",
|
|
6016
|
+
width: "100%",
|
|
6017
|
+
cursor: "pointer",
|
|
6018
|
+
border: "none",
|
|
6019
|
+
background: "transparent",
|
|
6020
|
+
padding: 0,
|
|
6021
|
+
margin: 0,
|
|
6022
|
+
textAlign: "left",
|
|
6023
|
+
outline: "none"
|
|
6024
|
+
},
|
|
6025
|
+
// When collapsed, no bottom border
|
|
6026
|
+
headerContainerCollapsed: {
|
|
6027
|
+
display: "flex",
|
|
6028
|
+
alignItems: "center",
|
|
6029
|
+
width: "100%"
|
|
6030
|
+
},
|
|
6031
|
+
// When expanded, has bottom border
|
|
6032
|
+
headerContainerExpanded: {
|
|
6033
|
+
display: "flex",
|
|
6034
|
+
alignItems: "center",
|
|
6035
|
+
width: "100%",
|
|
6036
|
+
borderBottom: "1px solid #f8f8f8"
|
|
6037
|
+
},
|
|
6038
|
+
headerContent: {
|
|
6039
|
+
display: "flex",
|
|
6040
|
+
alignItems: "center",
|
|
6041
|
+
justifyContent: "space-between",
|
|
6042
|
+
width: "100%",
|
|
6043
|
+
padding: "12px 8px",
|
|
6044
|
+
borderRadius: "8px",
|
|
6045
|
+
transition: "background-color 0.15s ease-in-out",
|
|
6046
|
+
minHeight: "16px",
|
|
6047
|
+
gap: "12px"
|
|
6048
|
+
},
|
|
6049
|
+
headerContentHover: {
|
|
6050
|
+
backgroundColor: "#f8f8f8"
|
|
6051
|
+
},
|
|
6052
|
+
headerContentFocus: {
|
|
6053
|
+
outline: "3px solid #3cad51",
|
|
6054
|
+
outlineOffset: "-3px"
|
|
6055
|
+
},
|
|
6056
|
+
title: {
|
|
6057
|
+
fontSize: "22px",
|
|
6058
|
+
fontWeight: "600",
|
|
6059
|
+
color: "#2f2f2f",
|
|
6060
|
+
lineHeight: "1.25",
|
|
6061
|
+
margin: 0,
|
|
6062
|
+
flex: 1,
|
|
6063
|
+
whiteSpace: "nowrap"
|
|
6064
|
+
},
|
|
6065
|
+
iconWrapper: {
|
|
6066
|
+
display: "flex",
|
|
6067
|
+
alignItems: "center",
|
|
6068
|
+
justifyContent: "center",
|
|
6069
|
+
width: "16px",
|
|
6070
|
+
height: "16px",
|
|
6071
|
+
flexShrink: 0
|
|
6072
|
+
},
|
|
6073
|
+
content: {
|
|
6074
|
+
overflow: "hidden",
|
|
6075
|
+
transition: "max-height 0.3s ease-in-out, opacity 0.2s ease-in-out"
|
|
6076
|
+
},
|
|
6077
|
+
contentExpanded: {
|
|
6078
|
+
maxHeight: "5000px",
|
|
6079
|
+
opacity: 1
|
|
6080
|
+
},
|
|
6081
|
+
contentCollapsed: {
|
|
6082
|
+
maxHeight: "0px",
|
|
6083
|
+
opacity: 0
|
|
6084
|
+
},
|
|
6085
|
+
contentInner: {
|
|
6086
|
+
// Content area styling - children go here
|
|
6087
|
+
}
|
|
6088
|
+
};
|
|
6089
|
+
var SectionHeadingInteractive = React32.forwardRef(
|
|
6090
|
+
({
|
|
6091
|
+
title,
|
|
6092
|
+
children,
|
|
6093
|
+
expanded: controlledExpanded,
|
|
6094
|
+
defaultExpanded = true,
|
|
6095
|
+
onExpandedChange,
|
|
6096
|
+
className,
|
|
6097
|
+
style,
|
|
6098
|
+
...props
|
|
6099
|
+
}, ref) => {
|
|
6100
|
+
const [internalExpanded, setInternalExpanded] = React32.useState(defaultExpanded);
|
|
6101
|
+
const isControlled = controlledExpanded !== void 0;
|
|
6102
|
+
const isExpanded = isControlled ? controlledExpanded : internalExpanded;
|
|
6103
|
+
const [isHovered, setIsHovered] = React32.useState(false);
|
|
6104
|
+
const [isFocused, setIsFocused] = React32.useState(false);
|
|
6105
|
+
const handleToggle = () => {
|
|
6106
|
+
const newExpanded = !isExpanded;
|
|
6107
|
+
if (!isControlled) {
|
|
6108
|
+
setInternalExpanded(newExpanded);
|
|
6109
|
+
}
|
|
6110
|
+
onExpandedChange?.(newExpanded);
|
|
6111
|
+
};
|
|
6112
|
+
const handleKeyDown = (event) => {
|
|
6113
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
6114
|
+
event.preventDefault();
|
|
6115
|
+
handleToggle();
|
|
6116
|
+
}
|
|
6117
|
+
};
|
|
6118
|
+
const headerContainerStyle = isExpanded ? sectionHeadingInteractiveStyles.headerContainerExpanded : sectionHeadingInteractiveStyles.headerContainerCollapsed;
|
|
6119
|
+
const headerContentStyle = {
|
|
6120
|
+
...sectionHeadingInteractiveStyles.headerContent,
|
|
6121
|
+
...isHovered && sectionHeadingInteractiveStyles.headerContentHover,
|
|
6122
|
+
...isFocused && sectionHeadingInteractiveStyles.headerContentFocus
|
|
6123
|
+
};
|
|
6124
|
+
const contentStyle = {
|
|
6125
|
+
...sectionHeadingInteractiveStyles.content,
|
|
6126
|
+
...isExpanded ? sectionHeadingInteractiveStyles.contentExpanded : sectionHeadingInteractiveStyles.contentCollapsed
|
|
6127
|
+
};
|
|
6128
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
6129
|
+
"div",
|
|
6130
|
+
{
|
|
6131
|
+
ref,
|
|
6132
|
+
className: (0, import_clsx27.clsx)("arbor-section-heading-interactive", className),
|
|
6133
|
+
style: { ...sectionHeadingInteractiveStyles.container, ...style },
|
|
6134
|
+
...props,
|
|
6135
|
+
children: [
|
|
6136
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { style: headerContainerStyle, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
6137
|
+
"button",
|
|
6138
|
+
{
|
|
6139
|
+
type: "button",
|
|
6140
|
+
style: sectionHeadingInteractiveStyles.header,
|
|
6141
|
+
onClick: handleToggle,
|
|
6142
|
+
onMouseEnter: () => setIsHovered(true),
|
|
6143
|
+
onMouseLeave: () => setIsHovered(false),
|
|
6144
|
+
onFocus: () => setIsFocused(true),
|
|
6145
|
+
onBlur: () => setIsFocused(false),
|
|
6146
|
+
onKeyDown: handleKeyDown,
|
|
6147
|
+
"aria-expanded": isExpanded,
|
|
6148
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { style: headerContentStyle, children: [
|
|
6149
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("h2", { style: sectionHeadingInteractiveStyles.title, children: title }),
|
|
6150
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { style: sectionHeadingInteractiveStyles.iconWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ChevronIcon2, { expanded: isExpanded }) })
|
|
6151
|
+
] })
|
|
6152
|
+
}
|
|
6153
|
+
) }),
|
|
6154
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { style: contentStyle, "aria-hidden": !isExpanded, children: children && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { style: sectionHeadingInteractiveStyles.contentInner, children }) })
|
|
6155
|
+
]
|
|
6156
|
+
}
|
|
6157
|
+
);
|
|
6158
|
+
}
|
|
6159
|
+
);
|
|
6160
|
+
SectionHeadingInteractive.displayName = "SectionHeadingInteractive";
|
|
6161
|
+
|
|
6162
|
+
// src/Section/Section.tsx
|
|
6163
|
+
var React33 = __toESM(require("react"));
|
|
6164
|
+
var import_clsx28 = require("clsx");
|
|
6165
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
6166
|
+
var sectionStyles = {
|
|
6167
|
+
container: {
|
|
6168
|
+
display: "flex",
|
|
6169
|
+
flexDirection: "column",
|
|
6170
|
+
width: "100%",
|
|
6171
|
+
padding: "8px",
|
|
6172
|
+
borderRadius: "8px",
|
|
6173
|
+
backgroundColor: "#ffffff",
|
|
6174
|
+
boxSizing: "border-box",
|
|
6175
|
+
fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
|
6176
|
+
}
|
|
6177
|
+
};
|
|
6178
|
+
var Section = React33.forwardRef(
|
|
6179
|
+
({ children, className, style, ...props }, ref) => {
|
|
6180
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
6181
|
+
"div",
|
|
6182
|
+
{
|
|
6183
|
+
ref,
|
|
6184
|
+
className: (0, import_clsx28.clsx)("arbor-section", className),
|
|
6185
|
+
style: { ...sectionStyles.container, ...style },
|
|
6186
|
+
...props,
|
|
6187
|
+
children
|
|
6188
|
+
}
|
|
6189
|
+
);
|
|
6190
|
+
}
|
|
6191
|
+
);
|
|
6192
|
+
Section.displayName = "Section";
|
|
6193
|
+
|
|
6194
|
+
// src/ModalHeader/ModalHeader.tsx
|
|
6195
|
+
var React34 = __toESM(require("react"));
|
|
6196
|
+
var import_clsx29 = require("clsx");
|
|
6197
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
6198
|
+
var CloseIcon = () => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
6199
|
+
"svg",
|
|
6200
|
+
{
|
|
6201
|
+
width: "10",
|
|
6202
|
+
height: "10",
|
|
6203
|
+
viewBox: "0 0 10 10",
|
|
6204
|
+
fill: "none",
|
|
6205
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
6206
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
6207
|
+
"path",
|
|
6208
|
+
{
|
|
6209
|
+
d: "M1 1L9 9M9 1L1 9",
|
|
6210
|
+
stroke: "#2f2f2f",
|
|
6211
|
+
strokeWidth: "1.5",
|
|
6212
|
+
strokeLinecap: "round",
|
|
6213
|
+
strokeLinejoin: "round"
|
|
6214
|
+
}
|
|
6215
|
+
)
|
|
6216
|
+
}
|
|
6217
|
+
);
|
|
6218
|
+
var modalHeaderStyles = {
|
|
6219
|
+
container: {
|
|
6220
|
+
display: "flex",
|
|
6221
|
+
alignItems: "center",
|
|
6222
|
+
justifyContent: "space-between",
|
|
6223
|
+
width: "100%",
|
|
6224
|
+
padding: "16px",
|
|
6225
|
+
backgroundColor: "#ffffff",
|
|
6226
|
+
boxSizing: "border-box",
|
|
6227
|
+
fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
6228
|
+
minHeight: "56px"
|
|
6229
|
+
},
|
|
6230
|
+
leftContent: {
|
|
6231
|
+
display: "flex",
|
|
6232
|
+
alignItems: "center",
|
|
6233
|
+
gap: "16px",
|
|
6234
|
+
flex: 1
|
|
6235
|
+
},
|
|
6236
|
+
title: {
|
|
6237
|
+
fontSize: "22px",
|
|
6238
|
+
fontWeight: "600",
|
|
6239
|
+
color: "#2f2f2f",
|
|
6240
|
+
lineHeight: "1.25",
|
|
6241
|
+
margin: 0
|
|
6242
|
+
},
|
|
6243
|
+
closeButton: {
|
|
6244
|
+
display: "flex",
|
|
6245
|
+
alignItems: "center",
|
|
6246
|
+
justifyContent: "center",
|
|
6247
|
+
width: "32px",
|
|
6248
|
+
height: "32px",
|
|
6249
|
+
borderRadius: "16px",
|
|
6250
|
+
backgroundColor: "#ffffff",
|
|
6251
|
+
border: "none",
|
|
6252
|
+
cursor: "pointer",
|
|
6253
|
+
padding: 0,
|
|
6254
|
+
flexShrink: 0,
|
|
6255
|
+
transition: "background-color 0.15s ease-in-out"
|
|
6256
|
+
},
|
|
6257
|
+
closeButtonHover: {
|
|
6258
|
+
backgroundColor: "#f8f8f8"
|
|
6259
|
+
},
|
|
6260
|
+
closeButtonFocus: {
|
|
6261
|
+
outline: "3px solid #3cad51",
|
|
6262
|
+
outlineOffset: "-3px"
|
|
6263
|
+
}
|
|
6264
|
+
};
|
|
6265
|
+
var ModalHeader = React34.forwardRef(
|
|
6266
|
+
({ title, icon, onClose, className, style, ...props }, ref) => {
|
|
6267
|
+
const [isHovered, setIsHovered] = React34.useState(false);
|
|
6268
|
+
const [isFocused, setIsFocused] = React34.useState(false);
|
|
6269
|
+
const closeButtonStyle = {
|
|
6270
|
+
...modalHeaderStyles.closeButton,
|
|
6271
|
+
...isHovered && modalHeaderStyles.closeButtonHover,
|
|
6272
|
+
...isFocused && modalHeaderStyles.closeButtonFocus
|
|
6273
|
+
};
|
|
6274
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
6275
|
+
"div",
|
|
6276
|
+
{
|
|
6277
|
+
ref,
|
|
6278
|
+
className: (0, import_clsx29.clsx)("arbor-modal-header", className),
|
|
6279
|
+
style: { ...modalHeaderStyles.container, ...style },
|
|
6280
|
+
...props,
|
|
6281
|
+
children: [
|
|
6282
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { style: modalHeaderStyles.leftContent, children: [
|
|
6283
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SectionIcon, { variant: icon }),
|
|
6284
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("h2", { style: modalHeaderStyles.title, children: title })
|
|
6285
|
+
] }),
|
|
6286
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
6287
|
+
"button",
|
|
6288
|
+
{
|
|
6289
|
+
type: "button",
|
|
6290
|
+
onClick: onClose,
|
|
6291
|
+
onMouseEnter: () => setIsHovered(true),
|
|
6292
|
+
onMouseLeave: () => setIsHovered(false),
|
|
6293
|
+
onFocus: () => setIsFocused(true),
|
|
6294
|
+
onBlur: () => setIsFocused(false),
|
|
6295
|
+
style: closeButtonStyle,
|
|
6296
|
+
"aria-label": "Close modal",
|
|
6297
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(CloseIcon, {})
|
|
6298
|
+
}
|
|
6299
|
+
)
|
|
6300
|
+
]
|
|
6301
|
+
}
|
|
6302
|
+
);
|
|
6303
|
+
}
|
|
6304
|
+
);
|
|
6305
|
+
ModalHeader.displayName = "ModalHeader";
|
|
6306
|
+
|
|
6307
|
+
// src/ModalFooter/ModalFooter.tsx
|
|
6308
|
+
var React35 = __toESM(require("react"));
|
|
6309
|
+
var import_clsx30 = require("clsx");
|
|
6310
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
6311
|
+
var modalFooterStyles = {
|
|
6312
|
+
container: {
|
|
6313
|
+
display: "flex",
|
|
6314
|
+
alignItems: "center",
|
|
6315
|
+
justifyContent: "flex-end",
|
|
6316
|
+
gap: "16px",
|
|
6317
|
+
width: "100%",
|
|
6318
|
+
padding: "16px",
|
|
6319
|
+
backgroundColor: "#ffffff",
|
|
6320
|
+
boxSizing: "border-box",
|
|
6321
|
+
maxHeight: "56px"
|
|
6322
|
+
}
|
|
6323
|
+
};
|
|
6324
|
+
var ModalFooter = React35.forwardRef(
|
|
6325
|
+
({ children, className, style, ...props }, ref) => {
|
|
6326
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
6327
|
+
"div",
|
|
6328
|
+
{
|
|
6329
|
+
ref,
|
|
6330
|
+
className: (0, import_clsx30.clsx)("arbor-modal-footer", className),
|
|
6331
|
+
style: { ...modalFooterStyles.container, ...style },
|
|
6332
|
+
...props,
|
|
6333
|
+
children
|
|
6334
|
+
}
|
|
6335
|
+
);
|
|
6336
|
+
}
|
|
6337
|
+
);
|
|
6338
|
+
ModalFooter.displayName = "ModalFooter";
|
|
6339
|
+
|
|
6340
|
+
// src/Modal/Modal.tsx
|
|
6341
|
+
var React36 = __toESM(require("react"));
|
|
6342
|
+
var import_clsx31 = require("clsx");
|
|
6343
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
6344
|
+
var modalStyles = {
|
|
6345
|
+
container: {
|
|
6346
|
+
display: "flex",
|
|
6347
|
+
flexDirection: "column",
|
|
6348
|
+
alignItems: "flex-start",
|
|
6349
|
+
backgroundColor: "#f8f8f8",
|
|
6350
|
+
// grey-050
|
|
6351
|
+
borderRadius: "8px",
|
|
6352
|
+
boxShadow: "0px 8px 24px 0px rgba(32, 32, 32, 0.12)",
|
|
6353
|
+
overflow: "hidden",
|
|
6354
|
+
boxSizing: "border-box",
|
|
6355
|
+
fontFamily: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
|
6356
|
+
},
|
|
6357
|
+
content: {
|
|
6358
|
+
display: "flex",
|
|
6359
|
+
alignItems: "center",
|
|
6360
|
+
justifyContent: "center",
|
|
6361
|
+
width: "100%",
|
|
6362
|
+
padding: "32px 16px",
|
|
6363
|
+
backgroundColor: "#f8f8f8",
|
|
6364
|
+
// grey-050
|
|
6365
|
+
boxSizing: "border-box"
|
|
6366
|
+
},
|
|
6367
|
+
contentText: {
|
|
6368
|
+
flex: 1,
|
|
6369
|
+
fontSize: "13px",
|
|
6370
|
+
fontWeight: "400",
|
|
6371
|
+
color: "#2f2f2f",
|
|
6372
|
+
lineHeight: "1.5"
|
|
6373
|
+
}
|
|
6374
|
+
};
|
|
6375
|
+
var Modal = React36.forwardRef(
|
|
6376
|
+
({ children, width = 584, className, style, ...props }, ref) => {
|
|
6377
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
6378
|
+
"div",
|
|
6379
|
+
{
|
|
6380
|
+
ref,
|
|
6381
|
+
className: (0, import_clsx31.clsx)("arbor-modal", className),
|
|
6382
|
+
style: {
|
|
6383
|
+
...modalStyles.container,
|
|
6384
|
+
width: typeof width === "number" ? `${width}px` : width,
|
|
6385
|
+
...style
|
|
6386
|
+
},
|
|
6387
|
+
role: "dialog",
|
|
6388
|
+
"aria-modal": "true",
|
|
6389
|
+
...props,
|
|
6390
|
+
children
|
|
6391
|
+
}
|
|
6392
|
+
);
|
|
6393
|
+
}
|
|
6394
|
+
);
|
|
6395
|
+
Modal.displayName = "Modal";
|
|
6396
|
+
var ModalContent = React36.forwardRef(
|
|
6397
|
+
({ children, className, style, ...props }, ref) => {
|
|
6398
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
6399
|
+
"div",
|
|
6400
|
+
{
|
|
6401
|
+
ref,
|
|
6402
|
+
className: (0, import_clsx31.clsx)("arbor-modal-content", className),
|
|
6403
|
+
style: { ...modalStyles.content, ...style },
|
|
6404
|
+
...props,
|
|
6405
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { style: modalStyles.contentText, children })
|
|
6406
|
+
}
|
|
6407
|
+
);
|
|
6408
|
+
}
|
|
6409
|
+
);
|
|
6410
|
+
ModalContent.displayName = "ModalContent";
|
|
4703
6411
|
// Annotate the CommonJS export names for ESM import in node:
|
|
4704
6412
|
0 && (module.exports = {
|
|
4705
6413
|
Avatar,
|
|
4706
6414
|
Banner,
|
|
4707
6415
|
Breadcrumbs,
|
|
4708
6416
|
Button,
|
|
6417
|
+
ButtonSegmented,
|
|
4709
6418
|
Card,
|
|
4710
6419
|
Checkbox,
|
|
4711
6420
|
Combobox,
|
|
4712
6421
|
DatePicker,
|
|
4713
6422
|
Input,
|
|
6423
|
+
ListRow,
|
|
6424
|
+
ListRowMultiLine,
|
|
6425
|
+
Logo,
|
|
6426
|
+
Modal,
|
|
6427
|
+
ModalContent,
|
|
6428
|
+
ModalFooter,
|
|
6429
|
+
ModalHeader,
|
|
4714
6430
|
NumericInput,
|
|
4715
6431
|
Pagination,
|
|
4716
6432
|
Radio,
|
|
4717
6433
|
SearchGlobal,
|
|
4718
6434
|
SearchOnPage,
|
|
6435
|
+
Section,
|
|
6436
|
+
SectionHeading,
|
|
6437
|
+
SectionHeadingInteractive,
|
|
6438
|
+
SectionIcon,
|
|
6439
|
+
SubSectionHeading,
|
|
6440
|
+
SubSectionInteractive,
|
|
4719
6441
|
Table,
|
|
4720
6442
|
TableControls,
|
|
4721
6443
|
TableFooterPagination,
|