@uxf/ui 1.0.0-beta.9 → 1.0.0-beta.90

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 (368) hide show
  1. package/_private-utils/get-provider-config.d.ts +2 -0
  2. package/_private-utils/get-provider-config.js +12 -0
  3. package/avatar/avatar.d.ts +5 -0
  4. package/avatar/avatar.js +14 -0
  5. package/avatar/avatar.spec.d.ts +1 -0
  6. package/avatar/avatar.spec.js +16 -0
  7. package/avatar/avatar.stories.d.ts +7 -0
  8. package/avatar/avatar.stories.js +21 -0
  9. package/avatar/index.d.ts +1 -0
  10. package/avatar/index.js +17 -0
  11. package/avatar-file-input/avatar-file-input.d.ts +32 -0
  12. package/avatar-file-input/avatar-file-input.js +69 -0
  13. package/avatar-file-input/avatar-file-input.stories.d.ts +7 -0
  14. package/avatar-file-input/avatar-file-input.stories.js +30 -0
  15. package/avatar-file-input/index.d.ts +1 -0
  16. package/{storybook → avatar-file-input}/index.js +1 -2
  17. package/badge/badge.d.ts +7 -0
  18. package/badge/badge.js +15 -0
  19. package/badge/badge.stories.d.ts +7 -0
  20. package/badge/badge.stories.js +39 -0
  21. package/badge/index.d.ts +1 -0
  22. package/badge/index.js +17 -0
  23. package/badge/theme.d.ts +5 -0
  24. package/badge/theme.js +2 -0
  25. package/button/button.d.ts +13 -13
  26. package/button/button.js +16 -12
  27. package/button/button.stories.d.ts +9 -5
  28. package/button/button.stories.js +56 -18
  29. package/button/index.d.ts +1 -2
  30. package/button/index.js +1 -8
  31. package/button/theme.d.ts +5 -2
  32. package/button/theme.js +0 -1
  33. package/checkbox/checkbox.d.ts +9 -0
  34. package/checkbox/checkbox.js +24 -0
  35. package/checkbox/checkbox.stories.d.ts +7 -0
  36. package/checkbox/checkbox.stories.js +57 -0
  37. package/checkbox/index.d.ts +1 -0
  38. package/checkbox/index.js +17 -0
  39. package/checkbox-button/checkbox-button.d.ts +8 -0
  40. package/checkbox-button/checkbox-button.js +21 -0
  41. package/checkbox-button/checkbox-button.stories.d.ts +7 -0
  42. package/checkbox-button/checkbox-button.stories.js +57 -0
  43. package/checkbox-button/index.d.ts +1 -0
  44. package/checkbox-button/index.js +17 -0
  45. package/chip/chip.d.ts +10 -0
  46. package/chip/chip.js +19 -0
  47. package/chip/chip.stories.d.ts +14 -0
  48. package/chip/chip.stories.js +32 -0
  49. package/chip/index.d.ts +1 -0
  50. package/chip/index.js +17 -0
  51. package/chip/theme.d.ts +14 -0
  52. package/chip/theme.js +2 -0
  53. package/color-radio-group/color-radio-group.d.ts +18 -0
  54. package/color-radio-group/color-radio-group.js +47 -0
  55. package/color-radio-group/color-radio-group.stories.d.ts +7 -0
  56. package/color-radio-group/color-radio-group.stories.js +79 -0
  57. package/color-radio-group/color-radio.d.ts +8 -0
  58. package/color-radio-group/color-radio.js +22 -0
  59. package/color-radio-group/index.d.ts +1 -0
  60. package/color-radio-group/index.js +17 -0
  61. package/combobox/combobox.d.ts +24 -0
  62. package/combobox/combobox.js +61 -0
  63. package/combobox/combobox.stories.d.ts +9 -0
  64. package/combobox/combobox.stories.js +67 -0
  65. package/combobox/index.d.ts +1 -0
  66. package/combobox/index.js +17 -0
  67. package/config/icons-config.d.ts +2 -0
  68. package/config/icons-config.js +5 -0
  69. package/config/icons.d.ts +77 -0
  70. package/config/icons.js +20 -0
  71. package/content/content-schema.d.ts +3 -0
  72. package/content/content-schema.js +2 -0
  73. package/content/types.d.ts +27 -0
  74. package/content/types.js +2 -0
  75. package/context/context.d.ts +15 -0
  76. package/context/context.js +5 -0
  77. package/context/index.d.ts +3 -0
  78. package/context/index.js +19 -0
  79. package/context/provider.d.ts +8 -0
  80. package/context/provider.js +13 -0
  81. package/context/use-component-context.d.ts +3 -0
  82. package/context/use-component-context.js +13 -0
  83. package/css/avatar-file-input.css +7 -0
  84. package/css/avatar.css +15 -0
  85. package/css/badge.css +23 -0
  86. package/css/button.css +201 -0
  87. package/css/button.old.css +231 -0
  88. package/css/checkbox-button.css +98 -0
  89. package/css/checkbox.css +102 -0
  90. package/css/chip.css +171 -0
  91. package/css/chip.old.css +37 -0
  92. package/css/color-radio-group.css +21 -0
  93. package/css/color-radio.css +21 -0
  94. package/css/combobox.css +106 -0
  95. package/css/combobox.old.css +102 -0
  96. package/css/component-structure-analyzer.css +31 -0
  97. package/css/date-picker-input.css +133 -0
  98. package/css/date-picker.css +90 -0
  99. package/css/dropdown.css +24 -0
  100. package/css/dropdown.old.css +24 -0
  101. package/css/error-message.css +3 -0
  102. package/css/flash-messages.css +20 -0
  103. package/css/form-control.css +7 -0
  104. package/css/icon.css +7 -0
  105. package/css/input-basic.css +18 -0
  106. package/css/input.css +199 -0
  107. package/css/input.old.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 +28 -0
  112. package/css/radio-group.css +160 -0
  113. package/css/radio.css +89 -0
  114. package/css/raster-image.css +20 -0
  115. package/css/select.css +70 -0
  116. package/css/select.old.css +66 -0
  117. package/css/tabs.css +131 -0
  118. package/css/text-link.css +12 -0
  119. package/css/textarea.css +118 -0
  120. package/css/time-picker-input.css +136 -0
  121. package/css/time-picker.css +27 -0
  122. package/css/toggle.css +80 -0
  123. package/date-picker-input/date-picker-day.d.ts +8 -0
  124. package/date-picker-input/date-picker-day.js +63 -0
  125. package/date-picker-input/date-picker-decade.d.ts +6 -0
  126. package/date-picker-input/date-picker-decade.js +71 -0
  127. package/date-picker-input/date-picker-input.d.ts +21 -0
  128. package/date-picker-input/date-picker-input.js +88 -0
  129. package/date-picker-input/date-picker-input.stories.d.ts +14 -0
  130. package/date-picker-input/date-picker-input.stories.js +54 -0
  131. package/date-picker-input/date-picker-month.d.ts +7 -0
  132. package/date-picker-input/date-picker-month.js +66 -0
  133. package/date-picker-input/date-picker-provider.d.ts +8 -0
  134. package/date-picker-input/date-picker-provider.js +26 -0
  135. package/date-picker-input/date-picker-year.d.ts +7 -0
  136. package/date-picker-input/date-picker-year.js +74 -0
  137. package/date-picker-input/date-picker.d.ts +3 -0
  138. package/date-picker-input/date-picker.js +53 -0
  139. package/date-picker-input/index.d.ts +3 -0
  140. package/date-picker-input/index.js +19 -0
  141. package/date-picker-input/types.d.ts +5 -0
  142. package/date-picker-input/types.js +2 -0
  143. package/dropdown/dropdown.d.ts +11 -0
  144. package/dropdown/dropdown.js +27 -0
  145. package/dropdown/dropdown.stories.d.ts +10 -0
  146. package/dropdown/dropdown.stories.js +30 -0
  147. package/dropdown/index.d.ts +1 -0
  148. package/dropdown/index.js +17 -0
  149. package/error-message/error-message.d.ts +7 -0
  150. package/error-message/error-message.js +11 -0
  151. package/error-message/error-message.stories.d.ts +8 -0
  152. package/error-message/error-message.stories.js +17 -0
  153. package/error-message/index.d.ts +1 -0
  154. package/error-message/index.js +17 -0
  155. package/flash-messages/flash-message.d.ts +16 -0
  156. package/flash-messages/flash-message.js +46 -0
  157. package/flash-messages/flash-messages-service.d.ts +5 -0
  158. package/flash-messages/flash-messages-service.js +15 -0
  159. package/flash-messages/flash-messages.d.ts +8 -0
  160. package/flash-messages/flash-messages.js +55 -0
  161. package/flash-messages/flash-messages.stories.d.ts +7 -0
  162. package/flash-messages/flash-messages.stories.js +31 -0
  163. package/flash-messages/theme.d.ts +4 -0
  164. package/flash-messages/theme.js +2 -0
  165. package/form-control/form-control.d.ts +13 -0
  166. package/form-control/form-control.js +19 -0
  167. package/form-control/form-control.stories.d.ts +12 -0
  168. package/form-control/form-control.stories.js +25 -0
  169. package/form-control/index.d.ts +1 -0
  170. package/form-control/index.js +17 -0
  171. package/hooks/use-dropdown.d.ts +2 -0
  172. package/hooks/use-dropdown.js +30 -0
  173. package/hooks/use-input-submit.d.ts +4 -0
  174. package/hooks/use-input-submit.js +40 -0
  175. package/icon/icon.d.ts +17 -0
  176. package/icon/icon.js +38 -0
  177. package/icon/icon.stories.d.ts +18 -0
  178. package/icon/icon.stories.js +53 -0
  179. package/icon/index.d.ts +1 -0
  180. package/icon/index.js +17 -0
  181. package/icon/theme.d.ts +2 -0
  182. package/icon/theme.js +2 -0
  183. package/icon/types.d.ts +2 -0
  184. package/icon/types.js +2 -0
  185. package/image-gallery/components/close-button.d.ts +6 -0
  186. package/image-gallery/components/close-button.js +12 -0
  187. package/image-gallery/components/dot.d.ts +6 -0
  188. package/image-gallery/components/dot.js +12 -0
  189. package/image-gallery/components/gallery.d.ts +11 -0
  190. package/image-gallery/components/gallery.js +72 -0
  191. package/image-gallery/components/next-button.d.ts +6 -0
  192. package/image-gallery/components/next-button.js +12 -0
  193. package/image-gallery/components/previous-button.d.ts +6 -0
  194. package/image-gallery/components/previous-button.js +12 -0
  195. package/image-gallery/context.d.ts +10 -0
  196. package/image-gallery/context.js +12 -0
  197. package/image-gallery/image-gallery.d.ts +6 -0
  198. package/image-gallery/image-gallery.js +55 -0
  199. package/image-gallery/image-gallery.stories.d.ts +13 -0
  200. package/image-gallery/image-gallery.stories.js +27 -0
  201. package/image-gallery/image.d.ts +4 -0
  202. package/image-gallery/image.js +14 -0
  203. package/image-gallery/index.d.ts +4 -0
  204. package/image-gallery/index.js +26 -0
  205. package/image-gallery/types.d.ts +7 -0
  206. package/image-gallery/types.js +2 -0
  207. package/image-gallery/use-image.d.ts +2 -0
  208. package/image-gallery/use-image.js +16 -0
  209. package/input/index.d.ts +12 -0
  210. package/input/index.js +16 -0
  211. package/input/input-element.d.ts +21 -0
  212. package/input/input-element.js +11 -0
  213. package/input/input-left-addon.d.ts +9 -0
  214. package/input/input-left-addon.js +12 -0
  215. package/input/input-left-element.d.ts +9 -0
  216. package/input/input-left-element.js +12 -0
  217. package/input/input-right-addon.d.ts +8 -0
  218. package/input/input-right-addon.js +12 -0
  219. package/input/input-right-element.d.ts +9 -0
  220. package/input/input-right-element.js +12 -0
  221. package/input/input.d.ts +8 -0
  222. package/input/input.js +65 -0
  223. package/input/input.stories.d.ts +15 -0
  224. package/input/input.stories.js +93 -0
  225. package/input/theme.d.ts +8 -0
  226. package/input/theme.js +2 -0
  227. package/label/index.d.ts +1 -0
  228. package/label/index.js +17 -0
  229. package/label/label.d.ts +12 -0
  230. package/label/label.js +14 -0
  231. package/label/label.stories.d.ts +7 -0
  232. package/label/label.stories.js +17 -0
  233. package/layout/index.d.ts +1 -0
  234. package/layout/index.js +17 -0
  235. package/layout/layout.d.ts +9 -0
  236. package/layout/layout.js +60 -0
  237. package/layout/layout.stories.d.ts +8 -0
  238. package/layout/layout.stories.js +21 -0
  239. package/layout/uxf-logo.d.ts +6 -0
  240. package/layout/uxf-logo.js +13 -0
  241. package/list-item/index.d.ts +1 -0
  242. package/list-item/index.js +17 -0
  243. package/list-item/list-item.d.ts +8 -0
  244. package/list-item/list-item.js +24 -0
  245. package/list-item/list-item.stories.d.ts +7 -0
  246. package/list-item/list-item.stories.js +32 -0
  247. package/package.json +18 -36
  248. package/pagination/pagination.d.ts +7 -0
  249. package/pagination/pagination.js +49 -0
  250. package/pagination/pagination.stories.d.ts +7 -0
  251. package/pagination/pagination.stories.js +47 -0
  252. package/radio/index.d.ts +1 -0
  253. package/radio/index.js +17 -0
  254. package/radio/radio.d.ts +6 -0
  255. package/radio/radio.js +15 -0
  256. package/radio/radio.stories.d.ts +7 -0
  257. package/radio/radio.stories.js +42 -0
  258. package/radio-group/index.d.ts +1 -0
  259. package/radio-group/index.js +17 -0
  260. package/radio-group/radio-group.d.ts +22 -0
  261. package/radio-group/radio-group.js +48 -0
  262. package/radio-group/radio-group.stories.d.ts +7 -0
  263. package/radio-group/radio-group.stories.js +57 -0
  264. package/radio-group/theme.d.ts +5 -0
  265. package/radio-group/theme.js +2 -0
  266. package/raster-image/index.d.ts +1 -0
  267. package/raster-image/index.js +17 -0
  268. package/raster-image/raster-image.d.ts +30 -0
  269. package/raster-image/raster-image.js +35 -0
  270. package/raster-image/raster-image.stories.d.ts +30 -0
  271. package/raster-image/raster-image.stories.js +17 -0
  272. package/scripts/generate-tw-tokens.js +94 -0
  273. package/select/index.d.ts +1 -0
  274. package/select/index.js +17 -0
  275. package/select/select.d.ts +24 -0
  276. package/select/select.js +58 -0
  277. package/select/select.stories.d.ts +9 -0
  278. package/select/select.stories.js +72 -0
  279. package/tabs/index.d.ts +1 -0
  280. package/tabs/index.js +17 -0
  281. package/tabs/tabs.d.ts +19 -0
  282. package/tabs/tabs.js +68 -0
  283. package/tabs/tabs.stories.d.ts +11 -0
  284. package/tabs/tabs.stories.js +48 -0
  285. package/text-input/index.d.ts +1 -0
  286. package/text-input/index.js +17 -0
  287. package/text-input/test-input.spec.d.ts +1 -0
  288. package/text-input/test-input.spec.js +12 -0
  289. package/text-input/text-input.d.ts +31 -0
  290. package/text-input/text-input.js +57 -0
  291. package/text-input/text-input.stories.d.ts +8 -0
  292. package/text-input/text-input.stories.js +56 -0
  293. package/text-link/index.d.ts +1 -0
  294. package/text-link/index.js +17 -0
  295. package/text-link/text-link.d.ts +5 -0
  296. package/text-link/text-link.js +19 -0
  297. package/text-link/text-link.stories.d.ts +7 -0
  298. package/text-link/text-link.stories.js +24 -0
  299. package/textarea/index.d.ts +1 -0
  300. package/textarea/index.js +17 -0
  301. package/textarea/textarea.d.ts +18 -0
  302. package/textarea/textarea.js +81 -0
  303. package/textarea/textarea.stories.d.ts +7 -0
  304. package/textarea/textarea.stories.js +44 -0
  305. package/time-picker-input/index.d.ts +2 -0
  306. package/time-picker-input/index.js +18 -0
  307. package/time-picker-input/time-picker-hour.d.ts +5 -0
  308. package/time-picker-input/time-picker-hour.js +47 -0
  309. package/time-picker-input/time-picker-hours.d.ts +2 -0
  310. package/time-picker-input/time-picker-hours.js +14 -0
  311. package/time-picker-input/time-picker-input.d.ts +22 -0
  312. package/time-picker-input/time-picker-input.js +89 -0
  313. package/time-picker-input/time-picker-input.stories.d.ts +7 -0
  314. package/time-picker-input/time-picker-input.stories.js +45 -0
  315. package/time-picker-input/time-picker-minute.d.ts +5 -0
  316. package/time-picker-input/time-picker-minute.js +47 -0
  317. package/time-picker-input/time-picker-minutes.d.ts +2 -0
  318. package/time-picker-input/time-picker-minutes.js +14 -0
  319. package/time-picker-input/time-picker.d.ts +8 -0
  320. package/time-picker-input/time-picker.js +69 -0
  321. package/toggle/index.d.ts +1 -0
  322. package/toggle/index.js +17 -0
  323. package/toggle/theme.d.ts +4 -0
  324. package/toggle/theme.js +2 -0
  325. package/toggle/toggle.d.ts +12 -0
  326. package/toggle/toggle.js +19 -0
  327. package/toggle/toggle.stories.d.ts +7 -0
  328. package/toggle/toggle.stories.js +52 -0
  329. package/tw-tokens/tw-box-shadow.d.ts +11 -0
  330. package/tw-tokens/tw-box-shadow.js +14 -0
  331. package/tw-tokens/tw-colors.d.ts +328 -0
  332. package/tw-tokens/tw-colors.js +331 -0
  333. package/tw-tokens/tw-containers.d.ts +8 -0
  334. package/tw-tokens/tw-containers.js +11 -0
  335. package/tw-tokens/tw-font-size.d.ts +42 -0
  336. package/tw-tokens/tw-font-size.js +19 -0
  337. package/tw-tokens/tw-font-weight.d.ts +12 -0
  338. package/tw-tokens/tw-font-weight.js +15 -0
  339. package/tw-tokens/tw-line-height.d.ts +17 -0
  340. package/tw-tokens/tw-line-height.js +20 -0
  341. package/tw-tokens/tw-screens.d.ts +8 -0
  342. package/tw-tokens/tw-screens.js +11 -0
  343. package/tw-tokens/tw-spacing.d.ts +39 -0
  344. package/tw-tokens/tw-spacing.js +42 -0
  345. package/tw-tokens/tw-z-index.d.ts +19 -0
  346. package/tw-tokens/tw-z-index.js +22 -0
  347. package/types/form-control-props.d.ts +24 -0
  348. package/types/form-control-props.js +2 -0
  349. package/types/index.d.ts +1 -0
  350. package/types/index.js +17 -0
  351. package/utils/action.d.ts +2 -0
  352. package/utils/action.js +11 -0
  353. package/utils/component-structure-analyzer.d.ts +6 -0
  354. package/utils/component-structure-analyzer.js +10 -0
  355. package/utils/icons-config.js +73 -0
  356. package/utils/image.d.ts +19 -0
  357. package/utils/image.js +104 -0
  358. package/utils/is-light-background.d.ts +2 -0
  359. package/utils/is-light-background.js +11 -0
  360. package/utils/storybook-config.d.ts +26 -0
  361. package/{storybook → utils}/storybook-config.js +12 -6
  362. package/utils/tailwind-config.js +163 -0
  363. package/stories/button.stories.tsx +0 -87
  364. package/storybook/index.d.ts +0 -1
  365. package/storybook/storybook-config.d.ts +0 -21
  366. package/tailwindui/button.css +0 -51
  367. package/types.d.ts +0 -3
  368. package/types.js +0 -3
