@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.
Files changed (118) hide show
  1. package/dist/Button.d.mts +1 -1
  2. package/dist/Button.d.ts +1 -1
  3. package/dist/Button.js +56 -0
  4. package/dist/Button.js.map +1 -1
  5. package/dist/Button.mjs +1 -1
  6. package/dist/ButtonSegmented.d.mts +61 -0
  7. package/dist/ButtonSegmented.d.ts +61 -0
  8. package/dist/ButtonSegmented.js +167 -0
  9. package/dist/ButtonSegmented.js.map +1 -0
  10. package/dist/ButtonSegmented.mjs +7 -0
  11. package/dist/ButtonSegmented.mjs.map +1 -0
  12. package/dist/ListRow.d.mts +72 -0
  13. package/dist/ListRow.d.ts +72 -0
  14. package/dist/ListRow.js +194 -0
  15. package/dist/ListRow.js.map +1 -0
  16. package/dist/ListRow.mjs +7 -0
  17. package/dist/ListRow.mjs.map +1 -0
  18. package/dist/ListRowMultiLine.d.mts +56 -0
  19. package/dist/ListRowMultiLine.d.ts +56 -0
  20. package/dist/ListRowMultiLine.js +182 -0
  21. package/dist/ListRowMultiLine.js.map +1 -0
  22. package/dist/ListRowMultiLine.mjs +7 -0
  23. package/dist/ListRowMultiLine.mjs.map +1 -0
  24. package/dist/Logo.d.mts +39 -0
  25. package/dist/Logo.d.ts +39 -0
  26. package/dist/Logo.js +119 -0
  27. package/dist/Logo.js.map +1 -0
  28. package/dist/Logo.mjs +7 -0
  29. package/dist/Logo.mjs.map +1 -0
  30. package/dist/Modal.d.mts +73 -0
  31. package/dist/Modal.d.ts +73 -0
  32. package/dist/Modal.js +114 -0
  33. package/dist/Modal.js.map +1 -0
  34. package/dist/Modal.mjs +9 -0
  35. package/dist/Modal.mjs.map +1 -0
  36. package/dist/ModalFooter.d.mts +40 -0
  37. package/dist/ModalFooter.d.ts +40 -0
  38. package/dist/ModalFooter.js +73 -0
  39. package/dist/ModalFooter.js.map +1 -0
  40. package/dist/ModalFooter.mjs +7 -0
  41. package/dist/ModalFooter.mjs.map +1 -0
  42. package/dist/ModalHeader.d.mts +65 -0
  43. package/dist/ModalHeader.d.ts +65 -0
  44. package/dist/ModalHeader.js +257 -0
  45. package/dist/ModalHeader.js.map +1 -0
  46. package/dist/ModalHeader.mjs +8 -0
  47. package/dist/ModalHeader.mjs.map +1 -0
  48. package/dist/Section.d.mts +57 -0
  49. package/dist/Section.d.ts +57 -0
  50. package/dist/Section.js +72 -0
  51. package/dist/Section.js.map +1 -0
  52. package/dist/Section.mjs +7 -0
  53. package/dist/Section.mjs.map +1 -0
  54. package/dist/SectionHeading.d.mts +111 -0
  55. package/dist/SectionHeading.d.ts +111 -0
  56. package/dist/SectionHeading.js +385 -0
  57. package/dist/SectionHeading.js.map +1 -0
  58. package/dist/SectionHeading.mjs +8 -0
  59. package/dist/SectionHeading.mjs.map +1 -0
  60. package/dist/SectionHeadingInteractive.d.mts +67 -0
  61. package/dist/SectionHeadingInteractive.d.ts +67 -0
  62. package/dist/SectionHeadingInteractive.js +225 -0
  63. package/dist/SectionHeadingInteractive.js.map +1 -0
  64. package/dist/SectionHeadingInteractive.mjs +7 -0
  65. package/dist/SectionHeadingInteractive.mjs.map +1 -0
  66. package/dist/SectionIcon.d.mts +35 -0
  67. package/dist/SectionIcon.d.ts +35 -0
  68. package/dist/SectionIcon.js +142 -0
  69. package/dist/SectionIcon.js.map +1 -0
  70. package/dist/SectionIcon.mjs +7 -0
  71. package/dist/SectionIcon.mjs.map +1 -0
  72. package/dist/SubSectionHeading.d.mts +75 -0
  73. package/dist/SubSectionHeading.d.ts +75 -0
  74. package/dist/SubSectionHeading.js +225 -0
  75. package/dist/SubSectionHeading.js.map +1 -0
  76. package/dist/SubSectionHeading.mjs +7 -0
  77. package/dist/SubSectionHeading.mjs.map +1 -0
  78. package/dist/SubSectionInteractive.d.mts +65 -0
  79. package/dist/SubSectionInteractive.d.ts +65 -0
  80. package/dist/SubSectionInteractive.js +211 -0
  81. package/dist/SubSectionInteractive.js.map +1 -0
  82. package/dist/SubSectionInteractive.mjs +7 -0
  83. package/dist/SubSectionInteractive.mjs.map +1 -0
  84. package/dist/chunk-7JWINM2N.mjs +77 -0
  85. package/dist/chunk-7JWINM2N.mjs.map +1 -0
  86. package/dist/chunk-7NYBJKJS.mjs +106 -0
  87. package/dist/chunk-7NYBJKJS.mjs.map +1 -0
  88. package/dist/chunk-ALLCJATI.mjs +189 -0
  89. package/dist/chunk-ALLCJATI.mjs.map +1 -0
  90. package/dist/chunk-F6JVEIWC.mjs +158 -0
  91. package/dist/chunk-F6JVEIWC.mjs.map +1 -0
  92. package/dist/chunk-GHATS25Y.mjs +249 -0
  93. package/dist/chunk-GHATS25Y.mjs.map +1 -0
  94. package/dist/chunk-GIQDPHZQ.mjs +121 -0
  95. package/dist/chunk-GIQDPHZQ.mjs.map +1 -0
  96. package/dist/chunk-ILLGBZ6R.mjs +131 -0
  97. package/dist/chunk-ILLGBZ6R.mjs.map +1 -0
  98. package/dist/chunk-NNYU4DPD.mjs +83 -0
  99. package/dist/chunk-NNYU4DPD.mjs.map +1 -0
  100. package/dist/{chunk-ALEJXAZY.mjs → chunk-NOUFR6W2.mjs} +57 -1
  101. package/dist/chunk-NOUFR6W2.mjs.map +1 -0
  102. package/dist/chunk-ODKT7LGV.mjs +146 -0
  103. package/dist/chunk-ODKT7LGV.mjs.map +1 -0
  104. package/dist/chunk-P7RKUESQ.mjs +37 -0
  105. package/dist/chunk-P7RKUESQ.mjs.map +1 -0
  106. package/dist/chunk-RL4G7MR3.mjs +189 -0
  107. package/dist/chunk-RL4G7MR3.mjs.map +1 -0
  108. package/dist/chunk-X2CW5GF3.mjs +175 -0
  109. package/dist/chunk-X2CW5GF3.mjs.map +1 -0
  110. package/dist/chunk-YJ36ZZJQ.mjs +36 -0
  111. package/dist/chunk-YJ36ZZJQ.mjs.map +1 -0
  112. package/dist/index.d.mts +14 -1
  113. package/dist/index.d.ts +14 -1
  114. package/dist/index.js +1722 -0
  115. package/dist/index.js.map +1 -1
  116. package/dist/index.mjs +55 -1
  117. package/package.json +66 -1
  118. 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,