@uxf/ui 1.0.0-beta.8 → 1.0.0-beta.80

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 (348) hide show
  1. package/_private-utils/get-provider-config.d.ts +2 -0
  2. package/_private-utils/get-provider-config.js +8 -0
  3. package/avatar/avatar.d.ts +5 -0
  4. package/avatar/avatar.js +14 -0
  5. package/avatar/avatar.stories.d.ts +7 -0
  6. package/avatar/avatar.stories.js +21 -0
  7. package/avatar/index.d.ts +1 -0
  8. package/avatar/index.js +5 -0
  9. package/avatar-file-input/avatar-file-input.d.ts +32 -0
  10. package/avatar-file-input/avatar-file-input.js +69 -0
  11. package/avatar-file-input/avatar-file-input.stories.d.ts +7 -0
  12. package/avatar-file-input/avatar-file-input.stories.js +30 -0
  13. package/avatar-file-input/index.d.ts +1 -0
  14. package/{storybook → avatar-file-input}/index.js +1 -2
  15. package/badge/badge.d.ts +7 -0
  16. package/badge/badge.js +15 -0
  17. package/badge/badge.stories.d.ts +7 -0
  18. package/badge/badge.stories.js +39 -0
  19. package/badge/index.d.ts +1 -0
  20. package/badge/index.js +5 -0
  21. package/badge/theme.d.ts +5 -0
  22. package/badge/theme.js +2 -0
  23. package/button/button.d.ts +13 -13
  24. package/button/button.js +16 -12
  25. package/button/button.stories.d.ts +7 -0
  26. package/button/button.stories.js +59 -0
  27. package/button/index.d.ts +1 -2
  28. package/button/index.js +1 -8
  29. package/button/theme.d.ts +6 -2
  30. package/button/theme.js +0 -1
  31. package/checkbox/checkbox.d.ts +9 -0
  32. package/checkbox/checkbox.js +24 -0
  33. package/checkbox/checkbox.stories.d.ts +7 -0
  34. package/checkbox/checkbox.stories.js +57 -0
  35. package/checkbox/index.d.ts +1 -0
  36. package/checkbox/index.js +17 -0
  37. package/checkbox-button/checkbox-button.d.ts +8 -0
  38. package/checkbox-button/checkbox-button.js +21 -0
  39. package/checkbox-button/checkbox-button.stories.d.ts +7 -0
  40. package/checkbox-button/checkbox-button.stories.js +57 -0
  41. package/checkbox-button/index.d.ts +1 -0
  42. package/checkbox-button/index.js +17 -0
  43. package/checkbox-input/checkbox-input.d.ts +2 -0
  44. package/checkbox-input/checkbox-input.js +12 -0
  45. package/checkbox-input/checkbox-input.stories.d.ts +7 -0
  46. package/checkbox-input/checkbox-input.stories.js +17 -0
  47. package/checkbox-input/index.d.ts +1 -0
  48. package/checkbox-input/index.js +17 -0
  49. package/chip/chip.d.ts +7 -0
  50. package/chip/chip.js +14 -0
  51. package/chip/chip.stories.d.ts +7 -0
  52. package/chip/chip.stories.js +22 -0
  53. package/chip/index.d.ts +1 -0
  54. package/chip/index.js +5 -0
  55. package/chip/theme.d.ts +5 -0
  56. package/chip/theme.js +2 -0
  57. package/color-radio-group/color-radio-group.d.ts +18 -0
  58. package/color-radio-group/color-radio-group.js +47 -0
  59. package/color-radio-group/color-radio-group.stories.d.ts +7 -0
  60. package/color-radio-group/color-radio-group.stories.js +79 -0
  61. package/color-radio-group/color-radio.d.ts +8 -0
  62. package/color-radio-group/color-radio.js +22 -0
  63. package/color-radio-group/index.d.ts +1 -0
  64. package/color-radio-group/index.js +17 -0
  65. package/combobox/combobox.d.ts +25 -0
  66. package/combobox/combobox.js +63 -0
  67. package/combobox/combobox.stories.d.ts +9 -0
  68. package/combobox/combobox.stories.js +67 -0
  69. package/combobox/index.d.ts +1 -0
  70. package/combobox/index.js +17 -0
  71. package/config/icons-config.d.ts +2 -0
  72. package/config/icons-config.js +5 -0
  73. package/config/icons.d.ts +77 -0
  74. package/config/icons.js +20 -0
  75. package/content/content-schema.d.ts +3 -0
  76. package/content/content-schema.js +2 -0
  77. package/content/types.d.ts +27 -0
  78. package/content/types.js +2 -0
  79. package/context/context.d.ts +12 -0
  80. package/context/context.js +5 -0
  81. package/context/index.d.ts +3 -0
  82. package/context/index.js +19 -0
  83. package/context/provider.d.ts +8 -0
  84. package/context/provider.js +10 -0
  85. package/context/use-component-context.d.ts +3 -0
  86. package/context/use-component-context.js +13 -0
  87. package/css/avatar-file-input.css +7 -0
  88. package/css/avatar.css +15 -0
  89. package/css/badge.css +23 -0
  90. package/css/button.css +231 -0
  91. package/css/checkbox-button.css +98 -0
  92. package/css/checkbox-input.css +3 -0
  93. package/css/checkbox.css +102 -0
  94. package/css/chip.css +37 -0
  95. package/css/color-radio-group.css +21 -0
  96. package/css/color-radio.css +21 -0
  97. package/css/combobox.css +102 -0
  98. package/css/component-structure-analyzer.css +31 -0
  99. package/css/date-picker-input.css +133 -0
  100. package/css/date-picker.css +90 -0
  101. package/css/dropdown.css +24 -0
  102. package/css/error-message.css +3 -0
  103. package/css/flash-messages.css +20 -0
  104. package/css/form-control.css +7 -0
  105. package/css/icon.css +7 -0
  106. package/css/input-basic.css +18 -0
  107. package/css/input.css +193 -0
  108. package/css/label.css +15 -0
  109. package/css/layout.css +47 -0
  110. package/css/list-item.css +29 -0
  111. package/css/pagination.css +27 -0
  112. package/css/radio-group.css +160 -0
  113. package/css/radio.css +89 -0
  114. package/css/raster-image.css +15 -0
  115. package/css/select.css +66 -0
  116. package/css/tabs.css +131 -0
  117. package/css/text-link.css +12 -0
  118. package/css/textarea.css +118 -0
  119. package/css/time-picker-input.css +133 -0
  120. package/css/time-picker.css +27 -0
  121. package/css/toggle.css +80 -0
  122. package/date-picker-input/date-picker-day.d.ts +8 -0
  123. package/date-picker-input/date-picker-day.js +63 -0
  124. package/date-picker-input/date-picker-decade.d.ts +6 -0
  125. package/date-picker-input/date-picker-decade.js +68 -0
  126. package/date-picker-input/date-picker-input.d.ts +21 -0
  127. package/date-picker-input/date-picker-input.js +60 -0
  128. package/date-picker-input/date-picker-input.stories.d.ts +7 -0
  129. package/date-picker-input/date-picker-input.stories.js +45 -0
  130. package/date-picker-input/date-picker-month.d.ts +7 -0
  131. package/date-picker-input/date-picker-month.js +63 -0
  132. package/date-picker-input/date-picker-provider.d.ts +8 -0
  133. package/date-picker-input/date-picker-provider.js +26 -0
  134. package/date-picker-input/date-picker-year.d.ts +7 -0
  135. package/date-picker-input/date-picker-year.js +72 -0
  136. package/date-picker-input/date-picker.d.ts +3 -0
  137. package/date-picker-input/date-picker.js +53 -0
  138. package/date-picker-input/index.d.ts +3 -0
  139. package/date-picker-input/index.js +19 -0
  140. package/date-picker-input/types.d.ts +5 -0
  141. package/date-picker-input/types.js +2 -0
  142. package/dropdown/dropdown.d.ts +11 -0
  143. package/dropdown/dropdown.js +27 -0
  144. package/dropdown/dropdown.stories.d.ts +10 -0
  145. package/dropdown/dropdown.stories.js +30 -0
  146. package/dropdown/index.d.ts +1 -0
  147. package/dropdown/index.js +17 -0
  148. package/error-message/error-message.d.ts +7 -0
  149. package/error-message/error-message.js +11 -0
  150. package/error-message/error-message.stories.d.ts +8 -0
  151. package/error-message/error-message.stories.js +17 -0
  152. package/error-message/index.d.ts +1 -0
  153. package/error-message/index.js +17 -0
  154. package/flash-messages/flash-message.d.ts +16 -0
  155. package/flash-messages/flash-message.js +46 -0
  156. package/flash-messages/flash-messages-service.d.ts +5 -0
  157. package/flash-messages/flash-messages-service.js +15 -0
  158. package/flash-messages/flash-messages.d.ts +8 -0
  159. package/flash-messages/flash-messages.js +55 -0
  160. package/flash-messages/flash-messages.stories.d.ts +7 -0
  161. package/flash-messages/flash-messages.stories.js +31 -0
  162. package/flash-messages/theme.d.ts +4 -0
  163. package/flash-messages/theme.js +2 -0
  164. package/form-control/form-control.d.ts +13 -0
  165. package/form-control/form-control.js +19 -0
  166. package/form-control/form-control.stories.d.ts +12 -0
  167. package/form-control/form-control.stories.js +25 -0
  168. package/form-control/index.d.ts +1 -0
  169. package/form-control/index.js +17 -0
  170. package/hooks/use-dropdown.d.ts +2 -0
  171. package/hooks/use-dropdown.js +28 -0
  172. package/hooks/use-input-submit.d.ts +4 -0
  173. package/hooks/use-input-submit.js +40 -0
  174. package/icon/icon.d.ts +17 -0
  175. package/icon/icon.js +38 -0
  176. package/icon/icon.stories.d.ts +11 -0
  177. package/icon/icon.stories.js +47 -0
  178. package/icon/index.d.ts +1 -0
  179. package/icon/index.js +17 -0
  180. package/icon/theme.d.ts +2 -0
  181. package/icon/theme.js +2 -0
  182. package/icon/types.d.ts +2 -0
  183. package/icon/types.js +2 -0
  184. package/image-gallery/components/close-button.d.ts +6 -0
  185. package/image-gallery/components/close-button.js +12 -0
  186. package/image-gallery/components/dot.d.ts +6 -0
  187. package/image-gallery/components/dot.js +12 -0
  188. package/image-gallery/components/gallery.d.ts +11 -0
  189. package/image-gallery/components/gallery.js +71 -0
  190. package/image-gallery/components/next-button.d.ts +6 -0
  191. package/image-gallery/components/next-button.js +12 -0
  192. package/image-gallery/components/previous-button.d.ts +6 -0
  193. package/image-gallery/components/previous-button.js +12 -0
  194. package/image-gallery/context.d.ts +10 -0
  195. package/image-gallery/context.js +12 -0
  196. package/image-gallery/image-gallery.d.ts +6 -0
  197. package/image-gallery/image-gallery.js +55 -0
  198. package/image-gallery/image-gallery.stories.d.ts +13 -0
  199. package/image-gallery/image-gallery.stories.js +26 -0
  200. package/image-gallery/image.d.ts +4 -0
  201. package/image-gallery/image.js +14 -0
  202. package/image-gallery/index.d.ts +4 -0
  203. package/image-gallery/index.js +26 -0
  204. package/image-gallery/types.d.ts +7 -0
  205. package/image-gallery/types.js +2 -0
  206. package/image-gallery/use-image.d.ts +2 -0
  207. package/image-gallery/use-image.js +16 -0
  208. package/input/index.d.ts +12 -0
  209. package/input/index.js +16 -0
  210. package/input/input-element.d.ts +21 -0
  211. package/input/input-element.js +11 -0
  212. package/input/input-left-addon.d.ts +9 -0
  213. package/input/input-left-addon.js +12 -0
  214. package/input/input-left-element.d.ts +9 -0
  215. package/input/input-left-element.js +12 -0
  216. package/input/input-right-addon.d.ts +8 -0
  217. package/input/input-right-addon.js +12 -0
  218. package/input/input-right-element.d.ts +9 -0
  219. package/input/input-right-element.js +12 -0
  220. package/input/input.d.ts +8 -0
  221. package/input/input.js +65 -0
  222. package/input/input.stories.d.ts +14 -0
  223. package/input/input.stories.js +83 -0
  224. package/input/theme.d.ts +7 -0
  225. package/input/theme.js +2 -0
  226. package/label/index.d.ts +1 -0
  227. package/label/index.js +17 -0
  228. package/label/label.d.ts +12 -0
  229. package/label/label.js +14 -0
  230. package/label/label.stories.d.ts +7 -0
  231. package/label/label.stories.js +17 -0
  232. package/layout/index.d.ts +1 -0
  233. package/layout/index.js +17 -0
  234. package/layout/layout.d.ts +9 -0
  235. package/layout/layout.js +60 -0
  236. package/layout/layout.stories.d.ts +8 -0
  237. package/layout/layout.stories.js +21 -0
  238. package/layout/uxf-logo.d.ts +6 -0
  239. package/layout/uxf-logo.js +13 -0
  240. package/list-item/index.d.ts +1 -0
  241. package/list-item/index.js +5 -0
  242. package/list-item/list-item.d.ts +8 -0
  243. package/list-item/list-item.js +24 -0
  244. package/list-item/list-item.stories.d.ts +7 -0
  245. package/list-item/list-item.stories.js +32 -0
  246. package/package.json +17 -36
  247. package/pagination/pagination.d.ts +7 -0
  248. package/pagination/pagination.js +49 -0
  249. package/pagination/pagination.stories.d.ts +7 -0
  250. package/pagination/pagination.stories.js +47 -0
  251. package/radio/index.d.ts +1 -0
  252. package/radio/index.js +17 -0
  253. package/radio/radio.d.ts +6 -0
  254. package/radio/radio.js +15 -0
  255. package/radio/radio.stories.d.ts +7 -0
  256. package/radio/radio.stories.js +42 -0
  257. package/radio-group/index.d.ts +1 -0
  258. package/radio-group/index.js +17 -0
  259. package/radio-group/radio-group.d.ts +22 -0
  260. package/radio-group/radio-group.js +48 -0
  261. package/radio-group/radio-group.stories.d.ts +7 -0
  262. package/radio-group/radio-group.stories.js +57 -0
  263. package/radio-group/theme.d.ts +5 -0
  264. package/radio-group/theme.js +2 -0
  265. package/raster-image/index.d.ts +1 -0
  266. package/raster-image/index.js +17 -0
  267. package/raster-image/raster-image.d.ts +16 -0
  268. package/raster-image/raster-image.js +21 -0
  269. package/raster-image/raster-image.stories.d.ts +7 -0
  270. package/raster-image/raster-image.stories.js +17 -0
  271. package/select/index.d.ts +1 -0
  272. package/select/index.js +17 -0
  273. package/select/select.d.ts +25 -0
  274. package/select/select.js +60 -0
  275. package/select/select.stories.d.ts +9 -0
  276. package/select/select.stories.js +72 -0
  277. package/tabs/index.d.ts +1 -0
  278. package/tabs/index.js +5 -0
  279. package/tabs/tabs.d.ts +19 -0
  280. package/tabs/tabs.js +68 -0
  281. package/tabs/tabs.stories.d.ts +11 -0
  282. package/tabs/tabs.stories.js +48 -0
  283. package/text-input/index.d.ts +1 -0
  284. package/text-input/index.js +17 -0
  285. package/text-input/text-input.d.ts +31 -0
  286. package/text-input/text-input.js +57 -0
  287. package/text-input/text-input.stories.d.ts +8 -0
  288. package/text-input/text-input.stories.js +56 -0
  289. package/text-link/index.d.ts +1 -0
  290. package/text-link/index.js +5 -0
  291. package/text-link/text-link.d.ts +5 -0
  292. package/text-link/text-link.js +19 -0
  293. package/text-link/text-link.stories.d.ts +7 -0
  294. package/text-link/text-link.stories.js +24 -0
  295. package/textarea/index.d.ts +1 -0
  296. package/textarea/index.js +17 -0
  297. package/textarea/textarea.d.ts +18 -0
  298. package/textarea/textarea.js +81 -0
  299. package/textarea/textarea.stories.d.ts +7 -0
  300. package/textarea/textarea.stories.js +44 -0
  301. package/time-picker-input/index.d.ts +2 -0
  302. package/time-picker-input/index.js +18 -0
  303. package/time-picker-input/time-picker-hour.d.ts +5 -0
  304. package/time-picker-input/time-picker-hour.js +47 -0
  305. package/time-picker-input/time-picker-hours.d.ts +2 -0
  306. package/time-picker-input/time-picker-hours.js +14 -0
  307. package/time-picker-input/time-picker-input.d.ts +22 -0
  308. package/time-picker-input/time-picker-input.js +64 -0
  309. package/time-picker-input/time-picker-input.stories.d.ts +7 -0
  310. package/time-picker-input/time-picker-input.stories.js +45 -0
  311. package/time-picker-input/time-picker-minute.d.ts +5 -0
  312. package/time-picker-input/time-picker-minute.js +47 -0
  313. package/time-picker-input/time-picker-minutes.d.ts +2 -0
  314. package/time-picker-input/time-picker-minutes.js +14 -0
  315. package/time-picker-input/time-picker.d.ts +8 -0
  316. package/time-picker-input/time-picker.js +69 -0
  317. package/toggle/index.d.ts +1 -0
  318. package/toggle/index.js +17 -0
  319. package/toggle/theme.d.ts +4 -0
  320. package/toggle/theme.js +2 -0
  321. package/toggle/toggle.d.ts +12 -0
  322. package/toggle/toggle.js +19 -0
  323. package/toggle/toggle.stories.d.ts +7 -0
  324. package/toggle/toggle.stories.js +52 -0
  325. package/types/form-control-props.d.ts +24 -0
  326. package/types/form-control-props.js +2 -0
  327. package/types/index.d.ts +1 -0
  328. package/types/index.js +17 -0
  329. package/utils/action.d.ts +2 -0
  330. package/utils/action.js +11 -0
  331. package/utils/component-structure-analyzer.d.ts +6 -0
  332. package/utils/component-structure-analyzer.js +10 -0
  333. package/utils/icons-config.js +73 -0
  334. package/utils/image.d.ts +9 -0
  335. package/utils/image.js +30 -0
  336. package/utils/is-light-background.d.ts +2 -0
  337. package/utils/is-light-background.js +11 -0
  338. package/utils/localized-dayjs.d.ts +2 -0
  339. package/utils/localized-dayjs.js +34 -0
  340. package/utils/storybook-config.d.ts +19 -0
  341. package/{storybook → utils}/storybook-config.js +7 -6
  342. package/utils/tailwind-config.js +163 -0
  343. package/stories/button.stories.tsx +0 -73
  344. package/storybook/index.d.ts +0 -1
  345. package/storybook/storybook-config.d.ts +0 -21
  346. package/tailwindui/button.css +0 -51
  347. package/types.d.ts +0 -3
  348. package/types.js +0 -3
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.FlashMessage = void 0;
27
+ const useClickableProps_1 = require("@uxf/core/hooks/useClickableProps");
28
+ const react_1 = __importStar(require("react"));
29
+ // eslint-disable-next-line react/destructuring-assignment
30
+ const FlashMessage = ({ notification, onClose }) => {
31
+ (0, react_1.useEffect)(() => {
32
+ const { autoDismiss = true, dismissTimeout = 5000 } = notification;
33
+ let timer;
34
+ if (autoDismiss) {
35
+ timer = window.setTimeout(onClose, dismissTimeout);
36
+ }
37
+ return () => clearTimeout(timer);
38
+ }, [onClose, notification]);
39
+ const clickableProps = (0, useClickableProps_1.useClickableProps)({
40
+ className: `uxf-flash-message uxf-flash-message--${notification.variant || "success"}`,
41
+ onClick: onClose,
42
+ role: "listitem alert",
43
+ });
44
+ return react_1.default.createElement("div", { ...clickableProps }, notification.message);
45
+ };
46
+ exports.FlashMessage = FlashMessage;
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { Notification } from "@uxf/ui/flash-messages/flash-message";
3
+ import { FlashMessagesRef } from "@uxf/ui/flash-messages/flash-messages";
4
+ export declare function getFlashMessagesRef(): import("react").RefObject<FlashMessagesRef>;
5
+ export declare function flashMessage(notification: Notification): void;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.flashMessage = exports.getFlashMessagesRef = void 0;
4
+ const react_1 = require("react");
5
+ const flashMessagesRef = (0, react_1.createRef)();
6
+ function getFlashMessagesRef() {
7
+ return flashMessagesRef;
8
+ }
9
+ exports.getFlashMessagesRef = getFlashMessagesRef;
10
+ function flashMessage(notification) {
11
+ if (flashMessagesRef.current) {
12
+ flashMessagesRef.current.open(notification);
13
+ }
14
+ }
15
+ exports.flashMessage = flashMessage;
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { Notification } from "./flash-message";
3
+ export interface FlashMessagesRef {
4
+ close: (notification: Notification) => void;
5
+ closeAll: () => void;
6
+ open: (notification: Notification) => void;
7
+ }
8
+ export declare const FlashMessages: React.ForwardRefExoticComponent<React.RefAttributes<FlashMessagesRef>>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.FlashMessages = void 0;
27
+ const react_1 = __importStar(require("react"));
28
+ const flash_message_1 = require("./flash-message");
29
+ exports.FlashMessages = (0, react_1.forwardRef)((props, ref) => {
30
+ const [notifications, setNotifications] = (0, react_1.useState)([]);
31
+ const open = (0, react_1.useCallback)((notification) => setNotifications((prev) => [
32
+ ...prev,
33
+ {
34
+ ...notification,
35
+ variant: notification.variant || "success",
36
+ id: notification.id || Math.round(Math.random() * 1000),
37
+ },
38
+ ]), []);
39
+ const close = (0, react_1.useCallback)((notification) => setNotifications((prev) => prev.filter((n) => n !== notification)), []);
40
+ const closeAll = (0, react_1.useCallback)(() => setNotifications([]), []);
41
+ const innerRef = (0, react_1.useRef)({
42
+ close,
43
+ closeAll,
44
+ open,
45
+ });
46
+ (0, react_1.useImperativeHandle)(ref, () => ({
47
+ close: innerRef.current.close,
48
+ closeAll: innerRef.current.closeAll,
49
+ open: innerRef.current.open,
50
+ }), []);
51
+ const onClose = (0, react_1.useCallback)((notification) => () => setNotifications((prev) => prev.filter((n) => n !== notification)), []);
52
+ return notifications.length > 0 ? (react_1.default.createElement("div", { className: "uxf-flash-messages" },
53
+ react_1.default.createElement("div", { className: "uxf-flash-messages__list-wrapper", role: "list" }, notifications.map((notification) => (react_1.default.createElement(flash_message_1.FlashMessage, { key: `${notification.id}`, notification: notification, onClose: onClose(notification) })))))) : null;
54
+ });
55
+ exports.FlashMessages.displayName = "FlashMessages";
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ declare const _default: {
3
+ title: string;
4
+ component: React.ForwardRefExoticComponent<React.RefAttributes<import("./flash-messages").FlashMessagesRef>>;
5
+ };
6
+ export default _default;
7
+ export declare function Default(): JSX.Element;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Default = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const flash_messages_1 = require("./flash-messages");
9
+ const flash_messages_service_1 = require("./flash-messages-service");
10
+ const button_1 = require("@uxf/ui/button");
11
+ const icon_1 = require("@uxf/ui/icon");
12
+ exports.default = {
13
+ title: "UI/FlashMessages",
14
+ component: flash_messages_1.FlashMessages,
15
+ };
16
+ function Default() {
17
+ return (react_1.default.createElement("div", { className: "light flex space-x-4" },
18
+ react_1.default.createElement(button_1.Button, { onClick: () => (0, flash_messages_service_1.flashMessage)({
19
+ message: (react_1.default.createElement("div", { className: "flex items-center space-x-4" },
20
+ react_1.default.createElement(icon_1.Icon, { name: "check", size: 24 }),
21
+ react_1.default.createElement("span", null, "Everything is alright."))),
22
+ }) }, "Click to fire Flash message"),
23
+ react_1.default.createElement(button_1.Button, { onClick: () => (0, flash_messages_service_1.flashMessage)({
24
+ message: (react_1.default.createElement("div", { className: "flex items-center space-x-4" },
25
+ react_1.default.createElement(icon_1.Icon, { name: "cross", size: 24 }),
26
+ react_1.default.createElement("span", null, "Seems like an error occurred :)"))),
27
+ autoDismiss: false,
28
+ variant: "error",
29
+ }) }, "AutoDismiss: false Flash message, variant error")));
30
+ }
31
+ exports.Default = Default;
@@ -0,0 +1,4 @@
1
+ export interface FlashMessageVariants {
2
+ error: true;
3
+ success: true;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,13 @@
1
+ import React, { ReactElement, ReactNode } from "react";
2
+ export interface FormControlProps {
3
+ children?: ReactElement;
4
+ className?: string;
5
+ errorId?: string;
6
+ form?: string;
7
+ helperText?: ReactNode;
8
+ hiddenLabel?: boolean;
9
+ inputId: string;
10
+ isRequired?: boolean;
11
+ label?: ReactNode;
12
+ }
13
+ export declare const FormControl: React.ForwardRefExoticComponent<FormControlProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FormControl = void 0;
7
+ const classes_1 = require("@uxf/core/constants/classes");
8
+ const cx_1 = require("@uxf/core/utils/cx");
9
+ const forwardRef_1 = require("@uxf/core/utils/forwardRef");
10
+ const react_1 = __importDefault(require("react"));
11
+ const label_1 = require("../label");
12
+ // TODO - tohle asi ještě nějak předělám (ten interface je trochu nelogickej)
13
+ exports.FormControl = (0, forwardRef_1.forwardRef)("FormControl", (props, ref) => {
14
+ const helperTextClassName = (0, cx_1.cx)("uxf-helper-text", props.errorId && classes_1.CLASSES.IS_INVALID);
15
+ return (react_1.default.createElement("div", { className: props.className, ref: ref },
16
+ react_1.default.createElement(label_1.Label, { isHidden: props.hiddenLabel, isRequired: props.isRequired, htmlFor: props.inputId, form: props.form }, props.label),
17
+ props.children,
18
+ props.helperText && (react_1.default.createElement("div", { className: helperTextClassName, id: props.errorId }, props.helperText))));
19
+ });
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ declare const _default: {
3
+ title: string;
4
+ component: React.ForwardRefExoticComponent<import("./form-control").FormControlProps & React.RefAttributes<HTMLDivElement>>;
5
+ parameters: {
6
+ actions: {
7
+ argTypesRegex: string;
8
+ };
9
+ };
10
+ };
11
+ export default _default;
12
+ export declare function Default(): JSX.Element;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Default = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const form_control_1 = require("./form-control");
9
+ exports.default = {
10
+ title: "UI/FormControl",
11
+ component: form_control_1.FormControl,
12
+ parameters: { actions: { argTypesRegex: "^on.*" } },
13
+ };
14
+ function Default() {
15
+ return (react_1.default.createElement("div", { className: "space-y-4" },
16
+ react_1.default.createElement(form_control_1.FormControl, { inputId: "default", helperText: "helper text", label: "Default" },
17
+ react_1.default.createElement("div", null, "Default")),
18
+ react_1.default.createElement(form_control_1.FormControl, { inputId: "default", helperText: "helper text", label: "Default", isRequired: true },
19
+ react_1.default.createElement("div", null, "Is required")),
20
+ react_1.default.createElement(form_control_1.FormControl, { inputId: "error", helperText: "helper text", label: "Default", errorId: "error--error", isRequired: true },
21
+ react_1.default.createElement("div", null, "Is invalid")),
22
+ react_1.default.createElement(form_control_1.FormControl, { inputId: "error", helperText: "helper text", label: "Default", errorId: "error--error", hiddenLabel: true },
23
+ react_1.default.createElement("div", null, "hidden label"))));
24
+ }
25
+ exports.Default = Default;
@@ -0,0 +1 @@
1
+ export * from "./form-control";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./form-control"), exports);
@@ -0,0 +1,2 @@
1
+ import { Placement } from "@floating-ui/react-dom";
2
+ export declare function useDropdown(placement: Placement, matchWidth?: boolean): import("@floating-ui/react-dom").UseFloatingReturn<import("@floating-ui/react-dom").ReferenceType>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useDropdown = void 0;
4
+ const react_dom_1 = require("@floating-ui/react-dom");
5
+ function useDropdown(placement, matchWidth = false) {
6
+ return (0, react_dom_1.useFloating)({
7
+ placement,
8
+ middleware: [
9
+ (0, react_dom_1.flip)(),
10
+ (0, react_dom_1.shift)(),
11
+ (0, react_dom_1.size)({
12
+ apply({ availableHeight, availableWidth, elements, strategy, x, y }) {
13
+ Object.assign(elements.floating.style, {
14
+ left: x + "px",
15
+ maxHeight: Math.max(50, availableHeight) + "px",
16
+ maxWidth: matchWidth ? availableWidth + "px" : undefined,
17
+ position: strategy,
18
+ top: y + "px",
19
+ });
20
+ },
21
+ }),
22
+ ],
23
+ whileElementsMounted: (reference, floating, update) => (0, react_dom_1.autoUpdate)(reference, floating, update, {
24
+ elementResize: typeof ResizeObserver !== "undefined",
25
+ }),
26
+ });
27
+ }
28
+ exports.useDropdown = useDropdown;
@@ -0,0 +1,4 @@
1
+ import { RefObject } from "react";
2
+ declare type SubmitResolverType = "checkbox" | "radio-group";
3
+ export declare function useInputSubmit<T extends HTMLElement>(ref: RefObject<T>, type: SubmitResolverType, disabled: boolean | undefined): void;
4
+ export {};
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useInputSubmit = void 0;
4
+ const react_1 = require("react");
5
+ function childrenHasFocus(node) {
6
+ node.childNodes.forEach((child) => {
7
+ if (document.activeElement === child) {
8
+ return true;
9
+ }
10
+ });
11
+ return false;
12
+ }
13
+ function submitResolver(type, node) {
14
+ switch (type) {
15
+ case "checkbox":
16
+ return document.activeElement === node.firstChild;
17
+ case "radio-group":
18
+ return childrenHasFocus(node);
19
+ }
20
+ }
21
+ function useInputSubmit(ref, type, disabled) {
22
+ (0, react_1.useEffect)(() => {
23
+ const node = ref.current;
24
+ if (!node || disabled) {
25
+ return;
26
+ }
27
+ const handleSubmit = (e) => {
28
+ var _a;
29
+ if (e instanceof KeyboardEvent && e.key === "Enter" && submitResolver(type, node)) {
30
+ const closestForm = (_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.closest("form");
31
+ if (closestForm) {
32
+ closestForm.dispatchEvent(new Event("submit", { bubbles: true, cancelable: true }));
33
+ }
34
+ }
35
+ };
36
+ node.addEventListener("keydown", handleSubmit);
37
+ return () => node.removeEventListener("keydown", handleSubmit);
38
+ }, [disabled, ref, type]);
39
+ }
40
+ exports.useInputSubmit = useInputSubmit;
package/icon/icon.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ import React, { CSSProperties } from "react";
2
+ import { IconName } from "./types";
3
+ declare type NameOrComponentType = {
4
+ name: IconName;
5
+ Component?: never;
6
+ } | {
7
+ name?: never;
8
+ Component: any;
9
+ };
10
+ export declare type IconProps = {
11
+ className?: string;
12
+ mode?: "meet" | "slice";
13
+ size?: number;
14
+ style?: Partial<CSSProperties>;
15
+ } & NameOrComponentType;
16
+ export declare const Icon: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<SVGSVGElement>>;
17
+ export {};
package/icon/icon.js ADDED
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Icon = void 0;
7
+ const cx_1 = require("@uxf/core/utils/cx");
8
+ const forwardRef_1 = require("@uxf/core/utils/forwardRef");
9
+ const rem_1 = require("@uxf/styles/units/rem");
10
+ const react_1 = __importDefault(require("react"));
11
+ const context_1 = require("../context");
12
+ exports.Icon = (0, forwardRef_1.forwardRef)("Icon", (props, ref) => {
13
+ var _a, _b;
14
+ const componentContext = (0, context_1.useComponentContext)("icon");
15
+ const CustomComponent = props.Component;
16
+ const className = (0, cx_1.cx)("uxf-icon", props.className);
17
+ const preserveAspectRatio = `xMidYMid ${(_a = props.mode) !== null && _a !== void 0 ? _a : "meet"}`;
18
+ const style = props.size
19
+ ? {
20
+ "--i-h": (0, rem_1.rem)(props.size),
21
+ "--i-w": (0, rem_1.rem)(props.size),
22
+ ...((_b = props.style) !== null && _b !== void 0 ? _b : {}),
23
+ }
24
+ : props.style;
25
+ if (CustomComponent) {
26
+ return (react_1.default.createElement(CustomComponent, { className: className, preserveAspectRatio: preserveAspectRatio, ref: ref, role: "img", style: style }));
27
+ }
28
+ if (props.name && props.name in componentContext.iconsConfig) {
29
+ const icon = componentContext.iconsConfig[props.name];
30
+ return (react_1.default.createElement("svg", { className: className, preserveAspectRatio: preserveAspectRatio, ref: ref, role: "img", style: style, viewBox: `0 0 ${icon.w} ${icon.h}` },
31
+ react_1.default.createElement("use", { xlinkHref: `${componentContext.spriteFilePath}#icon-sprite--${props.name}` })));
32
+ }
33
+ // eslint-disable-next-line no-console
34
+ console.warn(`Icon "${props.name}" not found.`);
35
+ return (react_1.default.createElement("span", { title: `icon "${props.name}" not found` },
36
+ react_1.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 320 512", width: props.size, height: props.size },
37
+ react_1.default.createElement("path", { d: "M144 416c-17.67 0-32 14.33-32 32s14.33 32.01 32 32.01s32-14.34 32-32.01S161.7 416 144 416zM211.2 32H104C46.66 32 0 78.66 0 136v16C0 165.3 10.75 176 24 176S48 165.3 48 152v-16c0-30.88 25.12-56 56-56h107.2C244.7 80 272 107.3 272 140.8c0 22.66-12.44 43.27-32.5 53.81L167 232.8C137.1 248 120 277.9 120 310.6V328c0 13.25 10.75 24.01 24 24.01S168 341.3 168 328V310.6c0-14.89 8.188-28.47 21.38-35.41l72.47-38.14C297.7 218.2 320 181.3 320 140.8C320 80.81 271.2 32 211.2 32z" }))));
38
+ });
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ declare const _default: {
3
+ title: string;
4
+ component: React.ForwardRefExoticComponent<import("./icon").IconProps & React.RefAttributes<SVGSVGElement>>;
5
+ };
6
+ export default _default;
7
+ export declare function AllIcons(): JSX.Element;
8
+ export declare function ColorAndSizes(): JSX.Element;
9
+ export declare function CustomComponent(): JSX.Element;
10
+ export declare function SpriteIcon(): JSX.Element;
11
+ export declare function SpriteIconNotExists(): JSX.Element;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SpriteIconNotExists = exports.SpriteIcon = exports.CustomComponent = exports.ColorAndSizes = exports.AllIcons = void 0;
7
+ const icon_1 = require("./icon");
8
+ const react_1 = __importDefault(require("react"));
9
+ const context_1 = require("../context");
10
+ exports.default = {
11
+ title: "UI/Icon",
12
+ component: icon_1.Icon,
13
+ };
14
+ function AllIcons() {
15
+ const iconContext = (0, context_1.useComponentContext)("icon");
16
+ return (react_1.default.createElement("div", { className: "flex flex-row flex-wrap" }, Object.keys(iconContext.iconsConfig).map((iconName) => (react_1.default.createElement("div", { key: iconName, className: "flex h-28 w-28 flex-col items-center justify-center gap-3" },
17
+ react_1.default.createElement(icon_1.Icon, { name: iconName, size: 24 }),
18
+ react_1.default.createElement("div", { className: "text-gray-400" },
19
+ react_1.default.createElement("small", null, iconName)))))));
20
+ }
21
+ exports.AllIcons = AllIcons;
22
+ function ColorAndSizes() {
23
+ return (react_1.default.createElement("div", { className: "flex flex-row flex-wrap gap-4" },
24
+ react_1.default.createElement(icon_1.Icon, { name: "camera", size: 12 }),
25
+ react_1.default.createElement(icon_1.Icon, { name: "camera", size: 16 }),
26
+ react_1.default.createElement(icon_1.Icon, { name: "camera", size: 20 }),
27
+ react_1.default.createElement(icon_1.Icon, { name: "camera", size: 12, className: "text-primary-600" }),
28
+ react_1.default.createElement(icon_1.Icon, { name: "camera", size: 16, className: "text-orange-600" }),
29
+ react_1.default.createElement(icon_1.Icon, { name: "camera", size: 20, className: "text-green-600" })));
30
+ }
31
+ exports.ColorAndSizes = ColorAndSizes;
32
+ function CustomComponent() {
33
+ const SvgIcon = (props) => {
34
+ return (react_1.default.createElement("svg", { viewBox: "0 0 29.65 40", ...props },
35
+ react_1.default.createElement("path", { fill: "currentColor", fillRule: "evenodd", d: "M0 14.83C0 6.61 6.61 0 14.83 0c8.11 0 14.83 6.61 14.83 14.83 0 8.64-8.85 19.41-14.83 25.17C8.75 34.24 0 23.47 0 14.83zm9.28 0c0-3.09 2.45-5.55 5.55-5.55 2.99 0 5.44 2.45 5.44 5.55 0 2.99-2.45 5.44-5.44 5.44-3.1 0-5.55-2.46-5.55-5.44z", clipRule: "evenodd" })));
36
+ };
37
+ return react_1.default.createElement(icon_1.Icon, { Component: SvgIcon, size: 16 });
38
+ }
39
+ exports.CustomComponent = CustomComponent;
40
+ function SpriteIcon() {
41
+ return react_1.default.createElement(icon_1.Icon, { name: "camera", size: 16 });
42
+ }
43
+ exports.SpriteIcon = SpriteIcon;
44
+ function SpriteIconNotExists() {
45
+ return react_1.default.createElement(icon_1.Icon, { name: "not-exists", size: 16 });
46
+ }
47
+ exports.SpriteIconNotExists = SpriteIconNotExists;
@@ -0,0 +1 @@
1
+ export * from "./icon";
package/icon/index.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./icon"), exports);
@@ -0,0 +1,2 @@
1
+ export interface IconsSet extends Record<string, boolean> {
2
+ }
package/icon/theme.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ import { IconsSet } from "@uxf/ui/icon/theme";
2
+ export declare type IconName = keyof IconsSet;
package/icon/types.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ interface CloseButtonProps {
3
+ onClick: () => void;
4
+ }
5
+ declare function CloseButton(props: CloseButtonProps): JSX.Element;
6
+ export default CloseButton;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const icon_1 = require("../../icon");
8
+ function CloseButton(props) {
9
+ return (react_1.default.createElement("button", { className: "bg-black bg-opacity-50 p-5", onClick: () => props.onClick() },
10
+ react_1.default.createElement(icon_1.Icon, { className: "h-6 w-6 text-white", name: "xmarkLarge" })));
11
+ }
12
+ exports.default = CloseButton;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ interface DotProps {
3
+ active?: boolean;
4
+ }
5
+ declare function Dot(props: DotProps): JSX.Element;
6
+ export default Dot;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const cx_1 = require("@uxf/core/utils/cx");
7
+ const react_1 = __importDefault(require("react"));
8
+ function Dot(props) {
9
+ const className = (0, cx_1.cx)("h-2 w-2 rounded-full", props.active ? "bg-gray-500" : "bg-white");
10
+ return react_1.default.createElement("div", { className: className });
11
+ }
12
+ exports.default = Dot;
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { ImageGalleryImageProps } from "../types";
3
+ interface GalleryProps {
4
+ onClose: () => void;
5
+ onNext: () => void;
6
+ onPrevious: () => void;
7
+ imageIndex: number;
8
+ images: ImageGalleryImageProps[];
9
+ }
10
+ declare function Gallery(props: GalleryProps): JSX.Element;
11
+ export default Gallery;