phx-react 1.3.1

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 (315) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/dist/cjs/commons/IconLoading.d.ts +5 -0
  4. package/dist/cjs/commons/IconLoading.js +20 -0
  5. package/dist/cjs/commons/IconLoading.js.map +1 -0
  6. package/dist/cjs/components/App.d.ts +3 -0
  7. package/dist/cjs/components/App.js +69 -0
  8. package/dist/cjs/components/App.js.map +1 -0
  9. package/dist/cjs/components/Button/Button.d.ts +20 -0
  10. package/dist/cjs/components/Button/Button.js +43 -0
  11. package/dist/cjs/components/Button/Button.js.map +1 -0
  12. package/dist/cjs/components/Button/index.d.ts +1 -0
  13. package/dist/cjs/components/Button/index.js +5 -0
  14. package/dist/cjs/components/Button/index.js.map +1 -0
  15. package/dist/cjs/components/Card/Card.d.ts +17 -0
  16. package/dist/cjs/components/Card/Card.js +28 -0
  17. package/dist/cjs/components/Card/Card.js.map +1 -0
  18. package/dist/cjs/components/Card/Footer.d.ts +3 -0
  19. package/dist/cjs/components/Card/Footer.js +11 -0
  20. package/dist/cjs/components/Card/Footer.js.map +1 -0
  21. package/dist/cjs/components/Card/Section.d.ts +8 -0
  22. package/dist/cjs/components/Card/Section.js +16 -0
  23. package/dist/cjs/components/Card/Section.js.map +1 -0
  24. package/dist/cjs/components/Card/WrapSection.d.ts +3 -0
  25. package/dist/cjs/components/Card/WrapSection.js +10 -0
  26. package/dist/cjs/components/Card/WrapSection.js.map +1 -0
  27. package/dist/cjs/components/Card/index.d.ts +1 -0
  28. package/dist/cjs/components/Card/index.js +5 -0
  29. package/dist/cjs/components/Card/index.js.map +1 -0
  30. package/dist/cjs/components/Checkbox/Checkbox.d.ts +14 -0
  31. package/dist/cjs/components/Checkbox/Checkbox.js +24 -0
  32. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -0
  33. package/dist/cjs/components/Checkbox/index.d.ts +1 -0
  34. package/dist/cjs/components/Checkbox/index.js +5 -0
  35. package/dist/cjs/components/Checkbox/index.js.map +1 -0
  36. package/dist/cjs/components/FormStep/FormStep.d.ts +26 -0
  37. package/dist/cjs/components/FormStep/FormStep.js +102 -0
  38. package/dist/cjs/components/FormStep/FormStep.js.map +1 -0
  39. package/dist/cjs/components/FormStep/index.d.ts +1 -0
  40. package/dist/cjs/components/FormStep/index.js +5 -0
  41. package/dist/cjs/components/FormStep/index.js.map +1 -0
  42. package/dist/cjs/components/FormWrap/FormWrap.d.ts +21 -0
  43. package/dist/cjs/components/FormWrap/FormWrap.js +30 -0
  44. package/dist/cjs/components/FormWrap/FormWrap.js.map +1 -0
  45. package/dist/cjs/components/FormWrap/index.d.ts +1 -0
  46. package/dist/cjs/components/FormWrap/index.js +5 -0
  47. package/dist/cjs/components/FormWrap/index.js.map +1 -0
  48. package/dist/cjs/components/Func/getLoginInfo.d.ts +1 -0
  49. package/dist/cjs/components/Func/getLoginInfo.js +11 -0
  50. package/dist/cjs/components/Func/getLoginInfo.js.map +1 -0
  51. package/dist/cjs/components/HeaderBar/HeaderBar.d.ts +15 -0
  52. package/dist/cjs/components/HeaderBar/HeaderBar.js +44 -0
  53. package/dist/cjs/components/HeaderBar/HeaderBar.js.map +1 -0
  54. package/dist/cjs/components/HeaderBar/index.d.ts +1 -0
  55. package/dist/cjs/components/HeaderBar/index.js +5 -0
  56. package/dist/cjs/components/HeaderBar/index.js.map +1 -0
  57. package/dist/cjs/components/Input/Input.d.ts +12 -0
  58. package/dist/cjs/components/Input/Input.js +21 -0
  59. package/dist/cjs/components/Input/Input.js.map +1 -0
  60. package/dist/cjs/components/Input/Textarea.d.ts +7 -0
  61. package/dist/cjs/components/Input/Textarea.js +12 -0
  62. package/dist/cjs/components/Input/Textarea.js.map +1 -0
  63. package/dist/cjs/components/Input/index.d.ts +1 -0
  64. package/dist/cjs/components/Input/index.js +5 -0
  65. package/dist/cjs/components/Input/index.js.map +1 -0
  66. package/dist/cjs/components/Loading/Spinner.d.ts +6 -0
  67. package/dist/cjs/components/Loading/Spinner.js +13 -0
  68. package/dist/cjs/components/Loading/Spinner.js.map +1 -0
  69. package/dist/cjs/components/Loading/index.d.ts +1 -0
  70. package/dist/cjs/components/Loading/index.js +5 -0
  71. package/dist/cjs/components/Loading/index.js.map +1 -0
  72. package/dist/cjs/components/MainWrap/MainWrap.d.ts +8 -0
  73. package/dist/cjs/components/MainWrap/MainWrap.js +190 -0
  74. package/dist/cjs/components/MainWrap/MainWrap.js.map +1 -0
  75. package/dist/cjs/components/MainWrap/index.d.ts +1 -0
  76. package/dist/cjs/components/MainWrap/index.js +5 -0
  77. package/dist/cjs/components/MainWrap/index.js.map +1 -0
  78. package/dist/cjs/components/MainWrap/navigator/nav-mobile-content.d.ts +2 -0
  79. package/dist/cjs/components/MainWrap/navigator/nav-mobile-content.js +49 -0
  80. package/dist/cjs/components/MainWrap/navigator/nav-mobile-content.js.map +1 -0
  81. package/dist/cjs/components/MainWrap/navigator/nav-mobile.d.ts +2 -0
  82. package/dist/cjs/components/MainWrap/navigator/nav-mobile.js +12 -0
  83. package/dist/cjs/components/MainWrap/navigator/nav-mobile.js.map +1 -0
  84. package/dist/cjs/components/Notifications/Notifications.d.ts +9 -0
  85. package/dist/cjs/components/Notifications/Notifications.js +55 -0
  86. package/dist/cjs/components/Notifications/Notifications.js.map +1 -0
  87. package/dist/cjs/components/Notifications/index.d.ts +1 -0
  88. package/dist/cjs/components/Notifications/index.js +5 -0
  89. package/dist/cjs/components/Notifications/index.js.map +1 -0
  90. package/dist/cjs/components/Radio/Radio.d.ts +9 -0
  91. package/dist/cjs/components/Radio/Radio.js +15 -0
  92. package/dist/cjs/components/Radio/Radio.js.map +1 -0
  93. package/dist/cjs/components/Radio/index.d.ts +1 -0
  94. package/dist/cjs/components/Radio/index.js +5 -0
  95. package/dist/cjs/components/Radio/index.js.map +1 -0
  96. package/dist/cjs/components/Select/Select.d.ts +12 -0
  97. package/dist/cjs/components/Select/Select.js +19 -0
  98. package/dist/cjs/components/Select/Select.js.map +1 -0
  99. package/dist/cjs/components/Select/index.d.ts +1 -0
  100. package/dist/cjs/components/Select/index.js +5 -0
  101. package/dist/cjs/components/Select/index.js.map +1 -0
  102. package/dist/cjs/components/Skeleton/SkeletonLarge.d.ts +6 -0
  103. package/dist/cjs/components/Skeleton/SkeletonLarge.js +40 -0
  104. package/dist/cjs/components/Skeleton/SkeletonLarge.js.map +1 -0
  105. package/dist/cjs/components/Skeleton/index.d.ts +1 -0
  106. package/dist/cjs/components/Skeleton/index.js +5 -0
  107. package/dist/cjs/components/Skeleton/index.js.map +1 -0
  108. package/dist/cjs/components/Step/Step.d.ts +25 -0
  109. package/dist/cjs/components/Step/Step.js +102 -0
  110. package/dist/cjs/components/Step/Step.js.map +1 -0
  111. package/dist/cjs/components/Step/index.d.ts +1 -0
  112. package/dist/cjs/components/Step/index.js +5 -0
  113. package/dist/cjs/components/Step/index.js.map +1 -0
  114. package/dist/cjs/components/Table/EmptyRecord.d.ts +2 -0
  115. package/dist/cjs/components/Table/EmptyRecord.js +17 -0
  116. package/dist/cjs/components/Table/EmptyRecord.js.map +1 -0
  117. package/dist/cjs/components/Table/EmptySearchResult.d.ts +2 -0
  118. package/dist/cjs/components/Table/EmptySearchResult.js +16 -0
  119. package/dist/cjs/components/Table/EmptySearchResult.js.map +1 -0
  120. package/dist/cjs/components/Table/Pagination.d.ts +3 -0
  121. package/dist/cjs/components/Table/Pagination.js +59 -0
  122. package/dist/cjs/components/Table/Pagination.js.map +1 -0
  123. package/dist/cjs/components/Table/RowTable.d.ts +13 -0
  124. package/dist/cjs/components/Table/RowTable.js +91 -0
  125. package/dist/cjs/components/Table/RowTable.js.map +1 -0
  126. package/dist/cjs/components/Table/Table.d.ts +33 -0
  127. package/dist/cjs/components/Table/Table.js +252 -0
  128. package/dist/cjs/components/Table/Table.js.map +1 -0
  129. package/dist/cjs/components/Table/index.d.ts +1 -0
  130. package/dist/cjs/components/Table/index.js +5 -0
  131. package/dist/cjs/components/Table/index.js.map +1 -0
  132. package/dist/cjs/components/Table/sort.d.ts +3 -0
  133. package/dist/cjs/components/Table/sort.js +33 -0
  134. package/dist/cjs/components/Table/sort.js.map +1 -0
  135. package/dist/cjs/components/types.d.ts +77 -0
  136. package/dist/cjs/components/types.js +12 -0
  137. package/dist/cjs/components/types.js.map +1 -0
  138. package/dist/cjs/demo/AssessmentAction.d.ts +2 -0
  139. package/dist/cjs/demo/AssessmentAction.js +12 -0
  140. package/dist/cjs/demo/AssessmentAction.js.map +1 -0
  141. package/dist/cjs/demo/ContentWrap.d.ts +6 -0
  142. package/dist/cjs/demo/ContentWrap.js +10 -0
  143. package/dist/cjs/demo/ContentWrap.js.map +1 -0
  144. package/dist/cjs/demo/TableDemo.d.ts +3 -0
  145. package/dist/cjs/demo/TableDemo.js +85 -0
  146. package/dist/cjs/demo/TableDemo.js.map +1 -0
  147. package/dist/cjs/index.d.ts +18 -0
  148. package/dist/cjs/index.js +39 -0
  149. package/dist/cjs/index.js.map +1 -0
  150. package/dist/cjs/lib/apollo-wrapper.d.ts +2 -0
  151. package/dist/cjs/lib/apollo-wrapper.js +36 -0
  152. package/dist/cjs/lib/apollo-wrapper.js.map +1 -0
  153. package/dist/cjs/utils/query.d.ts +3 -0
  154. package/dist/cjs/utils/query.js +55 -0
  155. package/dist/cjs/utils/query.js.map +1 -0
  156. package/dist/cjs/utils/use-disable-interaction.d.ts +2 -0
  157. package/dist/cjs/utils/use-disable-interaction.js +18 -0
  158. package/dist/cjs/utils/use-disable-interaction.js.map +1 -0
  159. package/dist/esm/commons/IconLoading.d.ts +5 -0
  160. package/dist/esm/commons/IconLoading.js +15 -0
  161. package/dist/esm/commons/IconLoading.js.map +1 -0
  162. package/dist/esm/components/App.d.ts +3 -0
  163. package/dist/esm/components/App.js +66 -0
  164. package/dist/esm/components/App.js.map +1 -0
  165. package/dist/esm/components/Button/Button.d.ts +20 -0
  166. package/dist/esm/components/Button/Button.js +39 -0
  167. package/dist/esm/components/Button/Button.js.map +1 -0
  168. package/dist/esm/components/Button/index.d.ts +1 -0
  169. package/dist/esm/components/Button/index.js +2 -0
  170. package/dist/esm/components/Button/index.js.map +1 -0
  171. package/dist/esm/components/Card/Card.d.ts +17 -0
  172. package/dist/esm/components/Card/Card.js +23 -0
  173. package/dist/esm/components/Card/Card.js.map +1 -0
  174. package/dist/esm/components/Card/Footer.d.ts +3 -0
  175. package/dist/esm/components/Card/Footer.js +8 -0
  176. package/dist/esm/components/Card/Footer.js.map +1 -0
  177. package/dist/esm/components/Card/Section.d.ts +8 -0
  178. package/dist/esm/components/Card/Section.js +13 -0
  179. package/dist/esm/components/Card/Section.js.map +1 -0
  180. package/dist/esm/components/Card/WrapSection.d.ts +3 -0
  181. package/dist/esm/components/Card/WrapSection.js +7 -0
  182. package/dist/esm/components/Card/WrapSection.js.map +1 -0
  183. package/dist/esm/components/Card/index.d.ts +1 -0
  184. package/dist/esm/components/Card/index.js +2 -0
  185. package/dist/esm/components/Card/index.js.map +1 -0
  186. package/dist/esm/components/Checkbox/Checkbox.d.ts +14 -0
  187. package/dist/esm/components/Checkbox/Checkbox.js +20 -0
  188. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -0
  189. package/dist/esm/components/Checkbox/index.d.ts +1 -0
  190. package/dist/esm/components/Checkbox/index.js +2 -0
  191. package/dist/esm/components/Checkbox/index.js.map +1 -0
  192. package/dist/esm/components/FormStep/FormStep.d.ts +26 -0
  193. package/dist/esm/components/FormStep/FormStep.js +98 -0
  194. package/dist/esm/components/FormStep/FormStep.js.map +1 -0
  195. package/dist/esm/components/FormStep/index.d.ts +1 -0
  196. package/dist/esm/components/FormStep/index.js +2 -0
  197. package/dist/esm/components/FormStep/index.js.map +1 -0
  198. package/dist/esm/components/FormWrap/FormWrap.d.ts +21 -0
  199. package/dist/esm/components/FormWrap/FormWrap.js +25 -0
  200. package/dist/esm/components/FormWrap/FormWrap.js.map +1 -0
  201. package/dist/esm/components/FormWrap/index.d.ts +1 -0
  202. package/dist/esm/components/FormWrap/index.js +2 -0
  203. package/dist/esm/components/FormWrap/index.js.map +1 -0
  204. package/dist/esm/components/Func/getLoginInfo.d.ts +1 -0
  205. package/dist/esm/components/Func/getLoginInfo.js +7 -0
  206. package/dist/esm/components/Func/getLoginInfo.js.map +1 -0
  207. package/dist/esm/components/HeaderBar/HeaderBar.d.ts +15 -0
  208. package/dist/esm/components/HeaderBar/HeaderBar.js +39 -0
  209. package/dist/esm/components/HeaderBar/HeaderBar.js.map +1 -0
  210. package/dist/esm/components/HeaderBar/index.d.ts +1 -0
  211. package/dist/esm/components/HeaderBar/index.js +2 -0
  212. package/dist/esm/components/HeaderBar/index.js.map +1 -0
  213. package/dist/esm/components/Input/Input.d.ts +12 -0
  214. package/dist/esm/components/Input/Input.js +17 -0
  215. package/dist/esm/components/Input/Input.js.map +1 -0
  216. package/dist/esm/components/Input/Textarea.d.ts +7 -0
  217. package/dist/esm/components/Input/Textarea.js +8 -0
  218. package/dist/esm/components/Input/Textarea.js.map +1 -0
  219. package/dist/esm/components/Input/index.d.ts +1 -0
  220. package/dist/esm/components/Input/index.js +2 -0
  221. package/dist/esm/components/Input/index.js.map +1 -0
  222. package/dist/esm/components/Loading/Spinner.d.ts +6 -0
  223. package/dist/esm/components/Loading/Spinner.js +8 -0
  224. package/dist/esm/components/Loading/Spinner.js.map +1 -0
  225. package/dist/esm/components/Loading/index.d.ts +1 -0
  226. package/dist/esm/components/Loading/index.js +2 -0
  227. package/dist/esm/components/Loading/index.js.map +1 -0
  228. package/dist/esm/components/MainWrap/MainWrap.d.ts +8 -0
  229. package/dist/esm/components/MainWrap/MainWrap.js +186 -0
  230. package/dist/esm/components/MainWrap/MainWrap.js.map +1 -0
  231. package/dist/esm/components/MainWrap/index.d.ts +1 -0
  232. package/dist/esm/components/MainWrap/index.js +2 -0
  233. package/dist/esm/components/MainWrap/index.js.map +1 -0
  234. package/dist/esm/components/MainWrap/navigator/nav-mobile-content.d.ts +2 -0
  235. package/dist/esm/components/MainWrap/navigator/nav-mobile-content.js +45 -0
  236. package/dist/esm/components/MainWrap/navigator/nav-mobile-content.js.map +1 -0
  237. package/dist/esm/components/MainWrap/navigator/nav-mobile.d.ts +2 -0
  238. package/dist/esm/components/MainWrap/navigator/nav-mobile.js +8 -0
  239. package/dist/esm/components/MainWrap/navigator/nav-mobile.js.map +1 -0
  240. package/dist/esm/components/Notifications/Notifications.d.ts +9 -0
  241. package/dist/esm/components/Notifications/Notifications.js +50 -0
  242. package/dist/esm/components/Notifications/Notifications.js.map +1 -0
  243. package/dist/esm/components/Notifications/index.d.ts +1 -0
  244. package/dist/esm/components/Notifications/index.js +2 -0
  245. package/dist/esm/components/Notifications/index.js.map +1 -0
  246. package/dist/esm/components/Radio/Radio.d.ts +9 -0
  247. package/dist/esm/components/Radio/Radio.js +11 -0
  248. package/dist/esm/components/Radio/Radio.js.map +1 -0
  249. package/dist/esm/components/Radio/index.d.ts +1 -0
  250. package/dist/esm/components/Radio/index.js +2 -0
  251. package/dist/esm/components/Radio/index.js.map +1 -0
  252. package/dist/esm/components/Select/Select.d.ts +12 -0
  253. package/dist/esm/components/Select/Select.js +15 -0
  254. package/dist/esm/components/Select/Select.js.map +1 -0
  255. package/dist/esm/components/Select/index.d.ts +1 -0
  256. package/dist/esm/components/Select/index.js +2 -0
  257. package/dist/esm/components/Select/index.js.map +1 -0
  258. package/dist/esm/components/Skeleton/SkeletonLarge.d.ts +6 -0
  259. package/dist/esm/components/Skeleton/SkeletonLarge.js +35 -0
  260. package/dist/esm/components/Skeleton/SkeletonLarge.js.map +1 -0
  261. package/dist/esm/components/Skeleton/index.d.ts +1 -0
  262. package/dist/esm/components/Skeleton/index.js +2 -0
  263. package/dist/esm/components/Skeleton/index.js.map +1 -0
  264. package/dist/esm/components/Step/Step.d.ts +25 -0
  265. package/dist/esm/components/Step/Step.js +98 -0
  266. package/dist/esm/components/Step/Step.js.map +1 -0
  267. package/dist/esm/components/Step/index.d.ts +1 -0
  268. package/dist/esm/components/Step/index.js +2 -0
  269. package/dist/esm/components/Step/index.js.map +1 -0
  270. package/dist/esm/components/Table/EmptyRecord.d.ts +2 -0
  271. package/dist/esm/components/Table/EmptyRecord.js +13 -0
  272. package/dist/esm/components/Table/EmptyRecord.js.map +1 -0
  273. package/dist/esm/components/Table/EmptySearchResult.d.ts +2 -0
  274. package/dist/esm/components/Table/EmptySearchResult.js +12 -0
  275. package/dist/esm/components/Table/EmptySearchResult.js.map +1 -0
  276. package/dist/esm/components/Table/Pagination.d.ts +3 -0
  277. package/dist/esm/components/Table/Pagination.js +56 -0
  278. package/dist/esm/components/Table/Pagination.js.map +1 -0
  279. package/dist/esm/components/Table/RowTable.d.ts +13 -0
  280. package/dist/esm/components/Table/RowTable.js +87 -0
  281. package/dist/esm/components/Table/RowTable.js.map +1 -0
  282. package/dist/esm/components/Table/Table.d.ts +33 -0
  283. package/dist/esm/components/Table/Table.js +248 -0
  284. package/dist/esm/components/Table/Table.js.map +1 -0
  285. package/dist/esm/components/Table/index.d.ts +1 -0
  286. package/dist/esm/components/Table/index.js +2 -0
  287. package/dist/esm/components/Table/index.js.map +1 -0
  288. package/dist/esm/components/Table/sort.d.ts +3 -0
  289. package/dist/esm/components/Table/sort.js +30 -0
  290. package/dist/esm/components/Table/sort.js.map +1 -0
  291. package/dist/esm/components/types.d.ts +77 -0
  292. package/dist/esm/components/types.js +8 -0
  293. package/dist/esm/components/types.js.map +1 -0
  294. package/dist/esm/demo/AssessmentAction.d.ts +2 -0
  295. package/dist/esm/demo/AssessmentAction.js +7 -0
  296. package/dist/esm/demo/AssessmentAction.js.map +1 -0
  297. package/dist/esm/demo/ContentWrap.d.ts +6 -0
  298. package/dist/esm/demo/ContentWrap.js +7 -0
  299. package/dist/esm/demo/ContentWrap.js.map +1 -0
  300. package/dist/esm/demo/TableDemo.d.ts +3 -0
  301. package/dist/esm/demo/TableDemo.js +82 -0
  302. package/dist/esm/demo/TableDemo.js.map +1 -0
  303. package/dist/esm/index.d.ts +18 -0
  304. package/dist/esm/index.js +19 -0
  305. package/dist/esm/index.js.map +1 -0
  306. package/dist/esm/lib/apollo-wrapper.d.ts +2 -0
  307. package/dist/esm/lib/apollo-wrapper.js +31 -0
  308. package/dist/esm/lib/apollo-wrapper.js.map +1 -0
  309. package/dist/esm/utils/query.d.ts +3 -0
  310. package/dist/esm/utils/query.js +50 -0
  311. package/dist/esm/utils/query.js.map +1 -0
  312. package/dist/esm/utils/use-disable-interaction.d.ts +2 -0
  313. package/dist/esm/utils/use-disable-interaction.js +14 -0
  314. package/dist/esm/utils/use-disable-interaction.js.map +1 -0
  315. package/package.json +97 -0
