@apple-pie/slice 0.0.0 → 0.0.2

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 (291) hide show
  1. package/dist/cjs/chunks/Avatar-8-wPWe0V.js +68 -0
  2. package/dist/cjs/chunks/AvatarGroup-CVKmgBbD.js +39 -0
  3. package/dist/cjs/chunks/Badge-CMapJCij.js +41 -0
  4. package/dist/cjs/chunks/CheckBox-7AACxrdZ.js +76 -0
  5. package/dist/cjs/chunks/DivInput-BKKJTFeV.js +204 -0
  6. package/dist/cjs/chunks/DocIcons-BRWOzK96.js +41 -0
  7. package/dist/cjs/chunks/Dot-Dnr9M9na.js +80 -0
  8. package/dist/cjs/chunks/DrggablePanel-C6TPsDB-.js +302 -0
  9. package/dist/cjs/chunks/DropDown-D9sf_m2I.js +154 -0
  10. package/dist/cjs/chunks/EditorButtonBar-CUNDgRQd.js +244 -0
  11. package/dist/cjs/chunks/ErrorSummary-Dv44onsV.js +42 -0
  12. package/dist/cjs/chunks/FlexDiv-DZBpswHV.js +103 -0
  13. package/dist/cjs/chunks/Grouper-_kd2nU78.js +50 -0
  14. package/dist/cjs/chunks/IconButton-BfsPlKTb.js +84 -0
  15. package/dist/cjs/chunks/Logos-DSlAUz8l.js +119 -0
  16. package/dist/cjs/chunks/MessageInput-CiHFo2j8.js +399 -0
  17. package/dist/cjs/chunks/Overlay-DwCPvGB5.js +45 -0
  18. package/dist/cjs/chunks/Pager-CFtZ0IIW.js +42 -0
  19. package/dist/cjs/chunks/ProgressIndicator-C5oB7Mky.js +121 -0
  20. package/dist/cjs/chunks/RadioButton-e_y2qiPE.js +65 -0
  21. package/dist/cjs/chunks/RadioButtonList-I81UwHmM.js +116 -0
  22. package/dist/cjs/chunks/Slider-C-gn7Sby.js +285 -0
  23. package/dist/cjs/chunks/Spacer-BEY2-_PB.js +16 -0
  24. package/dist/cjs/chunks/Switch-CtkFtogd.js +43 -0
  25. package/dist/cjs/chunks/TabBar-D3bj4pjj.js +176 -0
  26. package/dist/cjs/chunks/TextArea-B1oKK3_b.js +153 -0
  27. package/dist/cjs/chunks/TextField-CiQdPP5E.js +248 -0
  28. package/dist/cjs/chunks/Tip-C2pzExut.js +91 -0
  29. package/dist/cjs/chunks/Toast-DrijUwoL.js +141 -0
  30. package/dist/cjs/chunks/UIButton-CH4p-8yq.js +317 -0
  31. package/dist/cjs/chunks/UIButtonBar-0fHPB0ww.js +58 -0
  32. package/dist/cjs/chunks/UICard-DBDSyT7E.js +36 -0
  33. package/dist/cjs/chunks/UIChip-kjhvRrOV.js +93 -0
  34. package/dist/cjs/chunks/UIFileIcon-ZrbDIeYz.js +54 -0
  35. package/dist/cjs/chunks/UILabel-DkBE2AIt.js +116 -0
  36. package/dist/cjs/chunks/_types-CoWzQFsT.js +714 -0
  37. package/dist/cjs/chunks/sharedTypes-BvTjh6M5.js +9 -0
  38. package/dist/cjs/chunks/style-inject.es-XZHJH68X.js +30 -0
  39. package/dist/cjs/chunks/tipStore-C9oV9SIh.js +23 -0
  40. package/dist/cjs/chunks/toastStore-C-ETP9H6.js +23 -0
  41. package/dist/cjs/chunks/tslib.es6-4H29ixHs.js +48 -0
  42. package/dist/cjs/chunks/utils-CbayehuI.js +126 -0
  43. package/dist/cjs/hooks/useDoubleClick.js +26 -0
  44. package/dist/cjs/hooks/useKeyboardShortcuts.js +42 -0
  45. package/dist/cjs/hooks/useLastUpdated.js +53 -0
  46. package/dist/cjs/hooks/useLocalStore.js +52 -0
  47. package/dist/cjs/hooks/useObserveResize.js +56 -0
  48. package/dist/cjs/hooks/useObserveTheme.js +36 -0
  49. package/dist/cjs/hooks/useTheme.js +85 -0
  50. package/dist/cjs/hooks/useToolTip.js +36 -0
  51. package/dist/cjs/hooks/useTrackRenders.js +38 -0
  52. package/dist/cjs/hooks/useWindow.js +64 -0
  53. package/dist/cjs/hooks.js +32 -0
  54. package/dist/cjs/index.js +121 -0
  55. package/dist/cjs/providers/ThemeProvider.js +51 -0
  56. package/dist/cjs/providers.js +13 -0
  57. package/dist/cjs/stores/tip.js +12 -0
  58. package/dist/cjs/stores/toast.js +12 -0
  59. package/dist/cjs/stores.js +18 -0
  60. package/dist/cjs/theme/colors.js +383 -0
  61. package/dist/cjs/theme/corners.js +14 -0
  62. package/dist/cjs/theme/themes.js +23 -0
  63. package/dist/cjs/theme/type.js +316 -0
  64. package/dist/cjs/theme.js +13 -0
  65. package/dist/cjs/uikit/Avatar.js +11 -0
  66. package/dist/cjs/uikit/AvatarGroup.js +12 -0
  67. package/dist/cjs/uikit/Badge.js +11 -0
  68. package/dist/cjs/uikit/CheckBox.js +21 -0
  69. package/dist/cjs/uikit/DivInput.js +13 -0
  70. package/dist/cjs/uikit/DocIcon.js +17 -0
  71. package/dist/cjs/uikit/Dot.js +12 -0
  72. package/dist/cjs/uikit/DraggablePanel.js +20 -0
  73. package/dist/cjs/uikit/DropDown.js +20 -0
  74. package/dist/cjs/uikit/EditorButtonBar.js +27 -0
  75. package/dist/cjs/uikit/ErrorSummary.js +12 -0
  76. package/dist/cjs/uikit/FlexDiv.js +12 -0
  77. package/dist/cjs/uikit/Grouper.js +22 -0
  78. package/dist/cjs/uikit/Icon.js +22 -0
  79. package/dist/cjs/uikit/IconButton.js +24 -0
  80. package/dist/cjs/uikit/Logos.js +17 -0
  81. package/dist/cjs/uikit/MessageInput.js +29 -0
  82. package/dist/cjs/uikit/Overlay.js +12 -0
  83. package/dist/cjs/uikit/Pager.js +12 -0
  84. package/dist/cjs/uikit/Progress.js +20 -0
  85. package/dist/cjs/uikit/RadioButton.js +25 -0
  86. package/dist/cjs/uikit/RadioButtonList.js +26 -0
  87. package/dist/cjs/uikit/Slider.js +13 -0
  88. package/dist/cjs/uikit/Spacer.js +10 -0
  89. package/dist/cjs/uikit/Switch.js +12 -0
  90. package/dist/cjs/uikit/TabBar.js +25 -0
  91. package/dist/cjs/uikit/TextArea.js +26 -0
  92. package/dist/cjs/uikit/Textfield.js +27 -0
  93. package/dist/cjs/uikit/Tip.js +13 -0
  94. package/dist/cjs/uikit/Toast.js +25 -0
  95. package/dist/cjs/uikit/UIButton.js +25 -0
  96. package/dist/cjs/uikit/UIButtonBar.js +25 -0
  97. package/dist/cjs/uikit/UICard.js +20 -0
  98. package/dist/cjs/uikit/UIChip.js +21 -0
  99. package/dist/cjs/uikit/UIFileIcon.js +17 -0
  100. package/dist/cjs/uikit/UILabel.js +18 -0
  101. package/dist/esm/chunks/Avatar-D_muqPrW.js +66 -0
  102. package/dist/esm/chunks/AvatarGroup-D8Xmrn52.js +37 -0
  103. package/dist/esm/chunks/Badge-PPf5Uvw3.js +39 -0
  104. package/dist/esm/chunks/CheckBox-CswFI0Xc.js +74 -0
  105. package/dist/esm/chunks/DivInput-iKFkeU2F.js +202 -0
  106. package/dist/esm/chunks/DocIcons-CbOX4n8Y.js +39 -0
  107. package/dist/esm/chunks/Dot-B84UVs2e.js +78 -0
  108. package/dist/esm/chunks/DrggablePanel-CYYwTmFd.js +300 -0
  109. package/dist/esm/chunks/DropDown-D4t6EhKL.js +152 -0
  110. package/dist/esm/chunks/EditorButtonBar-FnMa8Zv2.js +242 -0
  111. package/dist/esm/chunks/ErrorSummary-DhU5SKPt.js +40 -0
  112. package/dist/esm/chunks/FlexDiv-CmMpORgn.js +101 -0
  113. package/dist/esm/chunks/Grouper-BbreOXI9.js +48 -0
  114. package/dist/esm/chunks/IconButton-CguHGkBM.js +82 -0
  115. package/dist/esm/chunks/Logos-DwZP-TR2.js +117 -0
  116. package/dist/esm/chunks/MessageInput-DMHzCwjO.js +397 -0
  117. package/dist/esm/chunks/Overlay-CCBy7n7H.js +43 -0
  118. package/dist/esm/chunks/Pager-BsSti93V.js +40 -0
  119. package/dist/esm/chunks/ProgressIndicator-BVukxMU6.js +118 -0
  120. package/dist/esm/chunks/RadioButton-B5BxQI0R.js +63 -0
  121. package/dist/esm/chunks/RadioButtonList-C2z8McAD.js +114 -0
  122. package/dist/esm/chunks/Slider-C-PcWqTz.js +283 -0
  123. package/dist/esm/chunks/Spacer-DbZSG5x3.js +14 -0
  124. package/dist/esm/chunks/Switch-DjfrSiQz.js +41 -0
  125. package/dist/esm/chunks/TabBar-BSBcgTbd.js +174 -0
  126. package/dist/esm/chunks/TextArea-COM0UPo2.js +151 -0
  127. package/dist/esm/chunks/TextField-Bh24bRWs.js +246 -0
  128. package/dist/esm/chunks/Tip-Ct19Ljul.js +89 -0
  129. package/dist/esm/chunks/Toast-BR0oMX6z.js +139 -0
  130. package/dist/esm/chunks/UIButton-DKx-_O8h.js +315 -0
  131. package/dist/esm/chunks/UIButtonBar-BNdA5eVq.js +56 -0
  132. package/dist/esm/chunks/UICard-Dn5f3wg8.js +34 -0
  133. package/dist/esm/chunks/UIChip-DqnGeVyR.js +91 -0
  134. package/dist/esm/chunks/UIFileIcon-qGxIPsJJ.js +52 -0
  135. package/dist/esm/chunks/UILabel-RnbodPCS.js +114 -0
  136. package/dist/esm/chunks/_types-BaYeLEWK.js +712 -0
  137. package/dist/esm/chunks/sharedTypes-BfZzG1KX.js +9 -0
  138. package/dist/esm/chunks/style-inject.es-tgCJW-Cu.js +28 -0
  139. package/dist/esm/chunks/tipStore-nBYJ6tmE.js +17 -0
  140. package/dist/esm/chunks/toastStore-r3pvNa28.js +17 -0
  141. package/dist/esm/chunks/tslib.es6-0pkUdtrF.js +45 -0
  142. package/dist/esm/chunks/utils-BRZK2Drn.js +119 -0
  143. package/dist/esm/hooks/useDoubleClick.js +24 -0
  144. package/dist/esm/hooks/useKeyboardShortcuts.js +40 -0
  145. package/dist/esm/hooks/useLastUpdated.js +51 -0
  146. package/dist/esm/hooks/useLocalStore.js +50 -0
  147. package/dist/esm/hooks/useObserveResize.js +54 -0
  148. package/dist/esm/hooks/useObserveTheme.js +34 -0
  149. package/dist/esm/hooks/useTheme.js +83 -0
  150. package/dist/esm/hooks/useToolTip.js +34 -0
  151. package/dist/esm/hooks/useTrackRenders.js +36 -0
  152. package/dist/esm/hooks/useWindow.js +62 -0
  153. package/dist/esm/hooks.js +14 -0
  154. package/dist/esm/index.js +57 -0
  155. package/dist/esm/providers/ThemeProvider.js +49 -0
  156. package/dist/esm/providers.js +7 -0
  157. package/dist/esm/stores/tip.js +2 -0
  158. package/dist/esm/stores/toast.js +2 -0
  159. package/dist/esm/stores.js +3 -0
  160. package/dist/esm/theme/colors.js +377 -0
  161. package/dist/esm/theme/corners.js +12 -0
  162. package/dist/esm/theme/themes.js +20 -0
  163. package/dist/esm/theme/type.js +312 -0
  164. package/dist/esm/theme.js +4 -0
  165. package/dist/esm/uikit/Avatar.js +5 -0
  166. package/dist/esm/uikit/AvatarGroup.js +6 -0
  167. package/dist/esm/uikit/Badge.js +5 -0
  168. package/dist/esm/uikit/CheckBox.js +15 -0
  169. package/dist/esm/uikit/DivInput.js +7 -0
  170. package/dist/esm/uikit/DocIcon.js +11 -0
  171. package/dist/esm/uikit/Dot.js +6 -0
  172. package/dist/esm/uikit/DraggablePanel.js +14 -0
  173. package/dist/esm/uikit/DropDown.js +14 -0
  174. package/dist/esm/uikit/EditorButtonBar.js +21 -0
  175. package/dist/esm/uikit/ErrorSummary.js +6 -0
  176. package/dist/esm/uikit/FlexDiv.js +6 -0
  177. package/dist/esm/uikit/Grouper.js +16 -0
  178. package/dist/esm/uikit/Icon.js +12 -0
  179. package/dist/esm/uikit/IconButton.js +18 -0
  180. package/dist/esm/uikit/Logos.js +11 -0
  181. package/dist/esm/uikit/MessageInput.js +23 -0
  182. package/dist/esm/uikit/Overlay.js +6 -0
  183. package/dist/esm/uikit/Pager.js +6 -0
  184. package/dist/esm/uikit/Progress.js +13 -0
  185. package/dist/esm/uikit/RadioButton.js +19 -0
  186. package/dist/esm/uikit/RadioButtonList.js +20 -0
  187. package/dist/esm/uikit/Slider.js +7 -0
  188. package/dist/esm/uikit/Spacer.js +4 -0
  189. package/dist/esm/uikit/Switch.js +6 -0
  190. package/dist/esm/uikit/TabBar.js +19 -0
  191. package/dist/esm/uikit/TextArea.js +20 -0
  192. package/dist/esm/uikit/Textfield.js +21 -0
  193. package/dist/esm/uikit/Tip.js +7 -0
  194. package/dist/esm/uikit/Toast.js +15 -0
  195. package/dist/esm/uikit/UIButton.js +19 -0
  196. package/dist/esm/uikit/UIButtonBar.js +19 -0
  197. package/dist/esm/uikit/UICard.js +14 -0
  198. package/dist/esm/uikit/UIChip.js +15 -0
  199. package/dist/esm/uikit/UIFileIcon.js +11 -0
  200. package/dist/esm/uikit/UILabel.js +12 -0
  201. package/dist/types/hooks/index.d.ts +9 -2
  202. package/dist/types/hooks/useDoubleClick/useDoubleClick.d.ts +1 -0
  203. package/dist/types/hooks/useKeyboardShortcuts/useKeyboardShortcuts.d.ts +6 -0
  204. package/dist/types/hooks/useLastUpdated/useLastUpdated.d.ts +4 -0
  205. package/dist/types/hooks/useLocalStore/useLocalStore.d.ts +1 -0
  206. package/dist/types/hooks/{useObserveResize.d.ts → useObserveResize/useObserveResize.d.ts} +1 -1
  207. package/dist/types/hooks/useObserveTheme/useObserveTheme.d.ts +2 -0
  208. package/dist/types/hooks/useTheme/useTheme.d.ts +47 -0
  209. package/dist/types/hooks/useToolTip/useToolTip.d.ts +6 -0
  210. package/dist/types/hooks/useWindow/useWindow.d.ts +15 -0
  211. package/dist/types/index.d.ts +9 -4
  212. package/dist/types/providers/ThemeProvider.d.ts +1 -0
  213. package/dist/types/stores/index.d.ts +2 -0
  214. package/dist/types/stores/tip/_types.d.ts +8 -0
  215. package/dist/types/stores/tip/index.d.ts +2 -0
  216. package/dist/types/stores/tip/tipStore.d.ts +12 -0
  217. package/dist/types/stores/toast/_types.d.ts +14 -0
  218. package/dist/types/stores/toast/index.d.ts +2 -0
  219. package/dist/types/stores/toast/toastStore.d.ts +12 -0
  220. package/dist/types/theme/colors/colors.d.ts +2 -0
  221. package/dist/types/theme/colors/types.d.ts +14 -0
  222. package/dist/types/theme/components/BrandColors.d.ts +1 -0
  223. package/dist/types/theme/components/ColorTile.d.ts +6 -0
  224. package/dist/types/theme/components/ColorTileGroup.d.ts +6 -0
  225. package/dist/types/theme/components/ThemeColors.d.ts +2 -0
  226. package/dist/types/theme/components/_types.d.ts +15 -0
  227. package/dist/types/theme/index.d.ts +1 -1
  228. package/dist/types/theme/themes.d.ts +3 -3
  229. package/dist/types/theme/type/type.d.ts +3 -0
  230. package/dist/types/uikit/Avatar/_types.d.ts +3 -2
  231. package/dist/types/uikit/AvatarGroup/_types.d.ts +4 -2
  232. package/dist/types/uikit/Badge/_types.d.ts +5 -2
  233. package/dist/types/uikit/CheckBox/_types.d.ts +5 -2
  234. package/dist/types/uikit/DivInput/_types.d.ts +4 -2
  235. package/dist/types/uikit/DocIcon/_types.d.ts +5 -2
  236. package/dist/types/uikit/Dot/_types.d.ts +6 -2
  237. package/dist/types/uikit/DraggablePanel/DrggablePanel.d.ts +3 -2
  238. package/dist/types/uikit/DropDown/DropDown.d.ts +2 -1
  239. package/dist/types/uikit/DropDown/_types.d.ts +5 -2
  240. package/dist/types/uikit/EditorButtonBar/_types.d.ts +4 -2
  241. package/dist/types/uikit/ErrorSummary/ErrorSummary.d.ts +2 -1
  242. package/dist/types/uikit/ErrorSummary/_types.d.ts +5 -2
  243. package/dist/types/uikit/FlexDiv/FlexDiv.d.ts +59 -2
  244. package/dist/types/uikit/FlexDiv/_types.d.ts +8 -2
  245. package/dist/types/uikit/Grouper/_types.d.ts +6 -2
  246. package/dist/types/uikit/Icon/_types.d.ts +7 -2
  247. package/dist/types/uikit/Icon/iconRegistry.d.ts +1 -0
  248. package/dist/types/uikit/IconButton/_types.d.ts +4 -2
  249. package/dist/types/uikit/Logos/_types.d.ts +8 -4
  250. package/dist/types/uikit/MessageInput/InputField/_types.d.ts +5 -2
  251. package/dist/types/uikit/Overlay/_types.d.ts +5 -2
  252. package/dist/types/uikit/Pager/_types.d.ts +5 -2
  253. package/dist/types/uikit/Progress/DoneCheck/_types.d.ts +5 -2
  254. package/dist/types/uikit/Progress/ProgressIndicator/_types.d.ts +5 -2
  255. package/dist/types/uikit/RadioButton/_types.d.ts +5 -2
  256. package/dist/types/uikit/RadioButtonList/_types.d.ts +5 -2
  257. package/dist/types/uikit/Slider/_types.d.ts +5 -2
  258. package/dist/types/uikit/Spacer/_types.d.ts +5 -2
  259. package/dist/types/uikit/Switch/Switch.d.ts +1 -1
  260. package/dist/types/uikit/Switch/_types.d.ts +5 -4
  261. package/dist/types/uikit/TabBar/_types.d.ts +5 -2
  262. package/dist/types/uikit/TextArea/_types.d.ts +5 -2
  263. package/dist/types/uikit/Textfield/_types.d.ts +4 -2
  264. package/dist/types/uikit/Tip/Tip.d.ts +3 -0
  265. package/dist/types/uikit/Tip/_types.d.ts +28 -0
  266. package/dist/types/uikit/Tip/index.d.ts +2 -0
  267. package/dist/types/uikit/Toast/Toast.d.ts +3 -0
  268. package/dist/types/uikit/Toast/_types.d.ts +24 -0
  269. package/dist/types/uikit/Toast/index.d.ts +2 -0
  270. package/dist/types/uikit/UIButton/UIButton.d.ts +73 -2
  271. package/dist/types/uikit/UIButton/_types.d.ts +4 -2
  272. package/dist/types/uikit/UIButtonBar/_types.d.ts +5 -2
  273. package/dist/types/uikit/UICard/_types.d.ts +5 -2
  274. package/dist/types/uikit/UIChip/_types.d.ts +4 -2
  275. package/dist/types/uikit/UIFileIcon/UIFileIcon.d.ts +1 -1
  276. package/dist/types/uikit/UIFileIcon/_types.d.ts +4 -2
  277. package/dist/types/uikit/UILabel/_types.d.ts +4 -2
  278. package/dist/types/util/utils.d.ts +12 -0
  279. package/package.json +80 -5
  280. package/dist/colors.css +0 -237
  281. package/dist/index.esm.js +0 -4831
  282. package/dist/index.esm.js.map +0 -1
  283. package/dist/index.js +0 -4873
  284. package/dist/index.js.map +0 -1
  285. package/dist/type.css +0 -16
  286. package/dist/types/hooks/useMayaTheme.d.ts +0 -7
  287. package/dist/types/hooks/useTheme.d.ts +0 -2
  288. package/dist/types/uikit/Avatar/AvatarInline.stories.d.ts +0 -7
  289. /package/dist/{flexBox.module.css → css/flexBox.module.css} +0 -0
  290. /package/dist/{type.module.css → css/type.module.css} +0 -0
  291. /package/dist/types/hooks/{useTrackRenders.d.ts → useTrackRenders/useTrackRenders.d.ts} +0 -0
