@apple-pie/slice 0.0.6 → 0.0.8

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 (413) hide show
  1. package/README.md +34 -4
  2. package/dist/cjs/chunks/Avatar-0EXaRG4e.js +54 -0
  3. package/dist/cjs/chunks/AvatarGroup-BsRUAZl0.js +37 -0
  4. package/dist/cjs/chunks/Badge-Bv6c2YVC.js +23 -0
  5. package/dist/cjs/chunks/Button-DFAWHJmQ.js +246 -0
  6. package/dist/cjs/chunks/ButtonBar-DOgYDAda.js +53 -0
  7. package/dist/cjs/chunks/Card-BPClSuHa.js +37 -0
  8. package/dist/cjs/chunks/CheckBox-tsExpwtr.js +56 -0
  9. package/dist/cjs/chunks/Chip-CPHF1zn-.js +84 -0
  10. package/dist/cjs/chunks/DivInput-DDQVtlot.js +102 -0
  11. package/dist/cjs/chunks/DocIcons-B5TcBqSH.js +108 -0
  12. package/dist/cjs/chunks/Dot-BSSClfHQ.js +73 -0
  13. package/dist/cjs/chunks/DrggablePanel-wWLPesc8.js +202 -0
  14. package/dist/cjs/chunks/DropDown-COdCr77A.js +102 -0
  15. package/dist/cjs/chunks/ErrorSummary-CIUqlSLC.js +60 -0
  16. package/dist/cjs/chunks/FileIcon-DTQaXxfC.js +221 -0
  17. package/dist/cjs/chunks/FileList-J2EgJyCo.js +217 -0
  18. package/dist/cjs/chunks/FlexDiv-CW5gSa4V.js +65 -0
  19. package/dist/cjs/chunks/Grouper-QwwunKen.js +61 -0
  20. package/dist/cjs/chunks/IconButton-B53y3z1_.js +77 -0
  21. package/dist/cjs/chunks/Label-DoiS07-y.js +111 -0
  22. package/dist/cjs/chunks/Logos-CAHU-eIP.js +483 -0
  23. package/dist/cjs/chunks/Overlay-Bb2YoSKr.js +36 -0
  24. package/dist/cjs/chunks/Pager-CN2z8M9E.js +37 -0
  25. package/dist/cjs/chunks/ProgressIndicator-BbrZ7Aoc.js +157 -0
  26. package/dist/cjs/chunks/PromptInput-BXDqUXFQ.js +150 -0
  27. package/dist/cjs/chunks/RadioButton-GKRhZEmb.js +56 -0
  28. package/dist/cjs/chunks/RadioButtonList-CFpZmyAX.js +59 -0
  29. package/dist/cjs/chunks/Slider-CZvCAodl.js +136 -0
  30. package/dist/cjs/chunks/Spacer-CtxV2Pww.js +18 -0
  31. package/dist/cjs/chunks/Switch-C94aofxQ.js +37 -0
  32. package/dist/cjs/chunks/TabBar-D6akzNUf.js +123 -0
  33. package/dist/cjs/chunks/TextArea-DjF8Koup.js +82 -0
  34. package/dist/cjs/chunks/TextField-Cg6mQcYl.js +204 -0
  35. package/dist/cjs/chunks/Tip-CjMHa-fD.js +88 -0
  36. package/dist/cjs/chunks/Toast-Cdyh6T-l.js +163 -0
  37. package/dist/cjs/chunks/UploadArea-BmZ50EEl.js +123 -0
  38. package/dist/cjs/chunks/_types-B5xXv4NA.js +1386 -0
  39. package/dist/cjs/chunks/sharedTypes-gCECyn2N.js +6 -0
  40. package/dist/cjs/chunks/style-inject.es-CMuL-BfJ.js +11 -0
  41. package/dist/cjs/chunks/tipStore-Ck4NLvml.js +17 -0
  42. package/dist/cjs/chunks/toastStore-CSStgB9d.js +17 -0
  43. package/dist/cjs/chunks/tslib.es6-C8dZW5nY.js +49 -0
  44. package/dist/cjs/chunks/uploads-worker-mD8pcsGP.js +221 -0
  45. package/dist/cjs/chunks/uploadsStore-CxWIctvI.js +75 -0
  46. package/dist/cjs/chunks/utils-BsBHecUI.js +70 -0
  47. package/dist/cjs/chunks/windowStore-RaJswiHM.js +70 -0
  48. package/dist/cjs/hooks/useDoubleClick.js +11 -23
  49. package/dist/cjs/hooks/useKeyboardShortcuts.js +18 -35
  50. package/dist/cjs/hooks/useLastUpdated.js +20 -42
  51. package/dist/cjs/hooks/useLocalStore.js +23 -39
  52. package/dist/cjs/hooks/useObserveResize.js +26 -44
  53. package/dist/cjs/hooks/useObserveTheme.js +18 -36
  54. package/dist/cjs/hooks/useTheme.js +17 -40
  55. package/dist/cjs/hooks/useToolTip.js +19 -32
  56. package/dist/cjs/hooks/useTrackRenders.js +11 -29
  57. package/dist/cjs/hooks/useWindow.js +29 -65
  58. package/dist/cjs/hooks.js +12 -30
  59. package/dist/cjs/index.js +46 -134
  60. package/dist/cjs/providers/ThemeProvider.js +27 -45
  61. package/dist/cjs/providers.js +5 -12
  62. package/dist/cjs/stores/tip.js +4 -9
  63. package/dist/cjs/stores/toast.js +4 -9
  64. package/dist/cjs/stores/uploads.js +11 -0
  65. package/dist/cjs/stores/window.js +8 -10
  66. package/dist/cjs/stores.js +18 -21
  67. package/dist/cjs/theme/colors.js +371 -379
  68. package/dist/cjs/theme/corners.js +10 -12
  69. package/dist/cjs/theme/elevations.js +10 -13
  70. package/dist/cjs/theme/themes.js +8 -13
  71. package/dist/cjs/theme/type.js +225 -384
  72. package/dist/cjs/theme.js +5 -13
  73. package/dist/cjs/uikit/Avatar/index.js +6 -0
  74. package/dist/cjs/uikit/AvatarGroup/index.js +7 -0
  75. package/dist/cjs/uikit/Badge/index.js +6 -0
  76. package/dist/cjs/uikit/Button/index.js +12 -0
  77. package/dist/cjs/uikit/ButtonBar/index.js +12 -0
  78. package/dist/cjs/uikit/Card/index.js +10 -0
  79. package/dist/cjs/uikit/CheckBox/index.js +10 -0
  80. package/dist/cjs/uikit/Chip/index.js +11 -0
  81. package/dist/cjs/uikit/DivInput/index.js +7 -0
  82. package/dist/cjs/uikit/DocIcon/index.js +9 -0
  83. package/dist/cjs/uikit/Dot/index.js +6 -0
  84. package/dist/cjs/uikit/DraggablePanel/index.js +10 -0
  85. package/dist/cjs/uikit/DropDown/index.js +10 -0
  86. package/dist/cjs/uikit/ErrorSummary/index.js +6 -0
  87. package/dist/cjs/uikit/FileIcon/index.js +15 -0
  88. package/dist/cjs/uikit/FileList/index.js +11 -0
  89. package/dist/cjs/uikit/FlexDiv/index.js +6 -0
  90. package/dist/cjs/uikit/Grouper/index.js +11 -0
  91. package/dist/cjs/uikit/Icon/index.js +14 -0
  92. package/dist/cjs/uikit/IconButton/index.js +12 -0
  93. package/dist/cjs/uikit/Label/index.js +10 -0
  94. package/dist/cjs/uikit/Logos/index.js +9 -0
  95. package/dist/cjs/uikit/Overlay/index.js +6 -0
  96. package/dist/cjs/uikit/Pager/index.js +7 -0
  97. package/dist/cjs/uikit/Progress/index.js +10 -0
  98. package/dist/cjs/uikit/PromptInput/index.js +14 -0
  99. package/dist/cjs/uikit/RadioButton/index.js +12 -0
  100. package/dist/cjs/uikit/RadioButtonList/index.js +13 -0
  101. package/dist/cjs/uikit/Slider/index.js +7 -0
  102. package/dist/cjs/uikit/Spacer/index.js +6 -0
  103. package/dist/cjs/uikit/Switch/index.js +6 -0
  104. package/dist/cjs/uikit/TabBar/index.js +12 -0
  105. package/dist/cjs/uikit/TextArea/index.js +13 -0
  106. package/dist/cjs/uikit/Textfield/index.js +13 -0
  107. package/dist/cjs/uikit/Tip/index.js +7 -0
  108. package/dist/cjs/uikit/Toast/index.js +16 -0
  109. package/dist/cjs/uikit/UploadArea/index.js +15 -0
  110. package/dist/cjs/workers/uploads/uploads.js +5 -0
  111. package/dist/esm/chunks/Avatar-D_W5zErj.mjs +60 -0
  112. package/dist/esm/chunks/AvatarGroup-Dbfmz0Yz.mjs +45 -0
  113. package/dist/esm/chunks/Badge-BISGWj5-.mjs +29 -0
  114. package/dist/esm/chunks/Button-B_aIY6wE.mjs +264 -0
  115. package/dist/esm/chunks/ButtonBar-Cr6TFvvD.mjs +66 -0
  116. package/dist/esm/chunks/Card-BzKBF0ny.mjs +45 -0
  117. package/dist/esm/chunks/CheckBox-CYggPKaT.mjs +68 -0
  118. package/dist/esm/chunks/Chip-B3wb9g1U.mjs +96 -0
  119. package/dist/esm/chunks/DivInput-_VL6PAqT.mjs +114 -0
  120. package/dist/esm/chunks/DocIcons-BxtcXsWI.mjs +114 -0
  121. package/dist/esm/chunks/Dot-C-Xu24wF.mjs +81 -0
  122. package/dist/esm/chunks/DrggablePanel-Bg3UKK1k.mjs +214 -0
  123. package/dist/esm/chunks/DropDown-D7KyGLkM.mjs +114 -0
  124. package/dist/esm/chunks/ErrorSummary-CZw06dSh.mjs +68 -0
  125. package/dist/esm/chunks/FileIcon-BcIJzIwA.mjs +233 -0
  126. package/dist/esm/chunks/FileList-DUzgHfE-.mjs +229 -0
  127. package/dist/esm/chunks/FlexDiv-BLYDgWu2.mjs +73 -0
  128. package/dist/esm/chunks/Grouper-CRldBHSw.mjs +75 -0
  129. package/dist/esm/chunks/IconButton-BBiZrXlS.mjs +93 -0
  130. package/dist/esm/chunks/Label-DPIAVkn1.mjs +124 -0
  131. package/dist/esm/chunks/Logos-CpcaarOG.mjs +493 -0
  132. package/dist/esm/chunks/Overlay-Bh0enFIe.mjs +44 -0
  133. package/dist/esm/chunks/Pager-B-1ZRUzU.mjs +45 -0
  134. package/dist/esm/chunks/ProgressIndicator-CNOBQ_Fv.mjs +167 -0
  135. package/dist/esm/chunks/PromptInput-DdsIgZ3T.mjs +160 -0
  136. package/dist/esm/chunks/RadioButton-D-TdQu3a.mjs +66 -0
  137. package/dist/esm/chunks/RadioButtonList-CEScWkbT.mjs +67 -0
  138. package/dist/esm/chunks/Slider-C3A8GCfH.mjs +142 -0
  139. package/dist/esm/chunks/Spacer-BlgEdKEM.mjs +20 -0
  140. package/dist/esm/chunks/Switch-obpmvCGd.mjs +45 -0
  141. package/dist/esm/chunks/TabBar-DFj021UP.mjs +141 -0
  142. package/dist/esm/chunks/TextArea-D_hq6VF3.mjs +90 -0
  143. package/dist/esm/chunks/TextField-Co0u-xdd.mjs +222 -0
  144. package/dist/esm/chunks/Tip-CHQh-Yq0.mjs +98 -0
  145. package/dist/esm/chunks/Toast-BiXzVFtM.mjs +179 -0
  146. package/dist/esm/chunks/UploadArea-B9685Z06.mjs +133 -0
  147. package/dist/esm/chunks/_types-KZDzhaiK.mjs +1395 -0
  148. package/dist/esm/chunks/sharedTypes-tn9-uJvb.mjs +8 -0
  149. package/dist/esm/chunks/style-inject.es-D0BjEaN8.mjs +11 -0
  150. package/dist/esm/chunks/tipStore-CL5a95Bl.mjs +15 -0
  151. package/dist/esm/chunks/toastStore-D2PEIqCo.mjs +15 -0
  152. package/dist/esm/chunks/tslib.es6-c-7TIv71.mjs +53 -0
  153. package/dist/esm/chunks/uploads-worker-Dv-4zGnC.mjs +224 -0
  154. package/dist/esm/chunks/uploadsStore-D69fEXMY.mjs +72 -0
  155. package/dist/esm/chunks/utils-BQ1v7VE4.mjs +74 -0
  156. package/dist/esm/chunks/windowStore-CwW0i_le.mjs +71 -0
  157. package/dist/esm/hooks/useDoubleClick.mjs +14 -0
  158. package/dist/esm/hooks/useKeyboardShortcuts.mjs +27 -0
  159. package/dist/esm/hooks/useLastUpdated.mjs +31 -0
  160. package/dist/esm/hooks/useLocalStore.mjs +36 -0
  161. package/dist/esm/hooks/useObserveResize.mjs +38 -0
  162. package/dist/esm/hooks/useObserveTheme.mjs +34 -0
  163. package/dist/esm/hooks/useTheme.mjs +73 -0
  164. package/dist/esm/hooks/useToolTip.mjs +23 -0
  165. package/dist/esm/hooks/useTrackRenders.mjs +23 -0
  166. package/dist/esm/hooks/useWindow.mjs +52 -0
  167. package/dist/esm/hooks.mjs +29 -0
  168. package/dist/esm/index.mjs +117 -0
  169. package/dist/esm/providers/ThemeProvider.mjs +49 -0
  170. package/dist/esm/providers.mjs +15 -0
  171. package/dist/esm/stores/tip.mjs +3 -0
  172. package/dist/esm/stores/toast.mjs +3 -0
  173. package/dist/esm/stores/uploads.mjs +7 -0
  174. package/dist/esm/stores/window.mjs +3 -0
  175. package/dist/esm/stores.mjs +13 -0
  176. package/dist/esm/theme/colors.mjs +373 -0
  177. package/dist/esm/theme/corners.mjs +12 -0
  178. package/dist/esm/theme/elevations.mjs +15 -0
  179. package/dist/esm/theme/themes.mjs +25 -0
  180. package/dist/esm/theme/type.mjs +236 -0
  181. package/dist/esm/theme.mjs +9 -0
  182. package/dist/esm/uikit/Avatar/index.mjs +9 -0
  183. package/dist/esm/uikit/AvatarGroup/index.mjs +11 -0
  184. package/dist/esm/uikit/Badge/index.mjs +9 -0
  185. package/dist/esm/uikit/Button/index.mjs +39 -0
  186. package/dist/esm/uikit/ButtonBar/index.mjs +39 -0
  187. package/dist/esm/uikit/Card/index.mjs +29 -0
  188. package/dist/esm/uikit/CheckBox/index.mjs +31 -0
  189. package/dist/esm/uikit/Chip/index.mjs +31 -0
  190. package/dist/esm/uikit/DivInput/index.mjs +13 -0
  191. package/dist/esm/uikit/DocIcon/index.mjs +23 -0
  192. package/dist/esm/uikit/Dot/index.mjs +11 -0
  193. package/dist/esm/uikit/DraggablePanel/index.mjs +29 -0
  194. package/dist/esm/uikit/DropDown/index.mjs +29 -0
  195. package/dist/esm/uikit/ErrorSummary/index.mjs +11 -0
  196. package/dist/esm/uikit/FileIcon/index.mjs +25 -0
  197. package/dist/esm/uikit/FileList/index.mjs +35 -0
  198. package/dist/esm/uikit/FlexDiv/index.mjs +11 -0
  199. package/dist/esm/uikit/Grouper/index.mjs +33 -0
  200. package/dist/esm/uikit/Icon/index.mjs +25 -0
  201. package/dist/esm/uikit/IconButton/index.mjs +37 -0
  202. package/dist/esm/uikit/Label/index.mjs +27 -0
  203. package/dist/esm/uikit/Logos/index.mjs +23 -0
  204. package/dist/esm/uikit/Overlay/index.mjs +11 -0
  205. package/dist/esm/uikit/Pager/index.mjs +11 -0
  206. package/dist/esm/uikit/Progress/index.mjs +27 -0
  207. package/dist/esm/uikit/PromptInput/index.mjs +45 -0
  208. package/dist/esm/uikit/RadioButton/index.mjs +39 -0
  209. package/dist/esm/uikit/RadioButtonList/index.mjs +41 -0
  210. package/dist/esm/uikit/Slider/index.mjs +13 -0
  211. package/dist/esm/uikit/Spacer/index.mjs +7 -0
  212. package/dist/esm/uikit/Switch/index.mjs +11 -0
  213. package/dist/esm/uikit/TabBar/index.mjs +39 -0
  214. package/dist/esm/uikit/TextArea/index.mjs +41 -0
  215. package/dist/esm/uikit/Textfield/index.mjs +43 -0
  216. package/dist/esm/uikit/Tip/index.mjs +13 -0
  217. package/dist/esm/uikit/Toast/index.mjs +31 -0
  218. package/dist/esm/uikit/UploadArea/index.mjs +37 -0
  219. package/dist/esm/workers/uploads/uploads.mjs +5 -0
  220. package/dist/types/stores/index.d.ts +1 -0
  221. package/dist/types/stores/uploads/_types.d.ts +16 -0
  222. package/dist/types/stores/uploads/index.d.ts +2 -0
  223. package/dist/types/stores/uploads/uploadsStore.d.ts +22 -0
  224. package/dist/types/workers/uploads/uploads-worker.d.ts +129 -0
  225. package/dist/types/workers/uploads/uploads.d.ts +1 -0
  226. package/dist/types/workers/uploads/uploads.runtime.d.ts +1 -0
  227. package/package.json +23 -17
  228. package/dist/cjs/chunks/Avatar-z2YcOAoP.js +0 -68
  229. package/dist/cjs/chunks/AvatarGroup-Cz8369zI.js +0 -39
  230. package/dist/cjs/chunks/Badge-COSg__VJ.js +0 -41
  231. package/dist/cjs/chunks/Button-BNXqiA13.js +0 -312
  232. package/dist/cjs/chunks/ButtonBar-CeDdAOlH.js +0 -58
  233. package/dist/cjs/chunks/Card-Cc_c-S7i.js +0 -36
  234. package/dist/cjs/chunks/CheckBox-hTWIPqV_.js +0 -76
  235. package/dist/cjs/chunks/Chip-CLKVldi4.js +0 -93
  236. package/dist/cjs/chunks/DivInput-DnY2emt-.js +0 -204
  237. package/dist/cjs/chunks/DocIcons-BRWOzK96.js +0 -41
  238. package/dist/cjs/chunks/Dot-B5dO8kSS.js +0 -80
  239. package/dist/cjs/chunks/DrggablePanel-BtsURL9o.js +0 -302
  240. package/dist/cjs/chunks/DropDown-COr9u96t.js +0 -154
  241. package/dist/cjs/chunks/ErrorSummary-BrSHbGpk.js +0 -42
  242. package/dist/cjs/chunks/FileIcon-CEMQK_Je.js +0 -132
  243. package/dist/cjs/chunks/FileList-BHMne9Mr.js +0 -163
  244. package/dist/cjs/chunks/FlexDiv-BHl29ywz.js +0 -103
  245. package/dist/cjs/chunks/Grouper-EyHoeA8w.js +0 -50
  246. package/dist/cjs/chunks/IconButton-9QZ4eKBZ.js +0 -84
  247. package/dist/cjs/chunks/Label-s1aCv2Y1.js +0 -134
  248. package/dist/cjs/chunks/Logos-DSlAUz8l.js +0 -119
  249. package/dist/cjs/chunks/Overlay-DV3C5NDO.js +0 -45
  250. package/dist/cjs/chunks/Pager-CRjpl1FZ.js +0 -42
  251. package/dist/cjs/chunks/ProgressIndicator-BAwAaw58.js +0 -121
  252. package/dist/cjs/chunks/PromptInput-CfzofBTJ.js +0 -212
  253. package/dist/cjs/chunks/RadioButton-DA9YUGEF.js +0 -65
  254. package/dist/cjs/chunks/RadioButtonList-BtsT7GJc.js +0 -116
  255. package/dist/cjs/chunks/Slider-CqrIwn-L.js +0 -285
  256. package/dist/cjs/chunks/Spacer-BEY2-_PB.js +0 -16
  257. package/dist/cjs/chunks/Switch-CtkFtogd.js +0 -43
  258. package/dist/cjs/chunks/TabBar-WsNlr-aZ.js +0 -176
  259. package/dist/cjs/chunks/TextArea-BMJWUH2H.js +0 -153
  260. package/dist/cjs/chunks/TextField-mfwz79cD.js +0 -248
  261. package/dist/cjs/chunks/Tip-Af6FMEDi.js +0 -91
  262. package/dist/cjs/chunks/Toast-CxAEOW4z.js +0 -158
  263. package/dist/cjs/chunks/UploadArea-DunGYE1_.js +0 -155
  264. package/dist/cjs/chunks/_types-BNlHsGMQ.js +0 -714
  265. package/dist/cjs/chunks/sharedTypes-BvTjh6M5.js +0 -9
  266. package/dist/cjs/chunks/style-inject.es-XZHJH68X.js +0 -30
  267. package/dist/cjs/chunks/tipStore-C9oV9SIh.js +0 -23
  268. package/dist/cjs/chunks/toastStore-C-ETP9H6.js +0 -23
  269. package/dist/cjs/chunks/tslib.es6-4H29ixHs.js +0 -48
  270. package/dist/cjs/chunks/utils-BwNacfBU.js +0 -128
  271. package/dist/cjs/chunks/windowStore-CPcVHJq6.js +0 -93
  272. package/dist/cjs/uikit/Avatar.js +0 -11
  273. package/dist/cjs/uikit/AvatarGroup.js +0 -12
  274. package/dist/cjs/uikit/Badge.js +0 -11
  275. package/dist/cjs/uikit/Button.js +0 -26
  276. package/dist/cjs/uikit/ButtonBar.js +0 -26
  277. package/dist/cjs/uikit/Card.js +0 -21
  278. package/dist/cjs/uikit/CheckBox.js +0 -22
  279. package/dist/cjs/uikit/Chip.js +0 -22
  280. package/dist/cjs/uikit/DivInput.js +0 -13
  281. package/dist/cjs/uikit/DocIcon.js +0 -18
  282. package/dist/cjs/uikit/Dot.js +0 -12
  283. package/dist/cjs/uikit/DraggablePanel.js +0 -21
  284. package/dist/cjs/uikit/DropDown.js +0 -21
  285. package/dist/cjs/uikit/ErrorSummary.js +0 -12
  286. package/dist/cjs/uikit/FileIcon.js +0 -23
  287. package/dist/cjs/uikit/FileList.js +0 -24
  288. package/dist/cjs/uikit/FlexDiv.js +0 -12
  289. package/dist/cjs/uikit/Grouper.js +0 -23
  290. package/dist/cjs/uikit/Icon.js +0 -23
  291. package/dist/cjs/uikit/IconButton.js +0 -25
  292. package/dist/cjs/uikit/Label.js +0 -20
  293. package/dist/cjs/uikit/Logos.js +0 -18
  294. package/dist/cjs/uikit/Overlay.js +0 -12
  295. package/dist/cjs/uikit/Pager.js +0 -12
  296. package/dist/cjs/uikit/Progress.js +0 -21
  297. package/dist/cjs/uikit/PromptInput.js +0 -29
  298. package/dist/cjs/uikit/RadioButton.js +0 -26
  299. package/dist/cjs/uikit/RadioButtonList.js +0 -27
  300. package/dist/cjs/uikit/Slider.js +0 -13
  301. package/dist/cjs/uikit/Spacer.js +0 -10
  302. package/dist/cjs/uikit/Switch.js +0 -12
  303. package/dist/cjs/uikit/TabBar.js +0 -26
  304. package/dist/cjs/uikit/TextArea.js +0 -27
  305. package/dist/cjs/uikit/Textfield.js +0 -28
  306. package/dist/cjs/uikit/Tip.js +0 -13
  307. package/dist/cjs/uikit/Toast.js +0 -26
  308. package/dist/cjs/uikit/UploadArea.js +0 -31
  309. package/dist/esm/chunks/Avatar-BtkvMV1v.js +0 -66
  310. package/dist/esm/chunks/AvatarGroup-pbqdS56o.js +0 -37
  311. package/dist/esm/chunks/Badge-DtxDLSO0.js +0 -39
  312. package/dist/esm/chunks/Button-BUJkJqdO.js +0 -310
  313. package/dist/esm/chunks/ButtonBar-Bl0oCxd8.js +0 -56
  314. package/dist/esm/chunks/Card-Bjk0kgQh.js +0 -34
  315. package/dist/esm/chunks/CheckBox-CvkZuSeB.js +0 -74
  316. package/dist/esm/chunks/Chip-o-YG_HAf.js +0 -91
  317. package/dist/esm/chunks/DivInput-D6ORPrkT.js +0 -202
  318. package/dist/esm/chunks/DocIcons-CbOX4n8Y.js +0 -39
  319. package/dist/esm/chunks/Dot-BZcEZbnm.js +0 -78
  320. package/dist/esm/chunks/DrggablePanel-DWrTjXvf.js +0 -300
  321. package/dist/esm/chunks/DropDown-BDIvYWI-.js +0 -152
  322. package/dist/esm/chunks/ErrorSummary-DzDnacH0.js +0 -40
  323. package/dist/esm/chunks/FileIcon-Cxh-QsYb.js +0 -130
  324. package/dist/esm/chunks/FileList-CdUgbpYF.js +0 -161
  325. package/dist/esm/chunks/FlexDiv-CFyndG99.js +0 -101
  326. package/dist/esm/chunks/Grouper-NJbpaaQG.js +0 -48
  327. package/dist/esm/chunks/IconButton-3m9ugITV.js +0 -82
  328. package/dist/esm/chunks/Label-BRon-ejm.js +0 -132
  329. package/dist/esm/chunks/Logos-DwZP-TR2.js +0 -117
  330. package/dist/esm/chunks/Overlay-BolsHW9S.js +0 -43
  331. package/dist/esm/chunks/Pager-BHLyXq9p.js +0 -40
  332. package/dist/esm/chunks/ProgressIndicator-uI9BZwBB.js +0 -118
  333. package/dist/esm/chunks/PromptInput-DodTBG82.js +0 -210
  334. package/dist/esm/chunks/RadioButton-D8otD_Jj.js +0 -63
  335. package/dist/esm/chunks/RadioButtonList-CtX1j7rO.js +0 -114
  336. package/dist/esm/chunks/Slider-O6UelMjh.js +0 -283
  337. package/dist/esm/chunks/Spacer-DbZSG5x3.js +0 -14
  338. package/dist/esm/chunks/Switch-DjfrSiQz.js +0 -41
  339. package/dist/esm/chunks/TabBar-C0NgwRa2.js +0 -174
  340. package/dist/esm/chunks/TextArea-DK0giDGR.js +0 -151
  341. package/dist/esm/chunks/TextField-CQ4XYYNm.js +0 -246
  342. package/dist/esm/chunks/Tip-iFECDhwN.js +0 -89
  343. package/dist/esm/chunks/Toast-ZxMZtbd0.js +0 -156
  344. package/dist/esm/chunks/UploadArea-C0YHy4Z9.js +0 -147
  345. package/dist/esm/chunks/_types-RJ7q8S0B.js +0 -712
  346. package/dist/esm/chunks/sharedTypes-BfZzG1KX.js +0 -9
  347. package/dist/esm/chunks/style-inject.es-tgCJW-Cu.js +0 -28
  348. package/dist/esm/chunks/tipStore-nBYJ6tmE.js +0 -17
  349. package/dist/esm/chunks/toastStore-r3pvNa28.js +0 -17
  350. package/dist/esm/chunks/tslib.es6-0pkUdtrF.js +0 -45
  351. package/dist/esm/chunks/utils-CZ1LWeN6.js +0 -121
  352. package/dist/esm/chunks/windowStore-Cu4W4zJM.js +0 -91
  353. package/dist/esm/hooks/useDoubleClick.js +0 -24
  354. package/dist/esm/hooks/useKeyboardShortcuts.js +0 -42
  355. package/dist/esm/hooks/useLastUpdated.js +0 -51
  356. package/dist/esm/hooks/useLocalStore.js +0 -50
  357. package/dist/esm/hooks/useObserveResize.js +0 -54
  358. package/dist/esm/hooks/useObserveTheme.js +0 -41
  359. package/dist/esm/hooks/useTheme.js +0 -84
  360. package/dist/esm/hooks/useToolTip.js +0 -34
  361. package/dist/esm/hooks/useTrackRenders.js +0 -37
  362. package/dist/esm/hooks/useWindow.js +0 -84
  363. package/dist/esm/hooks.js +0 -15
  364. package/dist/esm/index.js +0 -59
  365. package/dist/esm/providers/ThemeProvider.js +0 -56
  366. package/dist/esm/providers.js +0 -8
  367. package/dist/esm/stores/tip.js +0 -2
  368. package/dist/esm/stores/toast.js +0 -2
  369. package/dist/esm/stores/window.js +0 -2
  370. package/dist/esm/stores.js +0 -4
  371. package/dist/esm/theme/colors.js +0 -377
  372. package/dist/esm/theme/corners.js +0 -12
  373. package/dist/esm/theme/elevations.js +0 -15
  374. package/dist/esm/theme/themes.js +0 -23
  375. package/dist/esm/theme/type.js +0 -393
  376. package/dist/esm/theme.js +0 -5
  377. package/dist/esm/uikit/Avatar.js +0 -5
  378. package/dist/esm/uikit/AvatarGroup.js +0 -6
  379. package/dist/esm/uikit/Badge.js +0 -5
  380. package/dist/esm/uikit/Button.js +0 -20
  381. package/dist/esm/uikit/ButtonBar.js +0 -20
  382. package/dist/esm/uikit/Card.js +0 -15
  383. package/dist/esm/uikit/CheckBox.js +0 -16
  384. package/dist/esm/uikit/Chip.js +0 -16
  385. package/dist/esm/uikit/DivInput.js +0 -7
  386. package/dist/esm/uikit/DocIcon.js +0 -12
  387. package/dist/esm/uikit/Dot.js +0 -6
  388. package/dist/esm/uikit/DraggablePanel.js +0 -15
  389. package/dist/esm/uikit/DropDown.js +0 -15
  390. package/dist/esm/uikit/ErrorSummary.js +0 -6
  391. package/dist/esm/uikit/FileIcon.js +0 -13
  392. package/dist/esm/uikit/FileList.js +0 -18
  393. package/dist/esm/uikit/FlexDiv.js +0 -6
  394. package/dist/esm/uikit/Grouper.js +0 -17
  395. package/dist/esm/uikit/Icon.js +0 -13
  396. package/dist/esm/uikit/IconButton.js +0 -19
  397. package/dist/esm/uikit/Label.js +0 -14
  398. package/dist/esm/uikit/Logos.js +0 -12
  399. package/dist/esm/uikit/Overlay.js +0 -6
  400. package/dist/esm/uikit/Pager.js +0 -6
  401. package/dist/esm/uikit/Progress.js +0 -14
  402. package/dist/esm/uikit/PromptInput.js +0 -23
  403. package/dist/esm/uikit/RadioButton.js +0 -20
  404. package/dist/esm/uikit/RadioButtonList.js +0 -21
  405. package/dist/esm/uikit/Slider.js +0 -7
  406. package/dist/esm/uikit/Spacer.js +0 -4
  407. package/dist/esm/uikit/Switch.js +0 -6
  408. package/dist/esm/uikit/TabBar.js +0 -20
  409. package/dist/esm/uikit/TextArea.js +0 -21
  410. package/dist/esm/uikit/Textfield.js +0 -22
  411. package/dist/esm/uikit/Tip.js +0 -7
  412. package/dist/esm/uikit/Toast.js +0 -16
  413. package/dist/esm/uikit/UploadArea.js +0 -19