@@ -0,0 +1,77 @@
1
+ import type React from 'react';
2
+ export declare type Target = '_blank' | '_self' | '_parent' | '_top';
3
+ declare type Falsy = boolean | undefined | null | 0;
4
+ export declare function classNames(...classes: (string | Falsy)[]): string;
5
+ export interface BaseInput {
6
+ register?: any;
7
+ errors?: any;
8
+ setError?: any;
9
+ clearErrors?: any;
10
+ }
11
+ export interface BaseButton {
12
+ /** A unique identifier for the button */
13
+ id?: string;
14
+ /** A destination to link to, rendered in the href attribute of a link */
15
+ url?: string;
16
+ /** Forces url to open in a new tab */
17
+ external?: boolean;
18
+ /** Tells the browser to download the url instead of opening it. Provides a hint for the downloaded filename if it is a string value */
19
+ download?: string | boolean;
20
+ /** Allows the button to submit a form */
21
+ submit?: boolean;
22
+ /** Disables the button, disallowing merchant interaction */
23
+ disabled?: boolean;
24
+ /** Replaces button text with a spinner while a background action is being performed */
25
+ loading?: boolean;
26
+ /** Callback when clicked */
27
+ onClick?(): unknown;
28
+ className?: string;
29
+ }
30
+ export declare type IconSource = React.FunctionComponent<React.SVGProps<SVGSVGElement>> | 'placeholder' | string;
31
+ export interface ComplexAction extends Action, SubmitAction, DisableableAction, DestructableAction, LoadableAction {
32
+ }
33
+ export interface MenuActionDescriptor extends ComplexAction, TooltipAction {
34
+ /** Zero-indexed numerical position. Overrides the action's order in the menu */
35
+ index?: number;
36
+ }
37
+ export interface Action {
38
+ /** A unique identifier for the action */
39
+ id?: string;
40
+ /** Content the action displays */
41
+ content?: string;
42
+ /** Visually hidden text for screen readers */
43
+ accessibilityLabel?: string;
44
+ /** A destination to link to, rendered in the action */
45
+ url?: string;
46
+ /** Forces url to open in a new tab */
47
+ external?: boolean;
48
+ /** Where to display the url */
49
+ target?: Target;
50
+ /** Callback when an action takes place */
51
+ onClick?(): void;
52
+ /** Callback when mouse enter */
53
+ onMouseEnter?(): void;
54
+ /** Callback when element is touched */
55
+ onTouchStart?(): void;
56
+ }
57
+ export interface DisableableAction extends Action {
58
+ /** Whether or not the action is disabled */
59
+ disabled?: boolean;
60
+ }
61
+ export interface SubmitAction extends Action {
62
+ /** Whether or not the action is disabled */
63
+ submit?: boolean;
64
+ }
65
+ export interface DestructableAction extends Action {
66
+ /** Destructive action */
67
+ destructive?: boolean;
68
+ }
69
+ export interface LoadableAction extends Action {
70
+ /** Should a spinner be displayed */
71
+ loading?: boolean;
72
+ }
73
+ export interface TooltipAction {
74
+ /** Text content to render in a tooltip */
75
+ helpText?: React.ReactNode;
76
+ }
77
+ export {};
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.classNames = void 0;
4
+ function classNames() {
5
+ var classes = [];
6
+ for (var _i = 0; _i < arguments.length; _i++) {
7
+ classes[_i] = arguments[_i];
8
+ }
9
+ return classes.filter(Boolean).join(' ');
10
+ }
11
+ exports.classNames = classNames;
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/types.ts"],"names":[],"mappings":";;;AAKA,SAAgB,UAAU;IAAC,iBAA8B;SAA9B,UAA8B,EAA9B,qBAA8B,EAA9B,IAA8B;QAA9B,4BAA8B;;IACvD,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1C,CAAC;AAFD,gCAEC"}
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare function AssessmentAction(props: any): JSX.Element;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.AssessmentAction = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = tslib_1.__importDefault(require("react"));
6
+ function AssessmentAction(props) {
7
+ var itemBody = props.itemBody;
8
+ return (react_1["default"].createElement(react_1["default"].Fragment, null,
9
+ react_1["default"].createElement("span", { className: 'block max-w-xs truncate' }, itemBody)));
10
+ }
11
+ exports.AssessmentAction = AssessmentAction;
12
+ //# sourceMappingURL=AssessmentAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssessmentAction.js","sourceRoot":"","sources":["../../../src/demo/AssessmentAction.tsx"],"names":[],"mappings":";;;;AAAA,wDAAyB;AAEzB,SAAgB,gBAAgB,CAAC,KAAU;IACjC,IAAA,QAAQ,GAAK,KAAK,SAAV,CAAU;IAE1B,OAAO,CACL;QACE,2CAAM,SAAS,EAAC,yBAAyB,IAAE,QAAQ,CAAQ,CAC1D,CACJ,CAAA;AACH,CAAC;AARD,4CAQC"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ declare const ContentWrap: {
3
+ (): JSX.Element;
4
+ propTypes: {};
5
+ };
6
+ export default ContentWrap;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = tslib_1.__importDefault(require("react"));
5
+ var ContentWrap = function () {
6
+ return (react_1["default"].createElement("div", null, "Content wrap Content wrap Content wrapContent wrapContent wrapContent wrapContent wrapContent wrapContent wrapContent wrapContent wrap"));
7
+ };
8
+ ContentWrap.propTypes = {};
9
+ exports["default"] = ContentWrap;
10
+ //# sourceMappingURL=ContentWrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentWrap.js","sourceRoot":"","sources":["../../../src/demo/ContentWrap.tsx"],"names":[],"mappings":";;;AAAA,wDAAyB;AAEzB,IAAM,WAAW,GAAG;IAClB,OAAO,CACL,uLAGM,CACP,CAAA;AACH,CAAC,CAAA;AAED,WAAW,CAAC,SAAS,GAAG,EAAE,CAAA;AAE1B,qBAAe,WAAW,CAAA"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const TableDemo: () => JSX.Element;
3
+ export default TableDemo;
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = tslib_1.__importStar(require("react"));
5
+ var AssessmentAction_1 = require("./AssessmentAction");
6
+ var Table_1 = require("../components/Table");
7
+ var apollo_wrapper_1 = require("../lib/apollo-wrapper");
8
+ var list = function (pagination, fieldSort, sortDirection) {
9
+ return {
10
+ keyResult: 'admissions_form_data',
11
+ query: "query getListAdmissions {\n admissions_form_data(\n limit: 10,\n offset: ".concat(pagination * 10, ", \n order_by: {").concat(fieldSort, ": ").concat(sortDirection, "}\n where: {\n deleted_at: {_is_null: true}}, \n ) {\n id\n admissions_code\n student_name\n created_at\n address_id \n email\n gender\n parent_name\n phone_number\n classroom {\n code\n name\n }\n }\n \n admissions_form_data_aggregate(where: {deleted_at: {_is_null: true}}) {\n aggregate {\n count\n }\n }\n }")
12
+ };
13
+ };
14
+ var search = function (pagination, fieldSort, sortDirection) {
15
+ return {
16
+ enable: true,
17
+ keyResult: 'admissions_form_data',
18
+ query: "query getListadmissionsBySearch {\n admissions_form_data(\n limit: 10, \n offset: ".concat(pagination * 10, ",\n order_by: {").concat(fieldSort, ": ").concat(sortDirection, "},\n where: {_or: [{admissions_code: {_ilike: \"%@value%\"}}, {student_name: {_ilike: \"%@value%\"}}], deleted_at: {_is_null: true}}\n ){\n id\n admissions_code\n student_name\n created_at\n address_id\n email\n gender\n parent_name\n phone_number\n }\n \n admissions_form_data_aggregate(\n where: {_or: [{admissions_code: {_ilike: \"%@value%\"}}, {student_name: {_ilike: \"%@value%\"}}], deleted_at: {_is_null: true}}\n ){\n aggregate {\n count\n }\n }\n }")
19
+ };
20
+ };
21
+ var dateStrToDate = function (date) {
22
+ return date ? date.slice(8, 10) + '/' + date.slice(5, 7) + '/' + date.slice(0, 4) : '';
23
+ };
24
+ var TableDemo = function () {
25
+ var _a = (0, react_1.useState)('created_at'), fieldSort = _a[0], setFieldSort = _a[1];
26
+ var _b = (0, react_1.useState)('desc'), sortDirection = _b[0], setSortDirection = _b[1];
27
+ var sortData = function (fieldSort, sortDirection) {
28
+ setFieldSort(fieldSort);
29
+ setSortDirection(sortDirection);
30
+ };
31
+ var _c = (0, react_1.useState)(0), pagination = _c[0], setPagination = _c[1];
32
+ var paginationData = function (pagi) {
33
+ setPagination(pagi);
34
+ };
35
+ var searchQuery = search(pagination, fieldSort, sortDirection);
36
+ var thHeader = ['Mã tuyển sinh', 'Học sinh', 'Ngày tạo'];
37
+ var thBody = ['id', 'admissions_code', 'student_name', 'created_at'];
38
+ var thComponent = {
39
+ // @ts-ignore
40
+ created_at: function bind(value, itemBody) {
41
+ return dateStrToDate(itemBody.created_at);
42
+ },
43
+ student_name: function bind(itemBody) {
44
+ return react_1["default"].createElement(AssessmentAction_1.AssessmentAction, { itemBody: itemBody });
45
+ }
46
+ };
47
+ var thBodyFilter = function (value) { return value; };
48
+ var listQuery = list(pagination, fieldSort, sortDirection);
49
+ var sort = {
50
+ enable: true,
51
+ sortList: [
52
+ {
53
+ id: 'TenAZ',
54
+ name: 'Theo tên từ A đến Z',
55
+ field: 'student_name',
56
+ sortDirection: 'asc'
57
+ },
58
+ {
59
+ id: 'TenZA',
60
+ name: 'Theo tên từ Z đến A',
61
+ field: 'student_name',
62
+ sortDirection: 'desc'
63
+ },
64
+ {
65
+ id: 'ngayTaoMoiNhat',
66
+ name: 'Mới nhất',
67
+ field: 'created_at',
68
+ sortDirection: 'desc'
69
+ },
70
+ {
71
+ id: 'ngayTaoCuNhat',
72
+ name: 'Cũ nhất',
73
+ field: 'created_at',
74
+ sortDirection: 'asc'
75
+ },
76
+ ],
77
+ defaultActive: 'ngayTaoMoiNhat'
78
+ };
79
+ return (react_1["default"].createElement(apollo_wrapper_1.ApolloWrapper, null,
80
+ react_1["default"].createElement(Table_1.PHXTable, { list: listQuery, paginationData: paginationData, search: searchQuery, sort: sort, sortData: sortData, thBody: thBody, thBodyComponent: thComponent,
81
+ // @ts-ignore
82
+ thBodyFilter: thBodyFilter, thHeader: thHeader })));
83
+ };
84
+ exports["default"] = TableDemo;
85
+ //# sourceMappingURL=TableDemo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableDemo.js","sourceRoot":"","sources":["../../../src/demo/TableDemo.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { PHXStep } from './components/Step/Step';
2
+ import MyCounter from './components/App';
3
+ import { PHXButton } from './components/Button';
4
+ import { PHXCard } from './components/Card';
5
+ import { PHXSpinner } from './components/Loading';
6
+ import { MainWrap } from './components/MainWrap';
7
+ import { PHXTable } from './components/Table';
8
+ import { PHXFormWrap } from './components/FormWrap';
9
+ import { PHXHeaderBar } from './components/HeaderBar';
10
+ import { PHXInput } from './components/Input';
11
+ import { PHXSelect } from './components/Select';
12
+ import { PHXRadio } from './components/Radio';
13
+ import { PHXCheckbox } from './components/Checkbox';
14
+ import { PHXFormStep } from './components/FormStep';
15
+ import { PHXNotifications } from './components/Notifications';
16
+ import { PHXSkeletonLarge } from './components/Skeleton';
17
+ import funcGetLoggedInfo from './components/Func/getLoginInfo';
18
+ export { MyCounter, PHXButton, PHXCard, PHXSpinner, MainWrap, PHXFormWrap, PHXHeaderBar, PHXTable, PHXInput, PHXSelect, PHXRadio, PHXCheckbox, PHXFormStep, PHXNotifications, PHXStep, PHXSkeletonLarge, funcGetLoggedInfo, };
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.funcGetLoggedInfo = exports.PHXSkeletonLarge = exports.PHXStep = exports.PHXNotifications = exports.PHXFormStep = exports.PHXCheckbox = exports.PHXRadio = exports.PHXSelect = exports.PHXInput = exports.PHXTable = exports.PHXHeaderBar = exports.PHXFormWrap = exports.MainWrap = exports.PHXSpinner = exports.PHXCard = exports.PHXButton = exports.MyCounter = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var Step_1 = require("./components/Step/Step");
6
+ exports.PHXStep = Step_1.PHXStep;
7
+ var App_1 = tslib_1.__importDefault(require("./components/App"));
8
+ exports.MyCounter = App_1["default"];
9
+ var Button_1 = require("./components/Button");
10
+ exports.PHXButton = Button_1.PHXButton;
11
+ var Card_1 = require("./components/Card");
12
+ exports.PHXCard = Card_1.PHXCard;
13
+ var Loading_1 = require("./components/Loading");
14
+ exports.PHXSpinner = Loading_1.PHXSpinner;
15
+ var MainWrap_1 = require("./components/MainWrap");
16
+ exports.MainWrap = MainWrap_1.MainWrap;
17
+ var Table_1 = require("./components/Table");
18
+ exports.PHXTable = Table_1.PHXTable;
19
+ var FormWrap_1 = require("./components/FormWrap");
20
+ exports.PHXFormWrap = FormWrap_1.PHXFormWrap;
21
+ var HeaderBar_1 = require("./components/HeaderBar");
22
+ exports.PHXHeaderBar = HeaderBar_1.PHXHeaderBar;
23
+ var Input_1 = require("./components/Input");
24
+ exports.PHXInput = Input_1.PHXInput;
25
+ var Select_1 = require("./components/Select");
26
+ exports.PHXSelect = Select_1.PHXSelect;
27
+ var Radio_1 = require("./components/Radio");
28
+ exports.PHXRadio = Radio_1.PHXRadio;
29
+ var Checkbox_1 = require("./components/Checkbox");
30
+ exports.PHXCheckbox = Checkbox_1.PHXCheckbox;
31
+ var FormStep_1 = require("./components/FormStep");
32
+ exports.PHXFormStep = FormStep_1.PHXFormStep;
33
+ var Notifications_1 = require("./components/Notifications");
34
+ exports.PHXNotifications = Notifications_1.PHXNotifications;
35
+ var Skeleton_1 = require("./components/Skeleton");
36
+ exports.PHXSkeletonLarge = Skeleton_1.PHXSkeletonLarge;
37
+ var getLoginInfo_1 = tslib_1.__importDefault(require("./components/Func/getLoginInfo"));
38
+ exports.funcGetLoggedInfo = getLoginInfo_1["default"];
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,+CAAgD;AAiC9C,kBAjCO,cAAO,CAiCP;AAhCT,iEAAwC;AAkBtC,oBAlBK,gBAAS,CAkBL;AAjBX,8CAA+C;AAkB7C,oBAlBO,kBAAS,CAkBP;AAjBX,0CAA2C;AAkBzC,kBAlBO,cAAO,CAkBP;AAjBT,gDAAiD;AAkB/C,qBAlBO,oBAAU,CAkBP;AAjBZ,kDAAgD;AAkB9C,mBAlBO,mBAAQ,CAkBP;AAjBV,4CAA6C;AAoB3C,mBApBO,gBAAQ,CAoBP;AAnBV,kDAAmD;AAiBjD,sBAjBO,sBAAW,CAiBP;AAhBb,oDAAqD;AAiBnD,uBAjBO,wBAAY,CAiBP;AAhBd,4CAA6C;AAkB3C,mBAlBO,gBAAQ,CAkBP;AAjBV,8CAA+C;AAkB7C,oBAlBO,kBAAS,CAkBP;AAjBX,4CAA6C;AAkB3C,mBAlBO,gBAAQ,CAkBP;AAjBV,kDAAmD;AAkBjD,sBAlBO,sBAAW,CAkBP;AAjBb,kDAAmD;AAkBjD,sBAlBO,sBAAW,CAkBP;AAjBb,4DAA6D;AAkB3D,2BAlBO,gCAAgB,CAkBP;AAjBlB,kDAAwD;AAmBtD,2BAnBO,2BAAgB,CAmBP;AAlBlB,wFAA8D;AAmB5D,4BAnBK,yBAAiB,CAmBL"}
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare function ApolloWrapper({ children }: React.PropsWithChildren): JSX.Element;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.ApolloWrapper = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var client_1 = require("@apollo/client");
6
+ var ssr_1 = require("@apollo/experimental-nextjs-app-support/ssr");
7
+ var react_1 = tslib_1.__importDefault(require("react"));
8
+ function makeClient() {
9
+ var uri = 'https://graphql-iris.phx.asia/v1/graphql';
10
+ var key = 'jcVC8tvmdx8yhWkcv7GZDyvN3gD8elWGqFC0O6ocncgdIFqqDuj87u65Zv6ToP6kRA';
11
+ var httpLink = new client_1.HttpLink({
12
+ uri: uri,
13
+ headers: {
14
+ // @ts-ignore
15
+ 'x-hasura-admin-secret': key
16
+ }
17
+ });
18
+ return new ssr_1.NextSSRApolloClient({
19
+ cache: new ssr_1.NextSSRInMemoryCache(),
20
+ link: typeof window === 'undefined'
21
+ ? client_1.ApolloLink.from([
22
+ new ssr_1.SSRMultipartLink({
23
+ stripDefer: true
24
+ }),
25
+ httpLink,
26
+ ])
27
+ : httpLink
28
+ });
29
+ }
30
+ // eslint-disable-next-line no-undef
31
+ function ApolloWrapper(_a) {
32
+ var children = _a.children;
33
+ return react_1["default"].createElement(ssr_1.ApolloNextAppProvider, { makeClient: makeClient }, children);
34
+ }
35
+ exports.ApolloWrapper = ApolloWrapper;
36
+ //# sourceMappingURL=apollo-wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apollo-wrapper.js","sourceRoot":"","sources":["../../../src/lib/apollo-wrapper.tsx"],"names":[],"mappings":";;;;AAAA,yCAAqD;AACrD,mEAKoD;AACpD,wDAAyB;AAEzB,SAAS,UAAU;IACjB,IAAM,GAAG,GAAG,0CAA0C,CAAA;IACtD,IAAM,GAAG,GAAG,oEAAoE,CAAA;IAEhF,IAAM,QAAQ,GAAG,IAAI,iBAAQ,CAAC;QAC5B,GAAG,KAAA;QACH,OAAO,EAAE;YACP,aAAa;YACb,uBAAuB,EAAE,GAAG;SAC7B;KACF,CAAC,CAAA;IAEF,OAAO,IAAI,yBAAmB,CAAC;QAC7B,KAAK,EAAE,IAAI,0BAAoB,EAAE;QACjC,IAAI,EACF,OAAO,MAAM,KAAK,WAAW;YAC3B,CAAC,CAAC,mBAAU,CAAC,IAAI,CAAC;gBACd,IAAI,sBAAgB,CAAC;oBACnB,UAAU,EAAE,IAAI;iBACjB,CAAC;gBACF,QAAQ;aACT,CAAC;YACJ,CAAC,CAAC,QAAQ;KACf,CAAC,CAAA;AACJ,CAAC;AAED,oCAAoC;AACpC,SAAgB,aAAa,CAAC,EAAqC;QAAnC,QAAQ,cAAA;IACtC,OAAO,iCAAC,2BAAqB,IAAC,UAAU,EAAE,UAAU,IAAG,QAAQ,CAAyB,CAAA;AAC1F,CAAC;AAFD,sCAEC"}
@@ -0,0 +1,3 @@
1
+ import { MutationOptions, QueryOptions, ApolloClient, NormalizedCacheObject } from '@apollo/client';
2
+ export declare function clientQuery(option: QueryOptions, client: ApolloClient<NormalizedCacheObject>): Promise<any>;
3
+ export declare function clientMutation(option: MutationOptions, client: ApolloClient<NormalizedCacheObject>): Promise<any>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ 'use client';
3
+ exports.__esModule = true;
4
+ exports.clientMutation = exports.clientQuery = void 0;
5
+ var tslib_1 = require("tslib");
6
+ // import client from '../apollo-client'
7
+ function clientQuery(option, client) {
8
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
9
+ var startTime, data, endTime, duration;
10
+ return tslib_1.__generator(this, function (_a) {
11
+ switch (_a.label) {
12
+ case 0:
13
+ startTime = performance.now();
14
+ return [4 /*yield*/, client.query(option)];
15
+ case 1:
16
+ data = (_a.sent()).data;
17
+ endTime = performance.now();
18
+ duration = endTime - startTime;
19
+ if (!(duration < 100)) return [3 /*break*/, 3];
20
+ console.info('promise delay...');
21
+ return [4 /*yield*/, new Promise(function (r) { return setTimeout(r, 500); })];
22
+ case 2:
23
+ _a.sent();
24
+ _a.label = 3;
25
+ case 3: return [2 /*return*/, data];
26
+ }
27
+ });
28
+ });
29
+ }
30
+ exports.clientQuery = clientQuery;
31
+ function clientMutation(option, client) {
32
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
33
+ var startTime, data, endTime, duration;
34
+ return tslib_1.__generator(this, function (_a) {
35
+ switch (_a.label) {
36
+ case 0:
37
+ startTime = performance.now();
38
+ return [4 /*yield*/, client.mutate(option)];
39
+ case 1:
40
+ data = (_a.sent()).data;
41
+ endTime = performance.now();
42
+ duration = endTime - startTime;
43
+ if (!(duration < 100)) return [3 /*break*/, 3];
44
+ console.info('promise delay...');
45
+ return [4 /*yield*/, new Promise(function (r) { return setTimeout(r, 500); })];
46
+ case 2:
47
+ _a.sent();
48
+ _a.label = 3;
49
+ case 3: return [2 /*return*/, data];
50
+ }
51
+ });
52
+ });
53
+ }
54
+ exports.clientMutation = clientMutation;
55
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/utils/query.ts"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;;AAEZ,wCAAwC;AAExC,SAAsB,WAAW,CAAC,MAAoB,EAAE,MAA2C;;;;;;oBAC3F,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;oBAClB,qBAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAA;;oBAAnC,IAAI,GAAK,CAAA,SAA0B,CAAA,KAA/B;oBACN,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;oBAC3B,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;yBAGhC,CAAA,QAAQ,GAAG,GAAG,CAAA,EAAd,wBAAc;oBAChB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;oBAChC,qBAAM,IAAI,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,EAAlB,CAAkB,CAAC,EAAA;;oBAA5C,SAA4C,CAAA;;wBAE9C,sBAAO,IAAI,EAAA;;;;CACZ;AAZD,kCAYC;AAED,SAAsB,cAAc,CAClC,MAAuB,EACvB,MAA2C;;;;;;oBAErC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;oBAClB,qBAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAA;;oBAApC,IAAI,GAAK,CAAA,SAA2B,CAAA,KAAhC;oBACN,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;oBAC3B,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;yBAGhC,CAAA,QAAQ,GAAG,GAAG,CAAA,EAAd,wBAAc;oBAChB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;oBAChC,qBAAM,IAAI,OAAO,CAAC,UAAC,CAAC,IAAK,OAAA,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,EAAlB,CAAkB,CAAC,EAAA;;oBAA5C,SAA4C,CAAA;;wBAE9C,sBAAO,IAAI,EAAA;;;;CACZ;AAfD,wCAeC"}
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare function useDisableClick(disabled?: boolean, handleClick?: () => void): ((event: React.MouseEvent<HTMLButtonElement>) => void) | undefined;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.useDisableClick = void 0;
4
+ var react_1 = require("react");
5
+ function useDisableClick(disabled, handleClick) {
6
+ var handleClickWrapper = (0, react_1.useCallback)(function (event) {
7
+ if (disabled) {
8
+ event.preventDefault();
9
+ event.stopPropagation();
10
+ }
11
+ }, [disabled]);
12
+ if (!disabled) {
13
+ return handleClick;
14
+ }
15
+ return handleClickWrapper;
16
+ }
17
+ exports.useDisableClick = useDisableClick;
18
+ //# sourceMappingURL=use-disable-interaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-disable-interaction.js","sourceRoot":"","sources":["../../../src/utils/use-disable-interaction.ts"],"names":[],"mappings":";;;AAAA,+BAA0C;AAE1C,SAAgB,eAAe,CAAC,QAAkB,EAAE,WAAwB;IAC1E,IAAM,kBAAkB,GAAG,IAAA,mBAAW,EACpC,UAAC,KAA0C;QACzC,IAAI,QAAQ,EAAE;YACZ,KAAK,CAAC,cAAc,EAAE,CAAA;YACtB,KAAK,CAAC,eAAe,EAAE,CAAA;SACxB;IACH,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,WAAW,CAAA;KACnB;IAED,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AAhBD,0CAgBC"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export interface IconLoadingProps {
3
+ color?: 'bg-gray-50' | 'text-white' | 'text-red-50' | 'bg-transparent';
4
+ }
5
+ export declare const IconLoading: ({ color }: IconLoadingProps) => JSX.Element;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export var IconLoading = function (_a) {
3
+ var _b = _a.color, color = _b === void 0 ? 'text-white' : _b;
4
+ function classNames() {
5
+ var classes = [];
6
+ for (var _i = 0; _i < arguments.length; _i++) {
7
+ classes[_i] = arguments[_i];
8
+ }
9
+ return classes.filter(Boolean).join(' ');
10
+ }
11
+ return (React.createElement("svg", { className: classNames('animate-spin -ml-1 mr-3 h-5 w-5', color), xmlns: 'http://www.w3.org/2000/svg', fill: 'none', viewBox: '0 0 24 24' },
12
+ React.createElement("circle", { className: 'opacity-25', cx: '12', cy: '12', r: '10', stroke: 'currentColor', strokeWidth: '4' }),
13
+ React.createElement("path", { className: 'opacity-75', fill: 'currentColor', d: 'M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z' })));
14
+ };
15
+ //# sourceMappingURL=IconLoading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconLoading.js","sourceRoot":"","sources":["../../../src/commons/IconLoading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,EAA0C;QAAxC,aAAoB,EAApB,KAAK,mBAAG,YAAY,KAAA;IAChD,SAAS,UAAU;QAAC,iBAAoB;aAApB,UAAoB,EAApB,qBAAoB,EAApB,IAAoB;YAApB,4BAAoB;;QACtC,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO,CACL,6BACE,SAAS,EAAE,UAAU,CAAC,iCAAiC,EAAE,KAAK,CAAC,EAC/D,KAAK,EAAC,4BAA4B,EAClC,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,WAAW;QAEnB,gCAAQ,SAAS,EAAC,YAAY,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,GAAU;QACrG,8BACE,SAAS,EAAC,YAAY,EACtB,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,iHAAiH,GAC7G,CACJ,CACP,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const MyCounter: () => JSX.Element;
3
+ export default MyCounter;
@@ -0,0 +1,66 @@
1
+ import React, { Fragment, useState } from 'react';
2
+ import { FaceFrownIcon, FaceSmileIcon, FireIcon, HandThumbUpIcon, HeartIcon, PaperClipIcon, XMarkIcon, } from '@heroicons/react/20/solid';
3
+ import { Listbox, Transition } from '@headlessui/react';
4
+ var moods = [
5
+ { name: 'Excited', value: 'excited', icon: FireIcon, iconColor: 'text-white', bgColor: 'bg-red-500' },
6
+ { name: 'Loved', value: 'loved', icon: HeartIcon, iconColor: 'text-white', bgColor: 'bg-pink-400' },
7
+ { name: 'Happy', value: 'happy', icon: FaceSmileIcon, iconColor: 'text-white', bgColor: 'bg-green-400' },
8
+ { name: 'Sad', value: 'sad', icon: FaceFrownIcon, iconColor: 'text-white', bgColor: 'bg-yellow-400' },
9
+ { name: 'Thumbsy', value: 'thumbsy', icon: HandThumbUpIcon, iconColor: 'text-white', bgColor: 'bg-blue-500' },
10
+ { name: 'I feel nothing', value: null, icon: XMarkIcon, iconColor: 'text-gray-400', bgColor: 'bg-transparent' },
11
+ ];
12
+ function classNames() {
13
+ var classes = [];
14
+ for (var _i = 0; _i < arguments.length; _i++) {
15
+ classes[_i] = arguments[_i];
16
+ }
17
+ return classes.filter(Boolean).join(' ');
18
+ }
19
+ var MyCounter = function () {
20
+ var _a = useState(moods[5]), selected = _a[0], setSelected = _a[1];
21
+ return (React.createElement("div", null,
22
+ React.createElement("div", { className: 'flex items-start space-x-4' },
23
+ React.createElement("div", { className: 'flex-shrink-0' },
24
+ React.createElement("img", { className: 'inline-block h-10 w-10 rounded-full', src: 'https://images.unsplash.com/photo-1550525811-e5869dd03032?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', alt: '' })),
25
+ React.createElement("div", { className: 'min-w-0 flex-1' },
26
+ React.createElement("form", { action: '#', className: 'relative' },
27
+ React.createElement("div", { className: 'overflow-hidden rounded-lg shadow-sm ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-indigo-600' },
28
+ React.createElement("label", { htmlFor: 'comment', className: 'sr-only' }, "Add your comment"),
29
+ React.createElement("textarea", { rows: 3, name: 'comment', id: 'comment', className: 'block w-full resize-none border-0 bg-transparent py-1.5 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm sm:leading-6', placeholder: 'Add your comment...', defaultValue: '' }),
30
+ React.createElement("div", { className: 'py-2', "aria-hidden": 'true' },
31
+ React.createElement("div", { className: 'py-px' },
32
+ React.createElement("div", { className: 'h-9' })))),
33
+ React.createElement("div", { className: 'absolute inset-x-0 bottom-0 flex justify-between py-2 pl-3 pr-2' },
34
+ React.createElement("div", { className: 'flex items-center space-x-5' },
35
+ React.createElement("div", { className: 'flex items-center' },
36
+ React.createElement("button", { type: 'button', className: '-m-2.5 flex h-10 w-10 items-center justify-center rounded-full text-gray-400 hover:text-gray-500' },
37
+ React.createElement(PaperClipIcon, { className: 'h-5 w-5', "aria-hidden": 'true' }),
38
+ React.createElement("span", { className: 'sr-only' }, "Attach a file"))),
39
+ React.createElement("div", { className: 'flex items-center' },
40
+ React.createElement(Listbox, { value: selected, onChange: setSelected }, function (_a) {
41
+ var open = _a.open;
42
+ return (React.createElement(React.Fragment, null,
43
+ React.createElement(Listbox.Label, { className: 'sr-only' }, "Your mood"),
44
+ React.createElement("div", { className: 'relative' },
45
+ React.createElement(Listbox.Button, { className: 'relative -m-2.5 flex h-10 w-10 items-center justify-center rounded-full text-gray-400 hover:text-gray-500' },
46
+ React.createElement("span", { className: 'flex items-center justify-center' }, selected.value === null ? (React.createElement("span", null,
47
+ React.createElement(FaceSmileIcon, { className: 'h-5 w-5 flex-shrink-0', "aria-hidden": 'true' }),
48
+ React.createElement("span", { className: 'sr-only' }, "Add your mood"))) : (React.createElement("span", null,
49
+ React.createElement("span", { className: classNames(selected.bgColor, 'flex h-8 w-8 items-center justify-center rounded-full') },
50
+ React.createElement(selected.icon, { className: 'h-5 w-5 flex-shrink-0 text-white', "aria-hidden": 'true' })),
51
+ React.createElement("span", { className: 'sr-only' }, selected.name))))),
52
+ React.createElement(Transition, { show: open, as: Fragment, leave: 'transition ease-in duration-100', leaveFrom: 'opacity-100', leaveTo: 'opacity-0' },
53
+ React.createElement(Listbox.Options, { className: 'absolute z-10 -ml-6 mt-1 w-60 rounded-lg bg-white py-3 text-base shadow ring-1 ring-black ring-opacity-5 focus:outline-none sm:ml-auto sm:w-64 sm:text-sm' }, moods.map(function (mood) { return (React.createElement(Listbox.Option, { key: mood.value, className: function (_a) {
54
+ var active = _a.active;
55
+ return classNames(active ? 'bg-gray-100' : 'bg-white', 'relative cursor-default select-none px-3 py-2');
56
+ }, value: mood },
57
+ React.createElement("div", { className: 'flex items-center' },
58
+ React.createElement("div", { className: classNames(mood.bgColor, 'flex h-8 w-8 items-center justify-center rounded-full') },
59
+ React.createElement(mood.icon, { className: classNames(mood.iconColor, 'h-5 w-5 flex-shrink-0'), "aria-hidden": 'true' })),
60
+ React.createElement("span", { className: 'ml-3 block truncate font-medium' }, mood.name)))); }))))));
61
+ }))),
62
+ React.createElement("div", { className: 'flex-shrink-0' },
63
+ React.createElement("button", { type: 'submit', className: 'inline-flex items-center rounded-md bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600' }, "Post"))))))));
64
+ };
65
+ export default MyCounter;
66
+ //# sourceMappingURL=App.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../src/components/App.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ import * as SolidIcons from '@heroicons/react/24/solid';
3
+ import * as OutlineIcons from '@heroicons/react/24/outline';
4
+ import { BaseButton } from '../types';
5
+ export declare type IconName = keyof typeof SolidIcons | keyof typeof OutlineIcons;
6
+ export interface ButtonProps extends BaseButton {
7
+ primary?: boolean;
8
+ secondary?: boolean;
9
+ danger?: boolean;
10
+ danger2?: boolean;
11
+ soft?: boolean;
12
+ rounded?: boolean;
13
+ size?: 'micro' | 'small' | 'medium' | 'large' | 'extra-large';
14
+ children?: string | string[];
15
+ icon?: IconName;
16
+ iconClassName?: string;
17
+ iconOutline?: boolean;
18
+ iconPosition?: 'before' | 'after';
19
+ }
20
+ export declare const PHXButton: ({ primary, secondary, danger, danger2, soft, rounded, submit, size, children, icon, iconClassName, iconOutline, iconPosition, disabled, loading, id, onClick, className, }: ButtonProps) => JSX.Element;
@@ -0,0 +1,39 @@
1
+ import { __assign } from "tslib";
2
+ import React from 'react';
3
+ import * as SolidIcons from '@heroicons/react/24/solid';
4
+ import * as OutlineIcons from '@heroicons/react/24/outline';
5
+ import { IconLoading } from '../../commons/IconLoading';
6
+ import { classNames } from '../types';
7
+ import { useDisableClick } from '../../utils/use-disable-interaction';
8
+ export var PHXButton = function (_a) {
9
+ var primary = _a.primary, secondary = _a.secondary, danger = _a.danger, danger2 = _a.danger2, soft = _a.soft, rounded = _a.rounded, submit = _a.submit, _b = _a.size, size = _b === void 0 ? 'medium' : _b, children = _a.children, icon = _a.icon, iconClassName = _a.iconClassName, _c = _a.iconOutline, iconOutline = _c === void 0 ? false : _c, _d = _a.iconPosition, iconPosition = _d === void 0 ? 'before' : _d, _e = _a.disabled, disabled = _e === void 0 ? false : _e, _f = _a.loading, loading = _f === void 0 ? false : _f, id = _a.id, onClick = _a.onClick, className = _a.className;
10
+ var Icon;
11
+ if (icon) {
12
+ Icon = iconOutline ? OutlineIcons[icon] : SolidIcons[icon];
13
+ }
14
+ var commonProps = {
15
+ id: id,
16
+ onClick: onClick
17
+ };
18
+ var interactiveProps = __assign({}, commonProps);
19
+ var handleClick = useDisableClick(disabled, onClick);
20
+ var binClassNames = classNames(primary &&
21
+ 'bg-indigo-800 font-normal text-white shadow-sm hover:bg-indigo-900 hover:text-gray-200 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 active:text-gray-400 active:shadow-[0rem_0.125rem_0.1rem_0rem_#0004_inset] active:bg-indigo-900', secondary &&
22
+ 'bg-white font-normal text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 hover:bg-gray-50 active:bg-gray-200 active:shadow-[0rem_0.125rem_0.1rem_0rem_#0004_inset]', danger &&
23
+ 'bg-red-600 font-normal text-white shadow-sm hover:bg-red-700 active:shadow-[0rem_0.125rem_0rem_0rem_#e73737_inset]', danger2 &&
24
+ 'font-normal text-red-600 shadow-sm ring-1 ring-inset ring-red-600 hover:bg-red-100 active:bg-red-200 active:shadow-[0rem_0.125rem_0rem_0rem_#e73737_inset]', rounded && 'rounded-full', soft && 'bg-indigo-50 font-normal text-indigo-600 shadow-sm hover:bg-indigo-100', size === 'micro' && "px-2 py-1 text-xs rounded-lg active:pt-[0.35rem] active:pb-[0.2rem]", size === 'small' && "px-2.5 py-1.5 text-xs rounded-lg active:pt-[0.45rem] active:pb-[0.3rem]", size === 'medium' && "px-2.5 py-1.5 text-sm rounded-lg active:pt-[0.45rem] active:pb-[0.3rem]", size === 'large' && "px-3 py-2 text-sm rounded-lg active:pt-[0.55rem] active:pb-[0.45rem]", size === 'extra-large' && "px-3.5 py-2.5 text-sm rounded-lg active:pt-[0.7rem] active:pb-[0.55rem]", icon && (size === 'medium' || size === 'large') && 'inline-flex items-center gap-x-1.5', icon && size === 'extra-large' && 'inline-flex items-center gap-x-2', loading && 'opacity-30', 'relative', className);
25
+ var iconClass = classNames(icon && iconPosition === 'before' && '-ml-0.5 h-5 w-5', icon && iconPosition === 'after' && '-mr-0.5 h-5 w-5', iconClassName);
26
+ // Icon markup
27
+ var iconMarkup = Icon && React.createElement(Icon, { className: iconClass });
28
+ // Loading markup
29
+ var loadingMarkup = loading ? (React.createElement("span", { className: 'w-3 absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2' },
30
+ React.createElement(IconLoading, { color: primary ? 'text-white' : danger ? 'text-red-50' : 'bg-transparent' }))) : (React.createElement(React.Fragment, null));
31
+ var buttonMarkup = (React.createElement("button", __assign({}, interactiveProps, { type: submit ? 'submit' : 'button', onClick: handleClick, className: binClassNames }),
32
+ React.createElement(React.Fragment, null,
33
+ loadingMarkup,
34
+ iconPosition === 'before' ? iconMarkup : React.createElement(React.Fragment, null),
35
+ React.createElement("span", { className: loading ? 'invisible' : '' }, children),
36
+ iconPosition === 'after' ? iconMarkup : React.createElement(React.Fragment, null))));
37
+ return React.createElement(React.Fragment, null, buttonMarkup);
38
+ };
39
+ //# sourceMappingURL=Button.js.map