@@ -0,0 +1,43 @@
1
+ 'use strict';
2
+
3
+ var tslib_es6 = require('./tslib.es6-4H29ixHs.js');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var react = require('motion/react');
6
+ var React = require('react');
7
+ var styleInject_es = require('./style-inject.es-XZHJH68X.js');
8
+
9
+ var css_248z = ".flexBox-module_row__PWxbe {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_rowBetween__27lKK {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_rowStart__nJZnW {\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_rowEnd__dHcOU {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_column__MP2Xd {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnStart__Kg8cV {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-start;\n\talign-items: flex-start;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnStartCenter__zcmtk {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-start;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnBetween__157yI {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnEnd__u2nwI {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-end;\n\talign-items: flex-end;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.Switch-module_wrapper__OqM0E {\n\tpadding: var(--switch-padding) !important;\n\twidth: var(--switch-width);\n\theight: var(--switch-height);\n\tborder-radius: 100px;\n\tcursor: pointer;\n\tbackground: var(--switch-bg-color);\n\ttransition: background 0.25s ease-in-out 0s;\n}\n\n.Switch-module_knob__BLGda {\n\twidth: var(--switch-knob-size);\n\theight: var(--switch-knob-size);\n\tbackground: var(--switch-knob-color);\n\tborder-radius: 100%;\n}\n";
10
+ var css = {"wrapper":"Switch-module_wrapper__OqM0E flexBox-module_row__PWxbe","knob":"Switch-module_knob__BLGda flexBox-module_row__PWxbe"};
11
+ styleInject_es.styleInject(css_248z);
12
+
13
+ const Switch = React.memo((props) => {
14
+ const { state = false, height = 22, width = 44, padding = 3, bgColorOn = 'var(--feedback-positive)', bgColorOff = 'var(--core-text-disabled)', knobColor = 'var(--core-surface-primary)', onChange = () => null } = props, divAttributes = tslib_es6.__rest(props, ["state", "height", "width", "padding", "bgColorOn", "bgColorOff", "knobColor", "onChange"]);
15
+ const { id: divId, className, style } = divAttributes, rest = tslib_es6.__rest(divAttributes, ["id", "className", "style"]);
16
+ const divStyle = style !== null && style !== void 0 ? style : {};
17
+ const divClass = className ? ` ${className}` : '';
18
+ const [on, setOn] = React.useState(state);
19
+ // Sync with prop changes
20
+ React.useEffect(() => {
21
+ setOn(state);
22
+ }, [state]);
23
+ const handleClick = React.useCallback(() => {
24
+ setOn(!on);
25
+ onChange(!on);
26
+ }, [on, onChange]);
27
+ // Memoize style object
28
+ const justify = React.useMemo(() => ({ justifyContent: on ? 'flex-end' : 'flex-start' }), [on]);
29
+ // memo css vars
30
+ const cssVars = React.useMemo(() => {
31
+ return {
32
+ '--switch-width': `${width}px`,
33
+ '--switch-height': `${height}px`,
34
+ '--switch-padding': `${padding}px`,
35
+ '--switch-knob-size': `${height - padding * 2}px`,
36
+ '--switch-knob-color': knobColor,
37
+ '--switch-bg-color': on ? bgColorOn : bgColorOff,
38
+ };
39
+ }, [width, height, padding, bgColorOff, bgColorOn, on, knobColor]);
40
+ return (jsxRuntime.jsx(react.motion.div, Object.assign({ id: divId, className: `${css.wrapper}${divClass}`, style: Object.assign(Object.assign(Object.assign({}, divStyle), justify), cssVars), onClick: handleClick }, rest, { children: jsxRuntime.jsx(react.motion.div, { className: css.knob, layout: 'preserve-aspect' }) })));
41
+ });
42
+
43
+ exports.Switch = Switch;
@@ -0,0 +1,176 @@
1
+ 'use strict';
2
+
3
+ var tslib_es6 = require('./tslib.es6-4H29ixHs.js');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var React = require('react');
6
+ var hooks_useTheme = require('../hooks/useTheme.js');
7
+ require('../theme/colors.js');
8
+ require('../hooks/useWindow.js');
9
+ var Badge = require('./Badge-CMapJCij.js');
10
+ var _types = require('./_types-CoWzQFsT.js');
11
+ var IconButton = require('./IconButton-BfsPlKTb.js');
12
+ var sharedTypes = require('./sharedTypes-BvTjh6M5.js');
13
+ var styleInject_es = require('./style-inject.es-XZHJH68X.js');
14
+
15
+ var css_248z = ".flexBox-module_row__PWxbe {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_rowBetween__27lKK {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_rowStart__nJZnW {\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_rowEnd__dHcOU {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_column__MP2Xd {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnStart__Kg8cV {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-start;\n\talign-items: flex-start;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnStartCenter__zcmtk {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-start;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnBetween__157yI {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnEnd__u2nwI {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-end;\n\talign-items: flex-end;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.type-module_body-xs-regular__QWEzl {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-xs);\n\tline-height: 133.33%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-xs-medium__FxEAv {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-xs);\n\tline-height: 133.33%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-xs-bold__rf7AV {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-xs);\n\tline-height: 133.33%;\n\ttext-decoration: none;\n\tletter-spacing: 0.25px;\n}.type-module_body-s-regular__8-FO- {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-s);\n\tline-height: 142.86%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-s-medium__qyYq- {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-s);\n\tline-height: 142.86%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-s-bold__7GQ5Z {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-s);\n\tline-height: 142.86%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-m-regular__Qtp5G {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-m);\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-m-medium__Ieh9K {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-m);\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-m-bold__0lZ3I {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-m);\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-l-regular__Ar4d3 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-l);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-l-medium__6tV1n {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-l);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-l-bold__I8Q1v {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-l);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_heading-s-bold__QFgN8 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 650;\n\tfont-size: 20px;\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-s-medium__jGIb2 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 560;\n\tfont-size: 20px;\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-m-bold__tdBSi {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 650;\n\tfont-size: 24px;\n\tline-height: 116.67%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-m-medium__-7Uyu {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 560;\n\tfont-size: 24px;\n\tline-height: 116.67%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-l-medium__8hGYF {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 560;\n\tfont-size: 28px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-l-bold__Cryjg {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 650;\n\tfont-size: 28px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}\n\n.TabBar-module_wrapper__z8Cvg {\n\tgap: var(--tab-bar-gap);\n\tborder-bottom: var(--tab-bar-border-bottom) solid var(--core-outline-primary);\n\theight: var(--tab-bar-height);\n\twidth: var(--tab-bar-width);\n\tcursor: pointer;\n}\n\n.TabBar-module_option__Og-E4 {\n\tgap: var(--tab-bar-option-gap);\n\tcolor: var(--tab-bar-option-color);\n\tpadding: var(--tab-bar-option-padding) !important;\n\theight: 100%;\n\twidth: var(--tab-bar-option-width);\n\tflex: var(--tab-bar-option-flex);\n\twhite-space: nowrap;\n\tbox-shadow: 0 var(--tab-bar-option-border) 0 0 var(--core-text-special);\n\tcursor: var(--tab-bar-option-cursor);\n\t-webkit-user-select: none;\n\tuser-select: none;\n}\n\n.TabBar-module_icon__LU5Rp {\n\tmax-height: var(--tab-bar-icon-size);\n\tmin-height: var(--tab-bar-icon-size);\n\tmax-width: var(--tab-bar-icon-size);\n\tmin-width: var(--tab-bar-icon-size);\n}\n\n.TabBar-module_close__ytzs5 {\n\theight: 100%;\n\tpadding: var(--tab-bar-close-padding) !important;\n\tborder-left: 1px solid var(--core-outline-primary);\n\twidth: min-content;\n}\n";
16
+ var css = {"wrapper":"TabBar-module_wrapper__z8Cvg flexBox-module_rowStart__nJZnW","option":"TabBar-module_option__Og-E4 flexBox-module_row__PWxbe type-module_body-m-regular__Qtp5G","icon":"TabBar-module_icon__LU5Rp flexBox-module_row__PWxbe","close":"TabBar-module_close__ytzs5 flexBox-module_row__PWxbe"};
17
+ styleInject_es.styleInject(css_248z);
18
+
19
+ const placeholderOptions = [
20
+ { name: 'Option 1', value: 'Option 1', icon: null },
21
+ { name: 'Option 2', value: 'Option 2', icon: 'wallet' },
22
+ ];
23
+
24
+ const TabBar = React.memo((props) => {
25
+ const { options = placeholderOptions, selected = 0, border = true, underline = true, height = '100%', width = '100%', tabWidth = 'distribute', padding = 8, iconSize = 20, iconGap = 8, tabGap = 0, disabled = false, hasClose = false, closeWidth = 'auto', selectedValue = null, onChange = () => null, onTabChange = () => null, onClose = () => null, onToolTip = () => null } = props, divAttributes = tslib_es6.__rest(props, ["options", "selected", "border", "underline", "height", "width", "tabWidth", "padding", "iconSize", "iconGap", "tabGap", "disabled", "hasClose", "closeWidth", "selectedValue", "onChange", "onTabChange", "onClose", "onToolTip"]);
26
+ const { id: divId, className, style } = divAttributes, rest = tslib_es6.__rest(divAttributes, ["id", "className", "style"]);
27
+ const divStyle = style !== null && style !== void 0 ? style : {};
28
+ const divClass = className ? ` ${className}` : '';
29
+ const [index, setIndex] = React.useState(selected);
30
+ React.useEffect(() => {
31
+ let selectedIndex = 0;
32
+ if (selectedValue && options) {
33
+ selectedIndex = options.findIndex((option) => option.value === selectedValue);
34
+ setIndex(selectedIndex === -1 ? selected : selectedIndex);
35
+ }
36
+ else {
37
+ setIndex(selected);
38
+ }
39
+ }, [selected, selectedValue, options]);
40
+ // memo handleClick
41
+ const handleClick = React.useCallback((i) => {
42
+ setIndex(i);
43
+ onChange(i);
44
+ onTabChange(options[i]);
45
+ }, [onChange, onTabChange, options]);
46
+ // memo handleOptionClick
47
+ const handleOptionClick = React.useCallback((i) => {
48
+ onToolTip(null);
49
+ handleClick(i);
50
+ }, [onToolTip, handleClick]);
51
+ // memo rendered options
52
+ const renderedOptions = React.useMemo(() => options.map((option, i) => (jsxRuntime.jsx(Option, { label: option.name, value: i, showToolTip: option.toolTip, selected: i === index, padding: padding, icon: option.icon, iconSize: iconSize, iconGap: iconGap, disabled: disabled, count: option.count, onClick: handleOptionClick, onToolTip: onToolTip, underline: underline, tabWidth: tabWidth }, `${i}_option_${option.name}`))), [
53
+ options,
54
+ index,
55
+ padding,
56
+ iconSize,
57
+ iconGap,
58
+ disabled,
59
+ underline,
60
+ tabWidth,
61
+ onToolTip,
62
+ handleOptionClick,
63
+ ]);
64
+ const setStyle = React.useCallback((value) => {
65
+ if (typeof value === 'string')
66
+ return value;
67
+ return `${value}px`;
68
+ }, []);
69
+ const cssVars = React.useMemo(() => {
70
+ return {
71
+ '--tab-bar-gap': `${tabGap}px`,
72
+ '--tab-bar-height': `${setStyle(height)}px`,
73
+ '--tab-bar-width': setStyle(width),
74
+ '--tab-bar-border-bottom': `${border ? '1px' : '0'}`,
75
+ '--tab-bar-close-width': `${closeWidth}px`,
76
+ '--tab-bar-close-padding': padding ? `${padding}px` : '8px',
77
+ };
78
+ }, [tabGap, height, width, border, setStyle, closeWidth, padding]);
79
+ return (jsxRuntime.jsxs("div", Object.assign({ id: divId, className: `${css.wrapper}${divClass}`, style: Object.assign(Object.assign({}, divStyle), cssVars) }, rest, { children: [renderedOptions, hasClose && (jsxRuntime.jsx("div", { className: css.close, children: jsxRuntime.jsx(IconButton.IconButton, { iconSize: iconSize - 4, frameSize: iconSize, toggle: false, hover: true, icon: 'x', onClick: onClose }) }))] })));
80
+ });
81
+ TabBar.displayName = 'TabBar';
82
+ const Option = React.memo((props) => {
83
+ const theme = hooks_useTheme.useTheme();
84
+ const { label = 'Option', value = 0, icon = null, selected = false, onClick = () => null, onToolTip = () => null, padding = 8, iconSize = 20, iconGap = 6, disabled = false, showToolTip = null, underline = true, tabWidth = 'distribute', count = 0, } = props;
85
+ const ref = React.useRef(null);
86
+ // memo icon color
87
+ const strokeColor = React.useMemo(() => {
88
+ if (!disabled && selected)
89
+ return theme.current.colors['core-text-special'];
90
+ if (disabled)
91
+ return theme.current.colors['core-text-disabled'];
92
+ return theme.current.colors['core-text-primary'];
93
+ }, [disabled, selected, theme]);
94
+ // memo handleMouseOver
95
+ const handleMouseOver = React.useCallback((e) => {
96
+ onToolTip(null);
97
+ if (showToolTip && ref.current) {
98
+ const tip = {
99
+ type: sharedTypes.ToolTipType.button,
100
+ payload: { label: showToolTip },
101
+ event: e,
102
+ ref,
103
+ };
104
+ onToolTip(tip);
105
+ }
106
+ }, [showToolTip, onToolTip]);
107
+ // memo handleMouseLeave
108
+ const handleMouseLeave = React.useCallback(() => {
109
+ if (showToolTip)
110
+ onToolTip(null);
111
+ }, [showToolTip, onToolTip]);
112
+ // memo color
113
+ const textColor = React.useMemo(() => {
114
+ if (disabled)
115
+ return 'var(--core-text-disabled)';
116
+ if (selected)
117
+ return 'var(--core-text-special)';
118
+ return 'var(--core-text-primary)';
119
+ }, [disabled, selected]);
120
+ // memo tab width
121
+ const setTabWidth = React.useMemo(() => {
122
+ if (tabWidth === 'min-content')
123
+ return 'min-content';
124
+ if (tabWidth === 'distribute')
125
+ return 'unset';
126
+ return `${tabWidth}px`;
127
+ }, [tabWidth]);
128
+ // memo flex tab
129
+ const setTabFlex = React.useMemo(() => {
130
+ if (tabWidth === 'distribute')
131
+ return '1';
132
+ return 'unset';
133
+ }, [tabWidth]);
134
+ // memo underline
135
+ const setUnderline = React.useMemo(() => {
136
+ if (selected && underline && !disabled)
137
+ return '1px';
138
+ return '0';
139
+ }, [underline, disabled, selected]);
140
+ const cssVars = React.useMemo(() => {
141
+ return {
142
+ '--tab-bar-option-border': setUnderline,
143
+ '--tab-bar-option-padding': `${padding}px`,
144
+ '--tab-bar-option-icon-size': `${iconSize}px`,
145
+ '--tab-bar-option-cursor': disabled ? 'default' : 'pointer',
146
+ '--tab-bar-option-gap': `${iconGap !== null && iconGap !== void 0 ? iconGap : 0}px`,
147
+ '--tab-bar-option-color': textColor,
148
+ '--tab-bar-option-width': setTabWidth,
149
+ '--tab-bar-option-flex': setTabFlex,
150
+ };
151
+ }, [
152
+ padding,
153
+ iconSize,
154
+ disabled,
155
+ textColor,
156
+ iconGap,
157
+ setTabFlex,
158
+ setTabWidth,
159
+ setUnderline,
160
+ ]);
161
+ return (jsxRuntime.jsxs("div", { className: css.option, style: cssVars, ref: ref, "aria-selected": selected, onMouseEnter: handleMouseOver, onMouseLeave: handleMouseLeave, onClick: () => onClick(value), onKeyDown: () => onClick(value), children: [icon && (jsxRuntime.jsx("div", { className: css.icon, children: jsxRuntime.jsx(_types.Icon, { name: icon, size: iconSize, strokeColor: strokeColor }) })), label, count !== 0 && (jsxRuntime.jsx(Badge.Badge, { variant: 'light', hideNull: false, count: count }))] }));
162
+ }, (prevProps, nextProps) => {
163
+ // Custom comparison for performance
164
+ return (prevProps.selected === nextProps.selected &&
165
+ prevProps.underline === nextProps.underline &&
166
+ prevProps.tabWidth === nextProps.tabWidth &&
167
+ prevProps.disabled === nextProps.disabled &&
168
+ prevProps.iconGap === nextProps.iconGap &&
169
+ prevProps.iconSize === nextProps.iconSize &&
170
+ prevProps.count === nextProps.count &&
171
+ prevProps.label === nextProps.label &&
172
+ prevProps.icon === nextProps.icon);
173
+ });
174
+ Option.displayName = 'TabOption';
175
+
176
+ exports.TabBar = TabBar;
@@ -0,0 +1,153 @@
1
+ 'use strict';
2
+
3
+ var tslib_es6 = require('./tslib.es6-4H29ixHs.js');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var React = require('react');
6
+ var UIButton = require('./UIButton-CH4p-8yq.js');
7
+ var styleInject_es = require('./style-inject.es-XZHJH68X.js');
8
+
9
+ var css_248z = ".flexBox-module_row__PWxbe {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_rowBetween__27lKK {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_rowStart__nJZnW {\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_rowEnd__dHcOU {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_column__MP2Xd {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnStart__Kg8cV {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-start;\n\talign-items: flex-start;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnStartCenter__zcmtk {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-start;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnBetween__157yI {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\talign-items: center;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.flexBox-module_columnEnd__u2nwI {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-end;\n\talign-items: flex-end;\n\tbox-sizing: border-box;\n\tpadding: 0;\n\tmargin: 0;\n}.type-module_body-xs-regular__QWEzl {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-xs);\n\tline-height: 133.33%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-xs-medium__FxEAv {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-xs);\n\tline-height: 133.33%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-xs-bold__rf7AV {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-xs);\n\tline-height: 133.33%;\n\ttext-decoration: none;\n\tletter-spacing: 0.25px;\n}.type-module_body-s-regular__8-FO- {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-s);\n\tline-height: 142.86%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-s-medium__qyYq- {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-s);\n\tline-height: 142.86%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-s-bold__7GQ5Z {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-s);\n\tline-height: 142.86%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-m-regular__Qtp5G {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-m);\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-m-medium__Ieh9K {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-m);\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_body-m-bold__0lZ3I {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-m);\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_body-l-regular__Ar4d3 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-l);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-l-medium__6tV1n {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-l);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-l-bold__I8Q1v {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-l);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_heading-s-bold__QFgN8 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 650;\n\tfont-size: 20px;\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-s-medium__jGIb2 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 560;\n\tfont-size: 20px;\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-m-bold__tdBSi {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 650;\n\tfont-size: 24px;\n\tline-height: 116.67%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-m-medium__-7Uyu {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 560;\n\tfont-size: 24px;\n\tline-height: 116.67%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-l-medium__8hGYF {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 560;\n\tfont-size: 28px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-l-bold__Cryjg {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 650;\n\tfont-size: 28px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}\n\n.TextArea-module_wrapper__vgfIH {\n\tposition: relative;\n\tpadding: var(--ta-padding) !important;\n\twidth: var(--ta-width);\n\theight: auto;\n\tborder-radius: var(--ta-border-radius);\n\tbackground-color: var(--ta-bg-color);\n\tbox-shadow: 0 0 0 1px var(--ta-border-color);\n\ttransition: all 0.25s ease-in-out 0s;\n}\n\n.TextArea-module_textarea__eAcFn {\n\tborder: 0;\n\toutline: 0;\n\tpadding: 0 16px 0 0;\n\twidth: 100%;\n\theight: 100%;\n\tcolor: var(--core-text-primary);\n\tbackground-color: transparent;\n\tbox-sizing: border-box;\n\tresize: var(--ta-resize);\n\n\t&:disabled {\n\t\tcolor: var(--core-text-disabled);\n\t}\n\n\t&::placeholder {\n\t\tcolor: var(--core-text-disabled);\n\t}\n\n\toverflow-y: auto;\n\n\t&::-webkit-scrollbar {\n\t\tbackground-color: transparent;\n\t\twidth: 14px;\n\t}\n\n\t&::-webkit-scrollbar-track {\n\t\tbackground-color: transparent;\n\t}\n\n\t&::-webkit-scrollbar-thumb {\n\t\tbackground-color: var(--scroll-bar);\n\t\tborder-radius: 20px;\n\t\tborder: 4px solid var(--core-surface-primary);\n\t}\n\n\t&::-webkit-scrollbar-thumb:hover {\n\t\tbackground-color: var(--scroll-bar);\n\t\tborder-radius: 20px;\n\t\tborder: 4px solid var(--core-surface-primary);\n\t\tcursor: default;\n\t}\n}\n\n.TextArea-module_actions__hA93N {\n\twidth: 100%;\n\tmin-height: 30px;\n\tcolor: var(--core-text-disabled);\n\tgap: 16px;\n}\n\n.TextArea-module_option__DDx9A {\n\tgap: 4px;\n\twhite-space: nowrap;\n\tuser-select: none;\n\t-webkit-user-select: none;\n\tcursor: default;\n}\n\n.TextArea-module_send__SUUqB {\n\tposition: absolute;\n\tbottom: var(--ta-send-icon-offset-bottom);\n\tright: var(--ta-send-icon-offset-right);\n}\n\n.TextArea-module_s__53cFy {\n}\n\n.TextArea-module_m__TtgeD {\n}\n\n.TextArea-module_l__u69gT {\n}\n";
10
+ var css = {"wrapper":"TextArea-module_wrapper__vgfIH flexBox-module_columnStart__Kg8cV","textarea":"TextArea-module_textarea__eAcFn","send":"TextArea-module_send__SUUqB","s":"TextArea-module_s__53cFy type-module_body-s-regular__8-FO-","m":"TextArea-module_m__TtgeD type-module_body-m-regular__Qtp5G","l":"TextArea-module_l__u69gT type-module_body-l-regular__Ar4d3"};
11
+ styleInject_es.styleInject(css_248z);
12
+
13
+ const TextArea = React.memo((props) => {
14
+ const { value = '', name = 'text_area', width = '100%', focused = false, placeholder = 'Enter text here...', rows = 6, border = false, borderRadius = 4, padding = '16px 4px 16px 16px', validate = false, resizable = true, hasSend = false, sendOffset = { bottom: 6, right: 6 }, sendSize = 36, returnSubmits = false, bgColor = undefined, minWidth = undefined, textSize = 'm', disabled = false, submitClears = true, onChange = () => null, onFocus = () => null, onBlur = () => null, onValidate = () => null, onSubmit = () => null, onKeyDown = () => null } = props, divAttributes = tslib_es6.__rest(props, ["value", "name", "width", "focused", "placeholder", "rows", "border", "borderRadius", "padding", "validate", "resizable", "hasSend", "sendOffset", "sendSize", "returnSubmits", "bgColor", "minWidth", "textSize", "disabled", "submitClears", "onChange", "onFocus", "onBlur", "onValidate", "onSubmit", "onKeyDown"]);
15
+ const { id: divId, className, style } = divAttributes, rest = tslib_es6.__rest(divAttributes, ["id", "className", "style"]);
16
+ const divStyle = style !== null && style !== void 0 ? style : {};
17
+ const divClass = className ? ` ${className}` : '';
18
+ const [isFocused, setIsFocused] = React.useState(focused);
19
+ const [invalid, setInvalid] = React.useState(false);
20
+ const [text, setText] = React.useState(value);
21
+ const [initiated, setInitiated] = React.useState(false);
22
+ const ref = React.useRef(null);
23
+ // update text area height
24
+ const handleResize = React.useCallback(() => {
25
+ if (!(ref === null || ref === void 0 ? void 0 : ref.current))
26
+ return;
27
+ ref.current.style.height = 'auto';
28
+ ref.current.style.height = `${ref.current.scrollHeight}px`;
29
+ }, []);
30
+ // validate content
31
+ const runValidation = React.useCallback((content) => {
32
+ let valid = true;
33
+ if (validate && content.length < 1)
34
+ valid = false;
35
+ if (!initiated)
36
+ valid = true;
37
+ onValidate(valid);
38
+ return !valid;
39
+ }, [initiated, onValidate, validate]);
40
+ // focus / blur field on prop change
41
+ React.useEffect(() => {
42
+ if (ref === null || ref === void 0 ? void 0 : ref.current) {
43
+ if (focused)
44
+ ref.current.focus();
45
+ else
46
+ ref.current.blur();
47
+ setIsFocused(focused);
48
+ }
49
+ }, [focused]);
50
+ // update value on prop change
51
+ React.useEffect(() => {
52
+ if (value) {
53
+ setText(value);
54
+ setInvalid(runValidation(value));
55
+ }
56
+ }, [value, runValidation]);
57
+ // update height based on rows value
58
+ // biome-ignore lint/correctness/useExhaustiveDependencies: update heigt on rows change
59
+ React.useEffect(() => {
60
+ handleResize();
61
+ }, [rows]);
62
+ // update value
63
+ const handleChange = React.useCallback((content) => {
64
+ onChange(content);
65
+ setText(content);
66
+ setInvalid(runValidation(content));
67
+ }, [onChange, runValidation]);
68
+ // set focus
69
+ const handleFocus = React.useCallback(() => {
70
+ if (ref === null || ref === void 0 ? void 0 : ref.current)
71
+ ref.current.focus();
72
+ setInitiated(true);
73
+ setIsFocused(true);
74
+ onFocus();
75
+ }, [onFocus]);
76
+ // set blur
77
+ const handleBlur = React.useCallback((content) => {
78
+ handleChange(content);
79
+ setIsFocused(false);
80
+ onBlur();
81
+ }, [handleChange, onBlur]);
82
+ // trigger submit as needed
83
+ const handleSubmit = React.useCallback((e) => {
84
+ e === null || e === void 0 ? void 0 : e.preventDefault();
85
+ handleFocus();
86
+ onSubmit(text);
87
+ if (submitClears)
88
+ setText('');
89
+ if (ref === null || ref === void 0 ? void 0 : ref.current)
90
+ ref.current.value = '';
91
+ handleResize();
92
+ }, [handleFocus, onSubmit, text, submitClears, handleResize]);
93
+ // handle return key
94
+ const handleKeyDownWrapper = React.useCallback((e) => {
95
+ if (returnSubmits && e.key === 'Enter') {
96
+ e.preventDefault();
97
+ e.stopPropagation();
98
+ handleSubmit(undefined);
99
+ }
100
+ onKeyDown(e);
101
+ }, [returnSubmits, handleSubmit, onKeyDown]);
102
+ // set style value
103
+ const setStyleValue = React.useCallback((value) => {
104
+ if (typeof value === 'string')
105
+ return value;
106
+ return `${value}px`;
107
+ }, []);
108
+ // memo border color
109
+ const setBorderColor = React.useMemo(() => {
110
+ if (isFocused)
111
+ return 'var(--core-link-primary)';
112
+ if (validate && invalid)
113
+ return 'var(--feedback-warning)';
114
+ return border ? 'var(--core-outline-primary)' : 'transparent';
115
+ }, [isFocused, invalid, validate, border]);
116
+ // memo text size
117
+ const textClassName = React.useMemo(() => {
118
+ if (textSize === 'l')
119
+ return css.l;
120
+ if (textSize === 'm')
121
+ return css.m;
122
+ return css.s;
123
+ }, [textSize]);
124
+ // memo css vars
125
+ const cssVars = React.useMemo(() => {
126
+ return {
127
+ '--ta-border-radius': `${borderRadius}px`,
128
+ '--ta-width': `${setStyleValue(width)}`,
129
+ '--ta-min-width': minWidth ? `${minWidth}px` : 'unset',
130
+ '--ta-bg-color': bgColor !== null && bgColor !== void 0 ? bgColor : 'var(--core-surface-secondary)',
131
+ '--ta-border-color': setBorderColor,
132
+ '--ta-padding': `${setStyleValue(padding)}`,
133
+ '--ta-send-icon-offset-bottom': `${sendOffset.bottom}px`,
134
+ '--ta-send-icon-offset-right': `${sendOffset.right}px`,
135
+ '--ta-send-icon-size': `${sendSize}px`,
136
+ '--ta-resize': resizable ? 'vertical' : 'none',
137
+ };
138
+ }, [
139
+ width,
140
+ minWidth,
141
+ bgColor,
142
+ setBorderColor,
143
+ padding,
144
+ sendOffset,
145
+ sendSize,
146
+ setStyleValue,
147
+ borderRadius,
148
+ resizable,
149
+ ]);
150
+ return (jsxRuntime.jsxs("div", Object.assign({ id: divId, className: `${css.wrapper}${divClass}`, style: Object.assign(Object.assign({}, divStyle), cssVars), onBlur: () => handleBlur(text), onFocus: () => handleFocus() }, rest, { children: [hasSend && (jsxRuntime.jsx("div", { className: css.send, onMouseDown: (e) => handleSubmit(e), children: jsxRuntime.jsx(UIButton.UIButton, { iconLeft: 'arrow up', size: 'medium', variant: 'solid', round: true }) })), jsxRuntime.jsx("textarea", { className: `${css.textarea} ${textClassName}`, ref: ref, name: name, value: text, placeholder: placeholder, rows: rows, disabled: disabled, onChange: (e) => handleChange(e.target.value), onInput: () => handleResize(), onKeyDown: (e) => handleKeyDownWrapper(e) })] })));
151
+ });
152
+
153
+ exports.TextArea = TextArea;