package/README.md CHANGED
@@ -10,10 +10,10 @@ Slice is a TypeScript-first React UI kit with theme tokens, utility hooks, optio
10
10
 
11
11
  ## What is included
12
12
 
13
- - 30+ reusable UI components (inputs, buttons, navigation, overlays, feedback, layout, icons)
13
+ - 30+ reusable UI components (inputs, buttons, navigation, overlays, feedback, layout, icons, upload UI)
14
14
  - Theme system with light/dark presets and typed theme tokens
15
15
  - React hooks for theme, window sizing, keyboard shortcuts, local storage, resize, and more
16
- - Optional Zustand-powered stores (`toast`, `tip`)
16
+ - Optional Zustand-powered stores (`toast`, `tip`, `uploads`, `window`)
17
17
  - Rollup + TypeScript build pipeline for CJS, ESM, and declaration output
18
18
  - Component performance benchmarks powered by Vitest
19
19
 
@@ -77,6 +77,7 @@ Subpath imports are also published:
77
77
  - `@apple-pie/slice/providers/*`
78
78
  - `@apple-pie/slice/stores`
79
79
  - `@apple-pie/slice/stores/*`
80
+ - `@apple-pie/slice/workers/*`
80
81
  - `@apple-pie/slice/theme`
81
82
  - `@apple-pie/slice/theme/colors`