@@ -0,0 +1,106 @@
1
+ .uxf-combobox {
2
+ @apply relative;
3
+
4
+ &__button {
5
+ @apply relative flex h-9 w-full cursor-default flex-row items-center rounded-lg px-4 text-left
6
+ outline-none before:absolute before:inset-0 before:pointer-events-none before:border before:rounded-lg;
7
+
8
+ .uxf-icon {
9
+ @apply h-4;
10
+ }
11
+
12
+ :root .light & {
13
+ @apply bg-white text-lightHigh before:border-gray-200;
14
+
15
+ .is-empty {
16
+ @apply text-lightLow;
17
+ }
18
+ }
19
+
20
+ :root .dark & {
21
+ @apply bg-gray-800 text-darkHigh before:border-gray-700;
22
+
23
+ .is-empty {
24
+ @apply text-darkLow;
25
+ }
26
+ }
27
+
28
+ &.is-focused {
29
+ @apply ring-2;
30
+
31
+ :root .light & {
32
+ @apply before:border-none ring-primary-500;
33
+ }
34
+
35
+ :root .dark & {
36
+ @apply ring-primary-500;
37
+ }
38
+ }
39
+
40
+ &.is-invalid {
41
+ @apply ring-1;
42
+
43
+ :root .light & {
44
+ @apply ring-error-500 text-error-500;
45
+
46
+ .uxf-combobox__input {
47
+ @apply placeholder:text-error-500;
48
+ }
49
+ }
50
+
51
+ :root .dark & {
52
+ @apply ring-error-500 text-error-500;
53
+
54
+ .uxf-combobox__input {
55
+ @apply placeholder:text-error-500;
56
+ }
57
+ }
58
+ }
59
+ }
60
+
61
+ &__input {
62
+ @apply flex-grow bg-inherit focus-visible:ring-0 focus-visible:border-0 focus-visible:outline-none;
63
+
64
+ :root .light & {
65
+ @apply placeholder:text-lightLow;
66
+ }
67
+
68
+ :root .dark & {
69
+ @apply placeholder:text-darkLow;
70
+ }
71
+ }
72
+
73
+ &__button-icon {
74
+ @apply transition duration-300;
75
+
76
+ :root .light & {
77
+ @apply text-lightMedium;
78
+ }
79
+
80
+ :root .dark & {
81
+ @apply text-darkMedium;
82
+ }
83
+
84
+ &.is-open {
85
+ @apply -scale-y-100;
86
+ }
87
+ }
88
+
89
+ input:-webkit-autofill {
90
+ &,
91
+ &:hover,
92
+ &:focus {
93
+ margin: 1px 0;
94
+
95
+ :root .dark & {
96
+ -webkit-box-shadow: inset 0 0 0 1000px theme("colors.gray.800");
97
+ caret-color: white;
98
+ -webkit-text-fill-color: theme("colors.gray.300");
99
+ }
100
+
101
+ :root .light & {
102
+ -webkit-box-shadow: inset 0 0 0 1000px theme("colors.gray.100");
103
+ }
104
+ }
105
+ }
106
+ }
@@ -0,0 +1,102 @@
1
+ .uxf-combobox {
2
+ @apply relative;
3
+
4
+ &__button {
5
+ @apply relative flex h-12 w-full cursor-default flex-row items-center rounded-lg py-3 px-4 text-left
6
+ outline-none before:absolute before:inset-0 before:pointer-events-none before:border before:rounded-lg;
7
+
8
+ :root .light & {
9
+ @apply bg-gray-100 text-lightHigh before:border-gray-200;
10
+
11
+ .is-empty {
12
+ @apply text-lightLow;
13
+ }
14
+ }
15
+
16
+ :root .dark & {
17
+ @apply bg-gray-800 text-darkHigh before:border-gray-700;
18
+
19
+ .is-empty {
20
+ @apply text-darkLow;
21
+ }
22
+ }
23
+
24
+ &.is-focused {
25
+ @apply ring-2;
26
+
27
+ :root .light & {
28
+ @apply before:border-none ring-primary-500;
29
+ }
30
+
31
+ :root .dark & {
32
+ @apply ring-primary-500;
33
+ }
34
+ }
35
+
36
+ &.is-invalid {
37
+ @apply ring-1;
38
+
39
+ :root .light & {
40
+ @apply ring-error-500 text-error-500;
41
+
42
+ .uxf-combobox__input {
43
+ @apply placeholder:text-error-500;
44
+ }
45
+ }
46
+
47
+ :root .dark & {
48
+ @apply ring-error-500 text-error-500;
49
+
50
+ .uxf-combobox__input {
51
+ @apply placeholder:text-error-500;
52
+ }
53
+ }
54
+ }
55
+ }
56
+
57
+ &__input {
58
+ @apply flex-grow bg-inherit focus-visible:ring-0 focus-visible:border-0 focus-visible:outline-none;
59
+
60
+ :root .light & {
61
+ @apply placeholder:text-lightLow;
62
+ }
63
+
64
+ :root .dark & {
65
+ @apply placeholder:text-darkLow;
66
+ }
67
+ }
68
+
69
+ &__button-icon {
70
+ @apply transition duration-300;
71
+
72
+ :root .light & {
73
+ @apply text-lightMedium;
74
+ }
75
+
76
+ :root .dark & {
77
+ @apply text-darkMedium;
78
+ }
79
+
80
+ &.is-open {
81
+ @apply -scale-y-100;
82
+ }
83
+ }
84
+
85
+ input:-webkit-autofill {
86
+ &,
87
+ &:hover,
88
+ &:focus {
89
+ margin: 1px 0;
90
+
91
+ :root .dark & {
92
+ -webkit-box-shadow: inset 0 0 0 1000px theme("colors.gray.800");
93
+ caret-color: white;
94
+ -webkit-text-fill-color: theme("colors.gray.300");
95
+ }
96
+
97
+ :root .light & {
98
+ -webkit-box-shadow: inset 0 0 0 1000px theme("colors.gray.100");
99
+ }
100
+ }
101
+ }
102
+ }
@@ -0,0 +1,31 @@
1
+ .uxf-component-structure-analyzer {
2
+ padding-bottom: 32px;
3
+
4
+ * {
5
+ padding: 32px !important;
6
+ border: 2px solid black !important;
7
+ position: relative !important;
8
+ color: lightgray !important;
9
+ background-color: white !important;
10
+ border-radius: initial !important;
11
+ margin: 4px !important;
12
+ font-family: monospace;
13
+ font-size: 12px;
14
+ min-width: 200px;
15
+ height: auto !important;
16
+ top: initial !important;
17
+ left: initial !important;
18
+ right: initial !important;
19
+
20
+ &::before {
21
+ position: absolute;
22
+ left: 4px;
23
+ top: 2px;
24
+ content: attr(class);
25
+ font-size: 12px;
26
+ line-height: 14px;
27
+ color: black;
28
+ font-weight: 500;
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,133 @@
1
+ .uxf-date-picker-input {
2
+ @apply w-full rounded-lg text-base;
3
+
4
+ &__element {
5
+ @apply w-full bg-transparent outline-none;
6
+
7
+ :root .light & {
8
+ @apply text-gray-900 placeholder:text-gray-400;
9
+ }
10
+
11
+ :root .dark & {
12
+ @apply text-gray-300 placeholder:text-gray-400;
13
+ }
14
+ }
15
+
16
+ &__left-element {
17
+ @apply mr-2;
18
+ }
19
+
20
+ &__right-element {
21
+ @apply ml-2;
22
+ }
23
+
24
+ &__wrapper {
25
+ @apply flex items-center w-full h-12 rounded-lg border px-4;
26
+
27
+ :root .light & {
28
+ @apply bg-gray-100 text-gray-900 border-gray-200;
29
+ }
30
+
31
+ :root .dark & {
32
+ @apply bg-gray-800 text-gray-300 border-gray-700;
33
+ }
34
+ }
35
+
36
+ &__popover {
37
+ @apply absolute left-0 z-dropdown max-w-md rounded-lg border p-2 shadow-xl overflow-y-auto;
38
+
39
+ :root .light & {
40
+ @apply bg-white border-gray-500;
41
+ }
42
+
43
+ :root .dark & {
44
+ @apply bg-gray-900 border-2 border-gray-700;
45
+ }
46
+ }
47
+
48
+ &--has-right-addon {
49
+ .uxf-date-picker-input__wrapper {
50
+ @apply rounded-r-none;
51
+ }
52
+ }
53
+
54
+ &.is-focused {
55
+ .uxf-date-picker-input__wrapper {
56
+ @apply ring-1 ring-inset ring-offset-0;
57
+
58
+ :root .light & {
59
+ @apply border-primary-500 ring-primary-500;
60
+ }
61
+
62
+ :root .dark & {
63
+ @apply border-primary-500 ring-primary-500;
64
+ }
65
+ }
66
+ }
67
+
68
+ &.is-disabled {
69
+ @apply cursor-not-allowed;
70
+
71
+ .uxf-date-picker-input__wrapper {
72
+ :root .light & {
73
+ @apply text-gray-500 bg-gray-300;
74
+ }
75
+
76
+ :root .dark & {
77
+ @apply text-gray-500 bg-gray-600;
78
+ }
79
+ }
80
+
81
+ .uxf-date-picker-input__element {
82
+ @apply cursor-not-allowed;
83
+ }
84
+ }
85
+
86
+ &.is-readonly {
87
+ @apply cursor-text;
88
+
89
+ .uxf-date-picker-input__element {
90
+ @apply cursor-text;
91
+ }
92
+
93
+ .uxf-date-picker-input__wrapper {
94
+ @apply ring-0;
95
+
96
+ :root .light & {
97
+ @apply bg-gray-200 text-gray-700 border-gray-300;
98
+ }
99
+
100
+ :root .dark & {
101
+ @apply bg-gray-800 text-gray-300 border-gray-500;
102
+ }
103
+ }
104
+ }
105
+
106
+ &.is-invalid {
107
+ &.is-focused {
108
+ .uxf-date-picker-input__wrapper {
109
+ :root .light & {
110
+ @apply ring-error-500 border-error-500;
111
+ }
112
+
113
+ :root .dark & {
114
+ @apply ring-error-500 border-error-500;
115
+ }
116
+ }
117
+ }
118
+
119
+ .uxf-date-picker-input__wrapper {
120
+ @apply text-error-500 border-error-500 placeholder:text-error-300;
121
+
122
+ .uxf-date-picker-input__element {
123
+ :root .light & {
124
+ @apply border-gray-300 text-error-500;
125
+ }
126
+
127
+ :root .dark & {
128
+ @apply border-gray-500 text-error-500;
129
+ }
130
+ }
131
+ }
132
+ }
133
+ }
@@ -0,0 +1,90 @@
1
+ .uxf-date-picker {
2
+ &__month-select,
3
+ &__year-select,
4
+ &__decade-select {
5
+ @apply flex items-center justify-between px-4 w-[320px] sm:w-[360px];
6
+ }
7
+
8
+ &__month-calendar,
9
+ &__year-calendar,
10
+ &__decade-calendar {
11
+ @apply grid place-items-center w-full px-4 pt-4 text-center;
12
+ }
13
+
14
+ &__month-calendar {
15
+ @apply grid-cols-7 gap-0.5;
16
+ }
17
+
18
+ &__year-calendar {
19
+ @apply grid-cols-3 sm:grid-cols-4 gap-2;
20
+ }
21
+
22
+ &__decade-calendar {
23
+ @apply grid-cols-3 gap-2;
24
+ }
25
+
26
+ &__weekday-label {
27
+ @apply uppercase pb-2;
28
+ }
29
+
30
+ &__decade-label {
31
+ @apply font-semibold;
32
+ }
33
+
34
+ &__cell {
35
+ @apply p-1 transition relative rounded-full outline-none before:absolute before:pointer-events-none
36
+ before:rounded-full before:-inset-1 focus-visible:before:border-2;
37
+
38
+ &__day {
39
+ @apply w-9 h-9;
40
+ }
41
+
42
+ &__month {
43
+ @apply w-full;
44
+ }
45
+
46
+ &__year {
47
+ @apply w-full;
48
+ }
49
+ }
50
+
51
+ :root .light & {
52
+ @apply text-gray-900;
53
+
54
+ .uxf-date-picker__cell {
55
+ @apply hover:bg-gray-200 focus-visible:before:border-primary-500;
56
+ }
57
+
58
+ .uxf-date-picker__cell__day--today {
59
+ @apply bg-primary-200 hover:bg-primary-300;
60
+ }
61
+
62
+ .uxf-date-picker__cell__day--selected {
63
+ @apply bg-primary-500 text-white hover:bg-primary-500;
64
+ }
65
+
66
+ .uxf-date-picker__cell__day--not-current-month {
67
+ @apply text-gray-400;
68
+ }
69
+ }
70
+
71
+ :root .dark & {
72
+ @apply bg-gray-900 text-white;
73
+
74
+ .uxf-date-picker__cell {
75
+ @apply hover:bg-gray-700 focus-visible:before:border-primary-500;
76
+ }
77
+
78
+ .uxf-date-picker__cell__day--today {
79
+ @apply bg-primary-400/50 hover:bg-primary-400/60;
80
+ }
81
+
82
+ .uxf-date-picker__cell__day--selected {
83
+ @apply bg-primary-500 text-white hover:bg-primary-500;
84
+ }
85
+
86
+ .uxf-date-picker__cell__day--not-current-month {
87
+ @apply text-gray-600;
88
+ }
89
+ }
90
+ }
@@ -0,0 +1,24 @@
1
+ .uxf-dropdown {
2
+ @apply absolute z-10 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black
3
+ ring-opacity-5 focus:outline-none sm:text-sm;
4
+
5
+ &--bottom {
6
+ @apply mt-1;
7
+ }
8
+
9
+ &--top {
10
+ @apply -translate-y-1;
11
+ }
12
+
13
+ &__item {
14
+ @apply relative cursor-default select-none py-2 px-4 text-gray-800;
15
+
16
+ &.is-active {
17
+ @apply bg-primary-500 text-white;
18
+ }
19
+ }
20
+
21
+ &__items {
22
+ @apply absolute flex flex-col border border-black bg-white;
23
+ }
24
+ }
@@ -0,0 +1,24 @@
1
+ .uxf-dropdown {
2
+ @apply absolute z-10 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black
3
+ ring-opacity-5 focus:outline-none sm:text-sm;
4
+
5
+ &--bottom {
6
+ @apply mt-1;
7
+ }
8
+
9
+ &--top {
10
+ @apply -translate-y-1;
11
+ }
12
+
13
+ &__item {
14
+ @apply relative cursor-default select-none py-3 px-4 text-gray-800;
15
+
16
+ &.is-active {
17
+ @apply bg-primary-500 text-white;
18
+ }
19
+ }
20
+
21
+ &__items {
22
+ @apply absolute flex flex-col border border-black bg-white;
23
+ }
24
+ }
@@ -0,0 +1,3 @@
1
+ .uxf-error-message {
2
+ @apply block text-error-600 mt-1 text-right;
3
+ }
@@ -0,0 +1,20 @@
1
+ .uxf-flash-messages {
2
+ @apply pointer-events-none fixed inset-0 z-50 flex items-end p-6;
3
+
4
+ &__list-wrapper {
5
+ @apply flex w-full max-w-sm flex-col items-center space-y-4 sm:items-end sm:justify-end;
6
+ }
7
+ }
8
+
9
+ .uxf-flash-message {
10
+ @apply pointer-events-auto rounded-2xl transition px-3 py-4 text-center shadow backdrop-blur
11
+ is-hoverable:cursor-pointer;
12
+
13
+ &--success {
14
+ @apply bg-success-500 is-hoverable:bg-success-700 text-white;
15
+ }
16
+
17
+ &--error {
18
+ @apply bg-error-500 is-hoverable:bg-error-700 text-white;
19
+ }
20
+ }
@@ -0,0 +1,7 @@
1
+ .uxf-helper-text {
2
+ @apply mt-1 text-xs text-gray-500;
3
+
4
+ &.is-invalid {
5
+ @apply text-error-600;
6
+ }
7
+ }
package/css/icon.css ADDED
@@ -0,0 +1,7 @@
1
+ .uxf-icon {
2
+ @apply shrink-0 h-[var(--i-h)] w-[var(--i-w)];
3
+
4
+ & > use {
5
+ @apply pointer-events-none;
6
+ }
7
+ }
@@ -0,0 +1,18 @@
1
+ .uxf-input {
2
+ @apply flex flex-row;
3
+ }
4
+
5
+ .uxf-input__wrapper {
6
+ @apply flex w-full flex-row;
7
+ }
8
+
9
+ .uxf-input__element {
10
+ @apply w-full;
11
+ }
12
+
13
+ .uxf-input__left-element,
14
+ .uxf-input__right-element,
15
+ .uxf-input__left-addon,
16
+ .uxf-input__right-addon {
17
+ @apply flex flex-row items-center whitespace-nowrap;
18
+ }