82
83
  - `@apple-pie/slice/theme/corners`
@@ -87,11 +88,11 @@ Subpath imports are also published:
87
88
  ## Components
88
89
 
89
90
  - `Avatar`, `AvatarGroup`, `Badge`, `CheckBox`, `DivInput`, `Dot`, `DropDown`
90
- - `ErrorSummary`, `FlexDiv`, `Grouper`, `Icon`, `IconButton`
91
+ - `ErrorSummary`, `FileIcon`, `FileList`, `FlexDiv`, `Grouper`, `Icon`, `IconButton`
91
92
  - `Logos`, `PromptInput`, `Overlay`, `Pager`, `ProgressIndicator`, `DoneCheck`
92
93
  - `RadioButton`, `RadioButtonList`, `Slider`, `Spacer`, `Switch`, `TabBar`
93
94
  - `TextField`, `TextArea`, `Tip`, `Toast`, `Button`, `ButtonBar`
94
- - `Card`, `Chip`, `Label`, `DocIcons`, `DraggablePanel`
95
+ - `Card`, `Chip`, `Label`, `DocIcons`, `DraggablePanel`, `UploadArea`
95
96
 
96
97
  ## Hooks
97
98
 
@@ -108,6 +109,8 @@ Subpath imports are also published:
108
109
 
109
110
  - `toast` store: `useToast`, `useToastActions`, `toastActions`, `getToast`
110
111
  - `tip` store: `useTip`, `useTipActions`, `tipActions`, `getTip`
112
+ - `window` store: `useWindowStore`, atomic viewport/runtime hooks, imperative viewport helpers
113
+ - `uploads` store: `useUploadsStore`, `useUploads`, `useUploadsActions`, `createUploadsWorker`, `uploadsActions`
111
114
 
112
115
  Example:
113
116
 
@@ -115,6 +118,33 @@ Example:
115
118
  import { useToast, useToastActions } from '@apple-pie/slice/stores/toast';
116
119
  ```
117
120
 
121
+ Uploads store example:
122
+
123
+ ```ts
124
+ import {
125
+ createUploadsWorker,
126
+ uploadsActions,
127
+ useUploads,
128
+ useUploadsActions,
129
+ } from '@apple-pie/slice/stores/uploads';
130
+
131
+ const worker = createUploadsWorker();
132
+
133
+ uploadsActions.initialize({ uploadURL: '/api/uploads' }, worker);
134
+ ```
135
+
136
+ For consuming browser apps using a built worker asset, pass an explicit worker URL from your bundler:
137
+
138
+ ```ts
139
+ import { createUploadsWorker, uploadsActions } from '@apple-pie/slice/stores/uploads';
140
+ import uploadsWorkerUrl from '@apple-pie/slice/workers/uploads/uploads?url';
141
+
142
+ const worker = createUploadsWorker(uploadsWorkerUrl);
143
+ uploadsActions.initialize({ uploadURL: '/api/uploads' }, worker);
144
+ ```
145
+
146
+ This worker URL pattern assumes modern frontend tooling such as Vite or similar browser-focused bundlers.
147
+
118
148
  ## Theme exports
119
149
 
120
150
  - Presets: `lightTheme`, `darkTheme`
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var tslib_es6 = require("./tslib.es6-C8dZW5nY.js"), jsxRuntime = require("react/jsx-runtime"), React = require("react"), styleInject_es = require("./style-inject.es-CMuL-BfJ.js"), css_wrapper = "Avatar-module_wrapper__U4ZJr flexBox-module_row__PWxbe type-module_body-m-regular__Qtp5G", css_user = "Avatar-module_user__GIczo flexBox-module_row__PWxbe type-module_body-m-regular__Qtp5G";
4
+
5
+ styleInject_es.styleInject(".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_body-xl-regular__zDf-z {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-xl-medium__R5GpK {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-xl-bold__SI-hC {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_heading-s-medium__jGIb2 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 20px;\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-s-bold__QFgN8 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\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: 500;\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: 600;\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: 500;\n\tfont-size: 30px;\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: 600;\n\tfont-size: 30px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-xl-medium__PUi44 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 36px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-xl-bold__1B6fk {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\n\tfont-size: 36px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}\n\n.Avatar-module_wrapper__U4ZJr {\n\tposition: relative;\n\tmin-height: var(--avatar-size);\n\tmin-width: var(--avatar-size);\n\theight: var(--avatar-size);\n\twidth: var(--avatar-size);\n\tborder: 0;\n\toutline: 0;\n}\n\n.Avatar-module_user__GIczo {\n\tfont-size: var(--avatar-font-size) !important;\n\tmin-height: var(--avatar-size);\n\tmin-width: var(--avatar-size);\n\theight: var(--avatar-size);\n\twidth: var(--avatar-size);\n\tline-height: 1em;\n\ttext-transform: uppercase;\n\tborder-radius: 100%;\n\tborder: var(--avatar-border) solid var(--avatar-border-color);\n\tbackground-color: var(--avatar-bg-color);\n\tcolor: var(--avatar-color);\n\tbackground-image: var(--avatar-bg-image);\n\tbackground-size: cover;\n\tcursor: pointer;\n\tuser-select: none;\n\t-webkit-user-select: none;\n\ttransition: border-color 0.2s ease-in-out 0s;\n\t&:hover {\n\t\tborder-color: var(--core-link-primary);\n\t}\n}\n");
6
+
7
+ const Avatar = React.memo(props => {
8
+ const {first: first = "", last: last = "", image: image = "", border: border = 0, color: color, borderColor: borderColor, bgColor: bgColor, firstOnly: firstOnly = !1, onClick: onClick, onKeyDown: onKeyDown, fontSize: fontSize, onToolTip: onToolTip = () => null, size: size = 34, frame: frame = 34, tabIndex: tabIndex = 0} = props, divAttributes = tslib_es6.__rest(props, [ "first", "last", "image", "border", "color", "borderColor", "bgColor", "firstOnly", "onClick", "onKeyDown", "fontSize", "onToolTip", "size", "frame", "tabIndex" ]), {id: divId, className: className, style: style} = divAttributes, rest = tslib_es6.__rest(divAttributes, [ "id", "className", "style" ]), divStyle = null != style ? style : {}, divClass = className ? ` ${className}` : "", initials = React.useMemo(() => `${null == first ? void 0 : first.charAt(0)}${firstOnly ? "" : last.charAt(0)}`, [ first, last, firstOnly ]), bgImage = React.useMemo(() => firstOnly ? "" : image ? `url(${image})` : "", [ firstOnly, image ]), setFontSize = React.useMemo(() => {
9
+ if (void 0 === fontSize) return "inherit";
10
+ if ("auto" === fontSize) {
11
+ let fSize = Math.round(frame / 3);
12
+ return fSize = Math.min(fSize, 24), fSize = Math.max(fSize, 14), `${fSize}px`;
13
+ }
14
+ return `${fontSize}px`;
15
+ }, [ frame, fontSize ]), displayContent = React.useMemo(() => firstOnly || !image ? initials : null, [ firstOnly, image, initials ]), onMouseEnter = React.useCallback(event => {
16
+ onToolTip({
17
+ payload: {
18
+ label: first
19
+ },
20
+ event: event
21
+ });
22
+ }, [ first, onToolTip ]), onMouseLeave = React.useCallback(() => {
23
+ onToolTip(null);
24
+ }, [ onToolTip ]), avatarVars = React.useMemo(() => ({
25
+ "--avatar-size": `${size}px`,
26
+ "--avatar-frame": `${frame}px`,
27
+ "--avatar-border": `${border}px`,
28
+ "--avatar-color": null != color ? color : "var(--core-text-primary)",
29
+ "--avatar-bg-color": null != bgColor ? bgColor : "var(--core-surface-secondary)",
30
+ "--avatar-border-color": null != borderColor ? borderColor : "var(--core-surface-primary)",
31
+ "--avatar-bg-image": `${bgImage}`,
32
+ "--avatar-font-size": setFontSize
33
+ }), [ size, frame, border, color, bgColor, borderColor, bgImage, setFontSize ]), classNames = React.useMemo(() => `${css_wrapper}${divClass}`, [ divClass ]);
34
+ return jsxRuntime.jsx("div", Object.assign({
35
+ id: divId,
36
+ className: classNames,
37
+ style: Object.assign(Object.assign({}, divStyle), avatarVars),
38
+ onMouseEnter: onMouseEnter,
39
+ onMouseLeave: onMouseLeave,
40
+ onClick: onClick,
41
+ onKeyDown: onKeyDown,
42
+ role: onClick ? "button" : "img",
43
+ tabIndex: onClick ? tabIndex : void 0,
44
+ "aria-label": `User Avatar - ${first}`
45
+ }, rest, {
46
+ children: jsxRuntime.jsx("div", {
47
+ "aria-hidden": !0,
48
+ className: css_user,
49
+ children: displayContent
50
+ })
51
+ }));
52
+ });
53
+
54
+ exports.Avatar = Avatar;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ var tslib_es6 = require("./tslib.es6-C8dZW5nY.js"), jsxRuntime = require("react/jsx-runtime"), React = require("react"), Avatar = require("./Avatar-0EXaRG4e.js"), styleInject_es = require("./style-inject.es-CMuL-BfJ.js"), css_wrapper = "AvatarGroup-module_wrapper__mmcUR flexBox-module_rowStart__nJZnW", css_avatar = "AvatarGroup-module_avatar__YbQ5O";
4
+
5
+ styleInject_es.styleInject(".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.AvatarGroup-module_wrapper__mmcUR {\n\tgap: var(--ag-gap);\n\tmargin: var(--ag-margin);\n}\n\n.AvatarGroup-module_avatar__YbQ5O {\n\tdisplay: inline-block;\n\tmargin-left: var(--ag-overlap);\n\tborder-radius: 100%;\n\t&:first-child {\n\t\tmargin-left: 0;\n\t}\n}\n");
6
+
7
+ const AvatarGroup = React.memo(props => {
8
+ const {avatars: avatars = [], size: size = 32, border: border = 3, overlap: overlap = 8, gap: gap = 0, borderColor: borderColor, margin: margin = 0, firstOnly: firstOnly = !1, onToolTip: onToolTip = () => null} = props, divAttributes = tslib_es6.__rest(props, [ "avatars", "size", "border", "overlap", "gap", "borderColor", "margin", "firstOnly", "onToolTip" ]), {id: divId, className: className, style: style} = divAttributes, rest = tslib_es6.__rest(divAttributes, [ "id", "className", "style" ]), divStyle = null != style ? style : {}, divClass = className ? ` ${className}` : "", cssVars = React.useMemo(() => ({
9
+ "--ag-gap": `${null != gap ? gap : 0}px`,
10
+ "--ag-margin": `${null != margin ? margin : 0}px`,
11
+ "--ag-overlap": (overlap > 0 ? -overlap : 0) + "px"
12
+ }), [ overlap, gap, margin ]), renderedAvatars = React.useMemo(() => avatars ? avatars.map((avatar, index) => jsxRuntime.jsx("div", {
13
+ className: css_avatar,
14
+ children: jsxRuntime.jsx(Avatar.Avatar, {
15
+ first: avatar.first,
16
+ last: avatar.last,
17
+ image: avatar.image || avatar.avatar,
18
+ size: size,
19
+ frame: size,
20
+ border: border,
21
+ borderColor: borderColor,
22
+ color: avatar.color,
23
+ bgColor: avatar.bgColor,
24
+ firstOnly: firstOnly,
25
+ onToolTip: onToolTip
26
+ })
27
+ }, `avatar_${avatar.email}_${index}`)) : null, [ avatars, size, border, borderColor, firstOnly, onToolTip ]), classNames = React.useMemo(() => `${css_wrapper}${divClass}`, [ divClass ]);
28
+ return jsxRuntime.jsx("div", Object.assign({
29
+ id: divId,
30
+ className: classNames,
31
+ style: Object.assign(Object.assign({}, divStyle), cssVars)
32
+ }, rest, {
33
+ children: renderedAvatars
34
+ }));
35
+ });
36
+
37
+ exports.AvatarGroup = AvatarGroup;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var tslib_es6 = require("./tslib.es6-C8dZW5nY.js"), jsxRuntime = require("react/jsx-runtime"), React = require("react"), styleInject_es = require("./style-inject.es-CMuL-BfJ.js"), css_badge = "Badge-module_badge__8-cpJ flexBox-module_row__PWxbe type-module_body-xs-medium__FxEAv";
4
+
5
+ styleInject_es.styleInject(".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_body-xl-regular__zDf-z {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-xl-medium__R5GpK {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-xl-bold__SI-hC {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_heading-s-medium__jGIb2 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 20px;\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-s-bold__QFgN8 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\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: 500;\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: 600;\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: 500;\n\tfont-size: 30px;\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: 600;\n\tfont-size: 30px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-xl-medium__PUi44 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 36px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-xl-bold__1B6fk {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\n\tfont-size: 36px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.Badge-module_badge__8-cpJ {\n\tline-height: 1em;\n\tcolor: var(--badge-color);\n\tbackground: var(--badge-bg);\n\tpadding: 2px 8px;\n\tmin-width: 24px;\n\twidth: min-content;\n\tborder-radius: 8px;\n\twhite-space: nowrap;\n}\n");
6
+
7
+ const Badge = React.memo(props => {
8
+ const {count: count, variant: variant = "dark", hideNull: hideNull = !0} = props, divAttributes = tslib_es6.__rest(props, [ "count", "variant", "hideNull" ]), {id: divId, className: className, style: style} = divAttributes, rest = tslib_es6.__rest(divAttributes, [ "id", "className", "style" ]), divStyle = null != style ? style : {}, divClass = className ? ` ${className}` : "", displayCount = React.useMemo(() => void 0 === count ? "0" : "string" == typeof count ? count : count > 99 ? "99+" : count.toString(), [ count ]), cssVars = React.useMemo(() => ({
9
+ "--badge-color": "light" === variant ? "var(--core-text-primary)" : "var(--core-text-light)",
10
+ "--badge-bg": "light" === variant ? "var(--core-badge-secondary)" : "var(--core-badge-primary)"
11
+ }), [ variant ]);
12
+ return void 0 === count || "" === count || hideNull && 0 === count ? null : jsxRuntime.jsx("div", Object.assign({
13
+ id: divId,
14
+ className: `${css_badge}${divClass}`,
15
+ style: Object.assign(Object.assign({}, divStyle), cssVars),
16
+ role: "status",
17
+ "aria-live": "polite"
18
+ }, rest, {
19
+ children: displayCount
20
+ }));
21
+ });
22
+
23
+ exports.Badge = Badge;
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+
3
+ var tslib_es6 = require("./tslib.es6-C8dZW5nY.js"), jsxRuntime = require("react/jsx-runtime"), react = require("motion/react"), React = require("react"), Badge = require("./Badge-Bv6c2YVC.js"), Dot = require("./Dot-BSSClfHQ.js"), _types = require("./_types-B5xXv4NA.js"), ProgressIndicator = require("./ProgressIndicator-BbrZ7Aoc.js"), sharedTypes = require("./sharedTypes-gCECyn2N.js"), styleInject_es = require("./style-inject.es-CMuL-BfJ.js"), css = {
4
+ button: "Button-module_button__-gHnS flexBox-module_row__PWxbe",
5
+ label: "Button-module_label__jzYdr",
6
+ count: "Button-module_count__8YTcm flexBox-module_row__PWxbe",
7
+ icon: "Button-module_icon__BNF2p flexBox-module_row__PWxbe",
8
+ m: "Button-module_m__q-q0F type-module_body-m-regular__Qtp5G",
9
+ l: "Button-module_l__r6jKt type-module_body-l-regular__Ar4d3",
10
+ s: "Button-module_s__GucGM type-module_body-s-regular__8-FO-"
11
+ };
12
+
13
+ styleInject_es.styleInject(".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_body-xl-regular__zDf-z {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-xl-medium__R5GpK {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-xl-bold__SI-hC {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_heading-s-medium__jGIb2 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 20px;\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-s-bold__QFgN8 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\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: 500;\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: 600;\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: 500;\n\tfont-size: 30px;\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: 600;\n\tfont-size: 30px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-xl-medium__PUi44 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 36px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-xl-bold__1B6fk {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\n\tfont-size: 36px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}\n\n.Button-module_button__-gHnS {\n\tposition: relative;\n\tuser-select: none;\n\tmin-width: var(--ui-button-min-width);\n\t-webkit-user-select: none;\n}\n\n.Button-module_label__jzYdr {\n\tuser-select: none;\n\t-webkit-user-select: none;\n\ttext-overflow: ellipsis;\n\toverflow: hidden;\n\twhite-space: nowrap;\n\tword-break: break-all;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: 1;\n\t-webkit-box-orient: vertical;\n\t&:hover {\n\t\ttext-decoration: var(--ui-button-decoration);\n\t}\n}\n\n.Button-module_count__8YTcm {\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\ttransform: translateX(10px) translateY(-2px);\n}\n\n.Button-module_icon__BNF2p {\n\tmin-width: var(--ui-button-icon-size);\n\tmin-height: var(--ui-button-icon-size);\n\theight: var(--ui-button-icon-size);\n\twidth: var(--ui-button-icon-size);\n}\n\n.Button-module_m__q-q0F {\n}\n\n.Button-module_l__r6jKt {\n}\n\n.Button-module_s__GucGM {\n}\n");
14
+
15
+ const ButtonComponent = React.forwardRef((props, buttonRef) => {
16
+ const {size: size = "medium", variant: variant = "outline", label: label, labelSize: labelSize = "m", iconRight: iconRight, iconLeft: iconLeft, count: count = (void 0 === props.count ? void 0 : Number(props.count)), showDot: showDot, tooltip: tooltip, round: round = !1, state: state = "normal", fill: fill = !1, iconSize: iconSize = (void 0 === props.iconSize ? 20 : Number(props.iconSize)), width: width = "auto", underline: underline = !1, borderRadius: borderRadius, iconColor: iconColor, bgColor: bgColor, bgColorDisabled: bgColorDisabled, labelColor: labelColor, transition: transition, variants: variants, initial: initial, animate: animate, exit: exit, paddingRight: paddingRight, paddingLeft: paddingLeft, progress: progress = !1, working: working = !1, duration: duration, trigger: trigger = !1, destructive: destructive = !1, onClick: onClick = () => null, onToolTip: onToolTip = () => null} = props, divAttributes = tslib_es6.__rest(props, [ "size", "variant", "label", "labelSize", "iconRight", "iconLeft", "count", "showDot", "tooltip", "round", "state", "fill", "iconSize", "width", "underline", "borderRadius", "iconColor", "bgColor", "bgColorDisabled", "labelColor", "transition", "variants", "initial", "animate", "exit", "paddingRight", "paddingLeft", "progress", "working", "duration", "trigger", "destructive", "onClick", "onToolTip" ]), {id: divId, className: className, style: style} = divAttributes, rest = tslib_es6.__rest(divAttributes, [ "id", "className", "style" ]), divStyle = null != style ? style : {}, divClass = className ? ` ${className}` : "", [btnState, setBtnState] = React.useState(state), [btnWidth, setBtnWidth] = React.useState(void 0), [playing, setPlaying] = React.useState(working), ref = React.useRef(null), handleClick = React.useCallback(e => {
17
+ onToolTip(null), "disabled" !== btnState && (progress && duration ? setPlaying(!0) : onClick(e));
18
+ }, [ onToolTip, btnState, progress, duration, onClick ]);
19
+ React.useEffect(() => setBtnState(state), [ state ]), React.useEffect(() => setPlaying(working), [ working ]),
20
+ React.useEffect(() => {
21
+ variant && size && labelSize && ((null == ref ? void 0 : ref.current) ? setBtnWidth(ref.current.offsetWidth) : setBtnWidth(width));
22
+ }, [ width, variant, labelSize, size ]), React.useImperativeHandle(buttonRef, () => ({
23
+ triggerClick: () => handleClick(void 0)
24
+ })), React.useEffect(() => {
25
+ trigger && handleClick(void 0);
26
+ }, [ trigger, handleClick ]);
27
+ const destructiveColor = React.useCallback(icon => {
28
+ if (icon) {
29
+ if ("disabled" === btnState) return "var(--core-text-disabled)";
30
+ if ("solid" === variant) return "var(--core-text-light)";
31
+ }
32
+ return destructive ? "var(--feedback-warning)" : "var(--core-text-primary)";
33
+ }, [ destructive, variant, btnState ]), solid = React.useMemo(() => ({
34
+ border: "0px",
35
+ iconColor: {
36
+ normal: iconColor || destructiveColor(!0),
37
+ hover: iconColor || destructiveColor(!0),
38
+ disabled: iconColor || destructiveColor(!0)
39
+ },
40
+ background: {
41
+ normal: bgColor || (destructive ? "var(--feedback-warning)" : "var(--core-button-primary)"),
42
+ hover: bgColor || (destructive ? "var(--feedback-warning)" : "var(--core-button-primary)"),
43
+ disabled: bgColorDisabled || "var(--core-button-disabled)"
44
+ },
45
+ borderColor: {
46
+ normal: "transparent",
47
+ hover: "transparent",
48
+ disabled: "transparent"
49
+ },
50
+ color: {
51
+ normal: labelColor || (destructive ? "white" : "var(--core-text-light)"),
52
+ hover: labelColor || (destructive ? "white" : "var(--core-text-light)"),
53
+ disabled: "var(--core-text-disabled)"
54
+ }
55
+ }), [ labelColor, destructive, destructiveColor, bgColor, bgColorDisabled, iconColor ]), outline = React.useMemo(() => ({
56
+ border: "1px",
57
+ iconColor: {
58
+ normal: iconColor || destructiveColor(!0),
59
+ hover: iconColor || destructiveColor(!0),
60
+ disabled: iconColor || destructiveColor(!0)
61
+ },
62
+ background: {
63
+ normal: bgColor || "var(--core-surface-primary)",
64
+ hover: bgColor || "var(--core-surface-primary)",
65
+ disabled: bgColorDisabled || "var(--core-surface-primary)"
66
+ },
67
+ borderColor: {
68
+ normal: destructive ? "var(--feedback-warning)" : "var(--core-outline-primary)",
69
+ hover: destructive ? "var(--feedback-warning)" : "var(--core-outline-primary)",
70
+ disabled: "var(--core-outline-primary)"
71
+ },
72
+ color: {
73
+ normal: labelColor || (destructive ? "var(--feedback-warning)" : "var(--core-text-primary)"),
74
+ hover: labelColor || (destructive ? "var(--feedback-warning)" : "var(--core-text-special)"),
75
+ disabled: "var(--core-text-disabled)"
76
+ }
77
+ }), [ labelColor, destructive, destructiveColor, bgColor, bgColorDisabled, iconColor ]), text = React.useMemo(() => ({
78
+ border: "1px",
79
+ iconColor: {
80
+ normal: destructiveColor(!0),
81
+ hover: destructiveColor(!0),
82
+ disabled: "var(--core-text-disabled)"
83
+ },
84
+ background: {
85
+ normal: "transparent",
86
+ hover: "transparent",
87
+ disabled: "transparent"
88
+ },
89
+ borderColor: {
90
+ normal: "transparent",
91
+ hover: "transparent",
92
+ disabled: "transparent"
93
+ },
94
+ color: {
95
+ normal: labelColor || destructiveColor(!1),
96
+ hover: labelColor || destructiveColor(!1),
97
+ disabled: "var(--core-text-disabled)"
98
+ }
99
+ }), [ destructiveColor, labelColor ]), colorStyles = React.useMemo(() => ({
100
+ solid: solid,
101
+ outline: outline,
102
+ text: text
103
+ }), [ solid, outline, text ]), setPadding = React.useCallback(side => round ? 0 : "left" === side && iconLeft || "right" === side && iconRight ? 20 : 24, [ round, iconLeft, iconRight ]), sizingStyles = React.useMemo(() => ({
104
+ large: {
105
+ height: 48,
106
+ gap: 8,
107
+ iconSize: iconSize,
108
+ paddingLeft: setPadding("left"),
109
+ paddingRight: setPadding("right"),
110
+ width: round ? "48px" : btnWidth || "auto",
111
+ borderRadius: null != borderRadius ? borderRadius : "500px"
112
+ },
113
+ medium: {
114
+ height: 36,
115
+ gap: 8,
116
+ iconSize: iconSize,
117
+ paddingLeft: setPadding("left"),
118
+ paddingRight: setPadding("right"),
119
+ width: round ? "36px" : btnWidth || "auto",
120
+ borderRadius: null != borderRadius ? borderRadius : "500px"
121
+ },
122
+ text: {
123
+ height: 20,
124
+ gap: 8,
125
+ iconSize: iconSize,
126
+ paddingLeft: 0,
127
+ paddingRight: 0,
128
+ btnWidth: btnWidth,
129
+ borderRadius: 0
130
+ }
131
+ }), [ iconSize, btnWidth, round, borderRadius, setPadding ]), handleMouseEnter = React.useCallback(e => {
132
+ if ("disabled" !== btnState && setBtnState("hover"), !(null == ref ? void 0 : ref.current) || !tooltip) return;
133
+ const tip = {
134
+ type: sharedTypes.ToolTipType.button,
135
+ payload: {
136
+ label: tooltip
137
+ },
138
+ event: e,
139
+ ref: ref
140
+ };
141
+ onToolTip(tip);
142
+ }, [ btnState, tooltip, onToolTip ]), handleMouseLeave = React.useCallback(() => {
143
+ "disabled" !== btnState && setBtnState("normal"), tooltip && onToolTip(null);
144
+ }, [ btnState, tooltip, onToolTip ]), handleDidStop = React.useCallback(() => {
145
+ setPlaying(!1), onClick(void 0);
146
+ }, [ onClick ]), shouldShowLabel = React.useMemo(() => !(playing && !iconLeft && !iconRight) && Boolean(label), [ playing, iconLeft, iconRight, label ]), buttonStyle = React.useMemo(() => ({
147
+ color: colorStyles[variant].color[btnState],
148
+ background: fill ? "var(--core-surface-primary)" : colorStyles[variant].background[state],
149
+ paddingRight: null != paddingRight ? paddingRight : sizingStyles[size].paddingRight,
150
+ paddingLeft: null != paddingLeft ? paddingLeft : sizingStyles[size].paddingLeft,
151
+ borderRadius: sizingStyles[size].borderRadius,
152
+ height: sizingStyles[size].height,
153
+ maxHeight: sizingStyles[size].height,
154
+ minHeight: sizingStyles[size].height,
155
+ flex: "fill" === width ? 1 : "unset",
156
+ gap: sizingStyles[size].gap,
157
+ borderWidth: colorStyles[variant].border,
158
+ borderStyle: "solid",
159
+ borderColor: colorStyles[variant].borderColor[btnState],
160
+ cursor: "disabled" === state ? "default" : "pointer",
161
+ transition: "all 0s ease-in-out 0s"
162
+ }), [ colorStyles, variant, btnState, fill, state, paddingRight, paddingLeft, sizingStyles, size, width ]), progressColor = React.useMemo(() => destructive ? "var(feedback-warning)" : colorStyles[variant].color[btnState], [ destructive, colorStyles, variant, btnState ]), setStyle = React.useCallback(value => void 0 === value ? "unset" : "number" == typeof value ? `${value}px` : value, []), iconDivSize = React.useMemo(() => round ? `${buttonStyle.minHeight}px` : iconSize ? setStyle(iconSize) : "unset", [ round, iconSize, buttonStyle, setStyle ]), cssVars = React.useMemo(() => ({
163
+ "--ui-button-decoration": underline ? "underline" : "unset",
164
+ "--ui-button-min-width": btnWidth ? setStyle(btnWidth) : "unset",
165
+ "--ui-button-icon-size": iconDivSize
166
+ }), [ underline, btnWidth, setStyle, iconDivSize ]);
167
+ return jsxRuntime.jsxs(react.motion.div, Object.assign({
168
+ id: divId,
169
+ className: `${css.button}${divClass}`,
170
+ ref: ref,
171
+ onMouseEnter: handleMouseEnter,
172
+ onMouseLeave: handleMouseLeave,
173
+ style: Object.assign(Object.assign(Object.assign({}, divStyle), buttonStyle), cssVars),
174
+ transition: transition,
175
+ variants: variants,
176
+ initial: initial,
177
+ animate: animate,
178
+ exit: exit,
179
+ onClick: handleClick
180
+ }, rest, {
181
+ children: [ !playing && iconLeft && jsxRuntime.jsx("div", {
182
+ className: css.icon,
183
+ children: jsxRuntime.jsx(_types.Icon, {
184
+ name: iconLeft,
185
+ size: sizingStyles[size].iconSize,
186
+ strokeColor: colorStyles[variant].iconColor[btnState],
187
+ pointer: "disabled" !== btnState
188
+ })
189
+ }), playing && iconLeft && jsxRuntime.jsx("div", {
190
+ className: css.icon,
191
+ children: jsxRuntime.jsx(ProgressIndicator.ProgressIndicator, {
192
+ show: playing,
193
+ didStop: handleDidStop,
194
+ duration: duration,
195
+ size: sizingStyles[size].iconSize,
196
+ color: progressColor,
197
+ inline: !0
198
+ })
199
+ }), playing && !iconLeft && !iconRight && jsxRuntime.jsx("div", {
200
+ className: css.icon,
201
+ children: jsxRuntime.jsx(ProgressIndicator.ProgressIndicator, {
202
+ show: playing,
203
+ didStop: handleDidStop,
204
+ duration: duration,
205
+ size: sizingStyles[size].iconSize,
206
+ color: progressColor,
207
+ inline: !1
208
+ })
209
+ }), shouldShowLabel && jsxRuntime.jsx("div", {
210
+ className: `${css.label} ${css[labelSize]}`,
211
+ children: label
212
+ }), playing && iconRight && jsxRuntime.jsx("div", {
213
+ className: css.icon,
214
+ children: jsxRuntime.jsx(ProgressIndicator.ProgressIndicator, {
215
+ show: playing,
216
+ didStop: handleDidStop,
217
+ duration: duration,
218
+ size: sizingStyles[size].iconSize,
219
+ color: progressColor,
220
+ inline: !0
221
+ })
222
+ }), !playing && iconRight && jsxRuntime.jsx("div", {
223
+ className: css.icon,
224
+ children: jsxRuntime.jsx(_types.Icon, {
225
+ name: iconRight,
226
+ size: sizingStyles[size].iconSize,
227
+ strokeColor: colorStyles[variant].iconColor[btnState],
228
+ pointer: "disabled" !== btnState
229
+ })
230
+ }), jsxRuntime.jsx(Dot.Dot, {
231
+ show: !playing && showDot
232
+ }), !playing && count && jsxRuntime.jsx("div", {
233
+ className: css.count,
234
+ children: jsxRuntime.jsx(Badge.Badge, {
235
+ variant: "light",
236
+ count: Number(count)
237
+ })
238
+ }) ]
239
+ }));
240
+ });
241
+
242
+ ButtonComponent.displayName = "Button";
243
+
244
+ const Button = React.memo(ButtonComponent);
245
+
246
+ exports.Button = Button;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var tslib_es6 = require("./tslib.es6-C8dZW5nY.js"), jsxRuntime = require("react/jsx-runtime"), React = require("react"), hooks_useTheme = require("../hooks/useTheme.js");
4
+
5
+ require("../theme/colors.js"), require("../hooks/useWindow.js");
6
+
7
+ var IconButton = require("./IconButton-B53y3z1_.js"), styleInject_es = require("./style-inject.es-CMuL-BfJ.js"), css_wrapper = "ButtonBar-module_wrapper__056Gm flexBox-module_rowStart__nJZnW", css_label = "ButtonBar-module_label__ubTGP flexBox-module_rowStart__nJZnW type-module_body-s-regular__8-FO-", css_button = "ButtonBar-module_button__woeDh flexBox-module_rowStart__nJZnW", css_selected = "ButtonBar-module_selected__0KKNw", css_divider = "ButtonBar-module_divider__kfIkV", css_last = "ButtonBar-module_last__1yYdd";
8
+
9
+ styleInject_es.styleInject(".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_body-xl-regular__zDf-z {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-xl-medium__R5GpK {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-xl-bold__SI-hC {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_heading-s-medium__jGIb2 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 20px;\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-s-bold__QFgN8 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\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: 500;\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: 600;\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: 500;\n\tfont-size: 30px;\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: 600;\n\tfont-size: 30px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-xl-medium__PUi44 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 36px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-xl-bold__1B6fk {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\n\tfont-size: 36px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}\n\n.ButtonBar-module_wrapper__056Gm {\n}\n\n.ButtonBar-module_label__ubTGP {\n\tcolor: var(--core-text-disabled);\n\tpadding-right: 4px;\n}\n\n.ButtonBar-module_button__woeDh {\n\theight: 32px;\n\tgap: 0;\n\tcursor: pointer;\n\tbackground: var(--core-surface-primary);\n\tcolor: var(--core-text-disabled);\n\t&:last-child {\n\t\t&:hover {\n\t\t\tbackground: var(--core-surface-primary);\n\t\t}\n\t}\n\t&:first-child {\n\t\t&:hover {\n\t\t\tbackground: var(--core-surface-primary);\n\t\t}\n\t}\n\t&:hover {\n\t\tbackground: var(--core-surface-primary);\n\t\tcolor: var(--core-text-primary);\n\t}\n}\n\n.ButtonBar-module_selected__0KKNw {\n\tbackground: var(--core-surface-primary);\n\tcolor: var(--core-link-primary);\n}\n\n.ButtonBar-module_divider__kfIkV {\n\tdisplay: block;\n\tbackground: var(--core-outline-primary);\n\twidth: 1px;\n\theight: 16px;\n\tmargin: 0 4px;\n}\n\n.ButtonBar-module_last__1yYdd {\n\tdisplay: none;\n}\n"),
10
+ exports.ButtonBar = function(props) {
11
+ const {options: options = [], current: current = 0, label: label, onChange: onChange = () => null, onToolTip: onToolTip = () => null} = props, divAttributes = tslib_es6.__rest(props, [ "options", "current", "label", "onChange", "onToolTip" ]), {id: divId, className: className, style: style} = divAttributes, rest = tslib_es6.__rest(divAttributes, [ "id", "className", "style" ]), divStyle = null != style ? style : {}, divClass = className ? ` ${className}` : "", theme = hooks_useTheme.useTheme(), [hovered, setHovered] = React.useState(-1), [currentPage, setCurrentPage] = React.useState(current);
12
+ React.useEffect(() => setCurrentPage(current), [ current ]);
13
+ const handleMouseEnter = React.useCallback(index => {
14
+ setHovered(index);
15
+ }, []), handleMouseLeave = React.useCallback(() => {
16
+ setHovered(-1);
17
+ }, []), handleClick = React.useCallback((button, index) => {
18
+ setCurrentPage(index), onChange(button);
19
+ }, [ onChange ]), display = React.useCallback(index => index === options.length - 1 ? css_last : "", [ options.length ]), selected = React.useCallback(index => currentPage === index ? css_selected : "", [ currentPage ]), iconColor = React.useCallback(index => {
20
+ const isHovered = hovered === index;
21
+ return currentPage === index ? theme.current.colors["core-icon-primary"] : isHovered ? theme.current.colors["core-button-primary"] : theme.current.colors["core-text-disabled"];
22
+ }, [ currentPage, hovered, theme ]);
23
+ return jsxRuntime.jsxs("div", Object.assign({
24
+ id: divId,
25
+ className: `${css_wrapper}${divClass}`,
26
+ style: divStyle
27
+ }, rest, {
28
+ children: [ label && jsxRuntime.jsx("div", {
29
+ className: css_label,
30
+ children: label
31
+ }), null == options ? void 0 : options.map((button, index) => jsxRuntime.jsxs("div", {
32
+ className: css_button,
33
+ onMouseEnter: () => handleMouseEnter(index),
34
+ onMouseLeave: () => handleMouseLeave(),
35
+ children: [ jsxRuntime.jsx("div", {
36
+ className: selected(index),
37
+ onClick: () => handleClick(button, index),
38
+ onKeyDown: () => handleClick(button, index),
39
+ children: jsxRuntime.jsx(IconButton.IconButton, {
40
+ icon: button.icon,
41
+ color: iconColor(index),
42
+ label: button.label,
43
+ tooltip: button.tip,
44
+ onToolTip: onToolTip,
45
+ hover: !0,
46
+ toggle: !1
47
+ })
48
+ }), jsxRuntime.jsx("div", {
49
+ className: `${css_divider} ${display(index)}`
50
+ }) ]
51
+ }, `button-bar-${button.icon}-${index}`)) ]
52
+ }));
53
+ };
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ var tslib_es6 = require("./tslib.es6-C8dZW5nY.js"), jsxRuntime = require("react/jsx-runtime"), React = require("react"), _types = require("./_types-B5xXv4NA.js"), styleInject_es = require("./style-inject.es-CMuL-BfJ.js"), css_card = "Card-module_card__PHKoO flexBox-module_rowStart__nJZnW type-module_body-m-regular__Qtp5G", css_icon = "Card-module_icon__k0FIP flexBox-module_row__PWxbe", css_label = "Card-module_label__mGere";
4
+
5
+ styleInject_es.styleInject(".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_body-xl-regular__zDf-z {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-regular);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-xl-medium__R5GpK {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-medium);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.1px;\n}.type-module_body-xl-bold__SI-hC {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: var(--font-weight-bold);\n\tfont-size: var(--font-size-xl);\n\tline-height: 162.5%;\n\ttext-decoration: none;\n\tletter-spacing: 0.15px;\n}.type-module_heading-s-medium__jGIb2 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 20px;\n\tline-height: 140%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-s-bold__QFgN8 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\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: 500;\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: 600;\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: 500;\n\tfont-size: 30px;\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: 600;\n\tfont-size: 30px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-xl-medium__PUi44 {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 500;\n\tfont-size: 36px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}.type-module_heading-xl-bold__1B6fk {\n\tfont-family: var(--font-family), sans-serif;\n\tfont-weight: 600;\n\tfont-size: 36px;\n\tline-height: 128.57%;\n\ttext-decoration: none;\n\tletter-spacing: 0.2px;\n}\n\n.Card-module_card__PHKoO {\n\tpadding: 8px 14px 8px 8px !important;\n\tcolor: var(--core-text-primary);\n\twidth: var(--card-width);\n\tmax-width: min-content;\n\tflex: var(--card-flex);\n\tgap: 8px;\n\tborder-radius: 8px;\n\tborder: 1px solid var(--core-outline-primary);\n\tcursor: pointer;\n\ttransition: all 0.25s ease-in-out 0s;\n\t&:hover {\n\t\tcolor: var(--core-button-primary);\n\t\tborder: 1px solid var(--core-button-primary);\n\t}\n}\n\n.Card-module_icon__k0FIP {\n\tmin-width: 20px;\n\tmin-height: 20px;\n\tmax-width: 20px;\n\tmax-height: 20px;\n}\n\n.Card-module_label__mGere {\n\tflex: 1;\n\tword-break: break-all;\n\ttext-overflow: ellipsis;\n\toverflow: hidden;\n\toverflow-wrap: anywhere;\n\tdisplay: -webkit-box;\n\twhite-space: nowrap;\n\t-webkit-line-clamp: 1;\n\t-webkit-box-orient: vertical;\n}\n");
6
+
7
+ const Card = React.memo(function(props) {
8
+ const {id: id, icon: icon, label: label, command: command, width: width, onCommand: onCommand = () => null} = props, divAttributes = tslib_es6.__rest(props, [ "id", "icon", "label", "command", "width", "onCommand" ]), {className: className, style: style} = divAttributes, rest = tslib_es6.__rest(divAttributes, [ "className", "style" ]), divStyle = null != style ? style : {}, divClass = className ? ` ${className}` : "", setStyle = React.useCallback(value => void 0 === value || "fill" === value ? "unset" : "string" == typeof value ? value : `${value}px`, []), cssVars = React.useMemo(() => ({
9
+ "--card-width": setStyle(width),
10
+ "--card-flex": "fill" === width ? "1" : "unset"
11
+ }), [ setStyle, width ]);
12
+ return jsxRuntime.jsxs("div", Object.assign({
13
+ id: id,
14
+ className: `${css_card}${divClass}`,
15
+ style: Object.assign(Object.assign({}, divStyle), cssVars),
16
+ onClick: () => onCommand({
17
+ id: id,
18
+ command: command
19
+ }),
20
+ onKeyDown: () => onCommand({
21
+ id: id,
22
+ command: command
23
+ })
24
+ }, rest, {
25
+ children: [ icon && jsxRuntime.jsx("div", {
26
+ className: css_icon,
27
+ children: jsxRuntime.jsx(_types.Icon, {
28
+ name: icon
29
+ })
30
+ }), label && jsxRuntime.jsx("div", {
31
+ className: css_label,
32
+ children: label
33
+ }) ]
34
+ }));
35
+ });
36
+
37
+ exports.Card = Card;