ropav 0.0.10 → 0.0.12

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 (276) hide show
  1. package/README.md +9 -0
  2. package/dist/accordion.css +115 -111
  3. package/dist/accordion.js +60 -16
  4. package/dist/alert.css +110 -108
  5. package/dist/alert.js +48 -26
  6. package/dist/aspect-ratio.css +17 -15
  7. package/dist/aspect-ratio.js +20 -6
  8. package/dist/avatar.css +98 -96
  9. package/dist/avatar.js +27 -16
  10. package/dist/badge.css +95 -93
  11. package/dist/badge.js +29 -16
  12. package/dist/base.css +672 -671
  13. package/dist/button-group.css +39 -37
  14. package/dist/button-group.js +23 -12
  15. package/dist/button-link.css +160 -158
  16. package/dist/button-link.js +43 -24
  17. package/dist/button.css +160 -158
  18. package/dist/button.js +37 -19
  19. package/dist/card.css +109 -107
  20. package/dist/card.js +42 -17
  21. package/dist/checkbox.css +139 -137
  22. package/dist/checkbox.js +103 -33
  23. package/dist/collapse.css +29 -27
  24. package/dist/collapse.js +44 -10
  25. package/dist/color-input.css +137 -107
  26. package/dist/color-input.js +117 -30
  27. package/dist/color-picker.css +309 -303
  28. package/dist/color-picker.js +147 -54
  29. package/dist/color-picker2.js +9 -1
  30. package/dist/color-swatch.css +48 -46
  31. package/dist/color-swatch.js +15 -11
  32. package/dist/color-swatch2.js +4 -0
  33. package/dist/components/accordion/accordion-item.d.ts +13 -1
  34. package/dist/components/accordion/index.d.ts +2 -1
  35. package/dist/components/accordion/index.js +2 -2
  36. package/dist/components/accordion/types.d.ts +9 -4
  37. package/dist/components/alert/alert.d.ts +2 -2
  38. package/dist/components/alert/index.d.ts +2 -2
  39. package/dist/components/alert/index.js +2 -2
  40. package/dist/components/alert/types.d.ts +4 -1
  41. package/dist/components/aspect-ratio/index.d.ts +2 -1
  42. package/dist/components/aspect-ratio/index.js +2 -2
  43. package/dist/components/aspect-ratio/types.d.ts +4 -1
  44. package/dist/components/avatar/index.d.ts +2 -2
  45. package/dist/components/avatar/index.js +2 -2
  46. package/dist/components/avatar/types.d.ts +4 -1
  47. package/dist/components/badge/index.d.ts +2 -2
  48. package/dist/components/badge/index.js +2 -2
  49. package/dist/components/badge/types.d.ts +4 -1
  50. package/dist/components/button/index.d.ts +2 -1
  51. package/dist/components/button/index.js +2 -2
  52. package/dist/components/button/types.d.ts +4 -1
  53. package/dist/components/button-group/index.d.ts +2 -1
  54. package/dist/components/button-group/index.js +2 -2
  55. package/dist/components/button-group/types.d.ts +4 -1
  56. package/dist/components/button-link/index.d.ts +2 -1
  57. package/dist/components/button-link/index.js +2 -2
  58. package/dist/components/button-link/types.d.ts +4 -1
  59. package/dist/components/card/index.d.ts +2 -1
  60. package/dist/components/card/index.js +2 -2
  61. package/dist/components/card/types.d.ts +5 -1
  62. package/dist/components/checkbox/checkbox.d.ts +4 -1
  63. package/dist/components/checkbox/index.d.ts +2 -1
  64. package/dist/components/checkbox/index.js +2 -2
  65. package/dist/components/checkbox/types.d.ts +11 -2
  66. package/dist/components/checkbox/useCheckbox.d.ts +3 -1
  67. package/dist/components/collapse/collapse.d.ts +2 -2
  68. package/dist/components/collapse/index.d.ts +2 -1
  69. package/dist/components/collapse/index.js +2 -2
  70. package/dist/components/collapse/types.d.ts +9 -2
  71. package/dist/components/color-input/index.d.ts +2 -1
  72. package/dist/components/color-input/index.js +2 -2
  73. package/dist/components/color-input/types.d.ts +8 -2
  74. package/dist/components/color-input/useColorInput.d.ts +1 -1
  75. package/dist/components/color-input/useColorInputValue.d.ts +1 -1
  76. package/dist/components/color-picker/index.d.ts +2 -2
  77. package/dist/components/color-picker/index.js +2 -2
  78. package/dist/components/color-picker/types.d.ts +13 -1
  79. package/dist/components/color-swatch/index.d.ts +2 -1
  80. package/dist/components/color-swatch/index.js +2 -1
  81. package/dist/components/color-swatch/types.d.ts +4 -1
  82. package/dist/components/dialog/dialog-close.d.ts +21 -0
  83. package/dist/components/dialog/dialog-content.d.ts +32 -0
  84. package/dist/components/dialog/dialog-core.d.ts +27 -0
  85. package/dist/components/dialog/dialog-description.d.ts +21 -0
  86. package/dist/components/dialog/dialog-overlay.d.ts +21 -0
  87. package/dist/components/dialog/dialog-portal.d.ts +21 -0
  88. package/dist/components/dialog/dialog-root.d.ts +28 -0
  89. package/dist/components/dialog/dialog-title.d.ts +21 -0
  90. package/dist/components/dialog/dialog-trigger.d.ts +23 -0
  91. package/dist/components/dialog/index.d.ts +9 -0
  92. package/dist/components/dialog/index.js +2 -0
  93. package/dist/components/dialog/types.d.ts +61 -0
  94. package/dist/components/dropdown-menu/dropdown-menu-checkbox-item.d.ts +24 -0
  95. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +34 -0
  96. package/dist/components/dropdown-menu/dropdown-menu-context-trigger.d.ts +23 -0
  97. package/dist/components/dropdown-menu/dropdown-menu-item-indicator.d.ts +24 -0
  98. package/dist/components/dropdown-menu/dropdown-menu-item-row.d.ts +28 -0
  99. package/dist/components/dropdown-menu/dropdown-menu-item.d.ts +23 -0
  100. package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +24 -22
  101. package/dist/components/dropdown-menu/dropdown-menu-label.d.ts +21 -0
  102. package/dist/components/dropdown-menu/dropdown-menu-outside.d.ts +3 -0
  103. package/dist/components/dropdown-menu/dropdown-menu-portal.d.ts +21 -0
  104. package/dist/components/dropdown-menu/dropdown-menu-primitive-core.d.ts +110 -0
  105. package/dist/components/dropdown-menu/dropdown-menu-primitives.d.ts +15 -0
  106. package/dist/components/dropdown-menu/dropdown-menu-radio-group.d.ts +25 -0
  107. package/dist/components/dropdown-menu/dropdown-menu-radio-item.d.ts +23 -0
  108. package/dist/components/dropdown-menu/dropdown-menu-root.d.ts +30 -0
  109. package/dist/components/dropdown-menu/dropdown-menu-separator.d.ts +19 -0
  110. package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +34 -0
  111. package/dist/components/dropdown-menu/dropdown-menu-sub-trigger.d.ts +28 -0
  112. package/dist/components/dropdown-menu/dropdown-menu-sub.d.ts +28 -0
  113. package/dist/components/dropdown-menu/dropdown-menu-trigger.d.ts +23 -0
  114. package/dist/components/dropdown-menu/dropdown-menu.d.ts +6 -3
  115. package/dist/components/dropdown-menu/index.d.ts +32 -1
  116. package/dist/components/dropdown-menu/index.js +2 -2
  117. package/dist/components/dropdown-menu/types.d.ts +145 -6
  118. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +15 -3
  119. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +10 -3
  120. package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +2 -1
  121. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +4 -4
  122. package/dist/components/dropdown-menu/useDropdownMenuPortalPosition.d.ts +19 -0
  123. package/dist/components/dropdown-menu/useDropdownMenuPrimitiveContent.d.ts +27 -0
  124. package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +14 -2
  125. package/dist/components/field/index.d.ts +2 -1
  126. package/dist/components/field/index.js +2 -2
  127. package/dist/components/field/types.d.ts +4 -1
  128. package/dist/components/floating/index.d.ts +3 -0
  129. package/dist/components/floating/index.js +3 -0
  130. package/dist/components/floating/types.d.ts +105 -0
  131. package/dist/components/floating/useFloatingPosition.d.ts +15 -0
  132. package/dist/components/floating/useHoverDisclosure.d.ts +2 -0
  133. package/dist/components/focus-trap/focus-trap.d.ts +31 -0
  134. package/dist/components/focus-trap/index.d.ts +4 -0
  135. package/dist/components/focus-trap/index.js +3 -0
  136. package/dist/components/focus-trap/types.d.ts +41 -0
  137. package/dist/components/focus-trap/useFocusTrap.d.ts +2 -0
  138. package/dist/components/icon-button/index.d.ts +2 -1
  139. package/dist/components/icon-button/index.js +2 -1
  140. package/dist/components/icon-button/types.d.ts +4 -1
  141. package/dist/components/input/index.d.ts +2 -1
  142. package/dist/components/input/index.js +2 -1
  143. package/dist/components/input/input.d.ts +4 -1
  144. package/dist/components/input/types.d.ts +7 -2
  145. package/dist/components/modal/index.d.ts +2 -1
  146. package/dist/components/modal/index.js +2 -2
  147. package/dist/components/modal/modal.d.ts +3 -1
  148. package/dist/components/modal/types.d.ts +11 -1
  149. package/dist/components/modal/useModal.d.ts +7 -4
  150. package/dist/components/number-input/index.d.ts +2 -1
  151. package/dist/components/number-input/index.js +2 -2
  152. package/dist/components/number-input/types.d.ts +7 -2
  153. package/dist/components/number-input/useNumberInput.d.ts +2 -1
  154. package/dist/components/overlay/index.d.ts +2 -1
  155. package/dist/components/overlay/index.js +2 -1
  156. package/dist/components/overlay/types.d.ts +4 -1
  157. package/dist/components/popover/index.d.ts +2 -2
  158. package/dist/components/popover/index.js +2 -2
  159. package/dist/components/popover/popover.d.ts +2 -2
  160. package/dist/components/popover/types.d.ts +20 -11
  161. package/dist/components/popover/usePopover.d.ts +9 -1
  162. package/dist/components/progress/index.d.ts +2 -2
  163. package/dist/components/progress/index.js +2 -2
  164. package/dist/components/progress/types.d.ts +4 -1
  165. package/dist/components/radio/index.d.ts +2 -1
  166. package/dist/components/radio/index.js +2 -2
  167. package/dist/components/radio/radio.d.ts +8 -3
  168. package/dist/components/radio/types.d.ts +37 -4
  169. package/dist/components/radio/useRadio.d.ts +12 -4
  170. package/dist/components/select/index.d.ts +2 -1
  171. package/dist/components/select/index.js +2 -2
  172. package/dist/components/select/select.d.ts +4 -1
  173. package/dist/components/select/types.d.ts +10 -2
  174. package/dist/components/select/useSelect.d.ts +3 -1
  175. package/dist/components/slider/index.d.ts +2 -2
  176. package/dist/components/slider/index.js +2 -2
  177. package/dist/components/slider/range-slider-tooltip.d.ts +3 -0
  178. package/dist/components/slider/range-slider.d.ts +7 -4
  179. package/dist/components/slider/slider.d.ts +4 -1
  180. package/dist/components/slider/sliderCore.d.ts +4 -4
  181. package/dist/components/slider/types.d.ts +22 -4
  182. package/dist/components/slider/useRangeSlider.d.ts +2 -2
  183. package/dist/components/slider/useSlider.d.ts +2 -2
  184. package/dist/components/switch/index.d.ts +2 -1
  185. package/dist/components/switch/index.js +2 -2
  186. package/dist/components/switch/switch.d.ts +4 -1
  187. package/dist/components/switch/types.d.ts +11 -2
  188. package/dist/components/switch/useSwitch.d.ts +3 -1
  189. package/dist/components/tabs/index.d.ts +2 -1
  190. package/dist/components/tabs/index.js +2 -2
  191. package/dist/components/tabs/types.d.ts +13 -4
  192. package/dist/components/teleport-provider/index.d.ts +3 -0
  193. package/dist/components/teleport-provider/index.js +3 -0
  194. package/dist/components/teleport-provider/teleport-provider.d.ts +21 -0
  195. package/dist/components/teleport-provider/types.d.ts +4 -0
  196. package/dist/components/teleport-provider/useTeleportTarget.d.ts +6 -0
  197. package/dist/components/textarea/index.d.ts +2 -1
  198. package/dist/components/textarea/index.js +2 -2
  199. package/dist/components/textarea/textarea.d.ts +4 -1
  200. package/dist/components/textarea/types.d.ts +10 -2
  201. package/dist/components/textarea/useTextarea.d.ts +2 -1
  202. package/dist/components/toast/index.d.ts +3 -2
  203. package/dist/components/toast/index.js +2 -2
  204. package/dist/components/toast/toast-store.d.ts +2 -0
  205. package/dist/components/toast/toast.d.ts +2 -2
  206. package/dist/components/toast/types.d.ts +20 -10
  207. package/dist/components/toast/useToast.d.ts +2 -2
  208. package/dist/components/tooltip/index.d.ts +2 -1
  209. package/dist/components/tooltip/index.js +2 -1
  210. package/dist/components/tooltip/tooltip.d.ts +2 -2
  211. package/dist/components/tooltip/types.d.ts +13 -12
  212. package/dist/components/tooltip/useTooltip.d.ts +12 -2
  213. package/dist/composables/useOverlayLayer.d.ts +32 -0
  214. package/dist/dialog.js +510 -0
  215. package/dist/dropdown-menu.css +191 -108
  216. package/dist/dropdown-menu.js +1954 -198
  217. package/dist/field.css +41 -39
  218. package/dist/field.js +40 -16
  219. package/dist/floating.js +403 -0
  220. package/dist/focus-trap.js +80 -0
  221. package/dist/icon-button.css +193 -189
  222. package/dist/icon-button.js +23 -18
  223. package/dist/icon-button2.js +8 -0
  224. package/dist/index.d.ts +5 -0
  225. package/dist/index.js +39 -32
  226. package/dist/input.css +122 -120
  227. package/dist/input.js +63 -40
  228. package/dist/input2.js +9 -0
  229. package/dist/legacy-unlayered.css +5382 -0
  230. package/dist/modal.css +129 -127
  231. package/dist/modal.js +182 -281
  232. package/dist/number-input.css +87 -85
  233. package/dist/number-input.js +98 -26
  234. package/dist/overlay.css +26 -24
  235. package/dist/overlay.js +17 -9
  236. package/dist/overlay2.js +4 -0
  237. package/dist/popover.css +140 -107
  238. package/dist/popover.js +276 -196
  239. package/dist/popover2.js +6 -1
  240. package/dist/progress.css +101 -99
  241. package/dist/progress.js +50 -28
  242. package/dist/radio.css +114 -105
  243. package/dist/radio.js +237 -61
  244. package/dist/select.css +255 -242
  245. package/dist/select.js +257 -94
  246. package/dist/slider.css +1090 -1031
  247. package/dist/slider.js +443 -175
  248. package/dist/styles-api.d.ts +22 -0
  249. package/dist/styles-api.js +49 -0
  250. package/dist/switch.css +120 -108
  251. package/dist/switch.js +112 -38
  252. package/dist/tabs.css +286 -278
  253. package/dist/tabs.js +60 -21
  254. package/dist/teleport-provider.js +15 -0
  255. package/dist/textarea.css +132 -130
  256. package/dist/textarea.js +83 -31
  257. package/dist/toast.css +229 -225
  258. package/dist/toast.js +189 -118
  259. package/dist/tooltip.css +61 -106
  260. package/dist/tooltip.js +184 -228
  261. package/dist/tooltip2.js +8 -0
  262. package/dist/useControlState.js +4 -0
  263. package/dist/useFloatingPosition.js +1317 -0
  264. package/dist/useFocusTrap.js +130 -0
  265. package/dist/useFormControl.js +107 -0
  266. package/dist/useOverlayLayer.js +262 -0
  267. package/dist/useTeleportTarget.js +40 -0
  268. package/docs/public-floating-api.md +148 -0
  269. package/docs/public-styles-api.md +134 -0
  270. package/docs/public-tokens.md +545 -0
  271. package/package.json +37 -9
  272. package/src/styles/_tokens.scss +33 -28
  273. package/src/styles/_utilities.scss +11 -9
  274. package/src/styles/styles-manifest.json +4125 -0
  275. package/dist/rafScheduler.js +0 -34
  276. package/dist/useClickOutside.js +0 -24
package/dist/input.css CHANGED
@@ -1,121 +1,123 @@
1
- .rp-input[data-v-67d291cf] {
2
- --_rp-input-height: var(--rp-size-control-md);
3
- --_rp-input-padding-x: calc(var(--rp-size-control-md) / 3);
4
- --_rp-input-font-size: var(--rp-font-size-md);
5
- --_rp-input-radius: var(--rp-radius-sm);
6
- --_rp-input-valid-border: var(--rp-color-green-outline);
7
- --_rp-input-valid-ring: color-mix(in srgb, var(--rp-color-green-outline) 32%, transparent);
8
- --_rp-input-invalid-border: var(--rp-color-red-outline);
9
- --_rp-input-invalid-ring: color-mix(in srgb, var(--rp-color-red-outline) 32%, transparent);
10
- display: inline-flex;
11
- align-items: center;
12
- justify-content: center;
13
- box-sizing: border-box;
14
- gap: var(--rp-spacing-2);
15
- font-family: var(--rp-font-family);
16
- font-weight: var(--rp-font-weight-normal);
17
- background-color: var(--rp-color-control-bg);
18
- border: var(--rp-border-width-thin) solid var(--rp-color-control-border);
19
- cursor: text;
20
- transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast);
21
- }
22
- .rp-input[data-v-67d291cf]:hover:not(.rp-input--disabled):not(.rp-input--invalid):not(.rp-input--valid) {
23
- border-color: var(--rp-color-control-border-hover);
24
- }
25
- .rp-input[data-v-67d291cf]:focus-within:not(.rp-input--disabled):not(.rp-input--invalid):not(.rp-input--valid) {
26
- border-color: var(--rp-color-control-border-focus);
27
- box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
28
- }
29
- .rp-input[data-v-67d291cf] {
30
- height: var(--_rp-input-height);
31
- padding: 0 var(--_rp-input-padding-x);
32
- font-size: var(--_rp-input-font-size);
33
- border-radius: var(--_rp-input-radius);
34
- }
35
- .rp-input--size-xs[data-v-67d291cf] {
36
- --_rp-input-height: var(--rp-size-control-xs);
37
- --_rp-input-padding-x: calc(var(--rp-size-control-xs) / 3);
38
- --_rp-input-font-size: var(--rp-font-size-xs);
39
- }
40
- .rp-input--size-sm[data-v-67d291cf] {
41
- --_rp-input-height: var(--rp-size-control-sm);
42
- --_rp-input-padding-x: calc(var(--rp-size-control-sm) / 3);
43
- --_rp-input-font-size: var(--rp-font-size-sm);
44
- }
45
- .rp-input--size-md[data-v-67d291cf] {
46
- --_rp-input-height: var(--rp-size-control-md);
47
- --_rp-input-padding-x: calc(var(--rp-size-control-md) / 3);
48
- --_rp-input-font-size: var(--rp-font-size-md);
49
- }
50
- .rp-input--size-lg[data-v-67d291cf] {
51
- --_rp-input-height: var(--rp-size-control-lg);
52
- --_rp-input-padding-x: calc(var(--rp-size-control-lg) / 3);
53
- --_rp-input-font-size: var(--rp-font-size-lg);
54
- }
55
- .rp-input--size-xl[data-v-67d291cf] {
56
- --_rp-input-height: var(--rp-size-control-xl);
57
- --_rp-input-padding-x: calc(var(--rp-size-control-xl) / 3);
58
- --_rp-input-font-size: var(--rp-font-size-xl);
59
- }
60
- .rp-input--radius-xs[data-v-67d291cf] {
61
- --_rp-input-radius: var(--rp-radius-xs);
62
- }
63
- .rp-input--radius-sm[data-v-67d291cf] {
64
- --_rp-input-radius: var(--rp-radius-sm);
65
- }
66
- .rp-input--radius-md[data-v-67d291cf] {
67
- --_rp-input-radius: var(--rp-radius-md);
68
- }
69
- .rp-input--radius-lg[data-v-67d291cf] {
70
- --_rp-input-radius: var(--rp-radius-lg);
71
- }
72
- .rp-input--radius-xl[data-v-67d291cf] {
73
- --_rp-input-radius: var(--rp-radius-xl);
74
- }
75
- .rp-input--disabled[data-v-67d291cf] {
76
- opacity: var(--rp-opacity-disabled);
77
- cursor: not-allowed;
78
- }
79
- .rp-input--valid[data-v-67d291cf] {
80
- border-color: var(--_rp-input-valid-border);
81
- }
82
- .rp-input--valid[data-v-67d291cf]:focus-within:not(.rp-input--disabled) {
83
- border-color: var(--_rp-input-valid-border);
84
- box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-input-valid-ring);
85
- }
86
- .rp-input--invalid[data-v-67d291cf] {
87
- border-color: var(--_rp-input-invalid-border);
88
- }
89
- .rp-input--invalid[data-v-67d291cf]:focus-within:not(.rp-input--disabled) {
90
- border-color: var(--_rp-input-invalid-border);
91
- box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-input-invalid-ring);
92
- }
93
- .rp-input--readonly[data-v-67d291cf] {
94
- background-color: var(--rp-color-control-readonly-bg);
95
- }
96
- .rp-input__native[data-v-67d291cf] {
97
- box-sizing: border-box;
98
- flex: 1;
99
- width: 100%;
100
- height: 100%;
101
- min-width: 0;
102
- padding: 0;
103
- border: none;
104
- outline: none;
105
- background: transparent;
106
- font: inherit;
107
- color: var(--rp-color-control-fg);
108
- line-height: 1;
109
- }
110
- .rp-input__native[data-v-67d291cf]::placeholder {
111
- color: var(--rp-color-control-placeholder);
112
- }
113
- .rp-input__native[data-v-67d291cf]:disabled {
114
- cursor: not-allowed;
115
- }
116
- .rp-input__left[data-v-67d291cf], .rp-input__right[data-v-67d291cf] {
117
- display: inline-flex;
118
- align-items: center;
119
- flex-shrink: 0;
120
- color: var(--rp-color-control-icon);
1
+ @layer ropav.components {
2
+ .rp-input[data-v-3dd93444] {
3
+ --_rp-input-height: var(--rp-size-control-md);
4
+ --_rp-input-padding-x: calc(var(--rp-size-control-md) / 3);
5
+ --_rp-input-font-size: var(--rp-font-size-md);
6
+ --_rp-input-radius: var(--rp-radius-sm);
7
+ --_rp-input-valid-border: var(--rp-color-green-outline);
8
+ --_rp-input-valid-ring: color-mix(in srgb, var(--rp-color-green-outline) 32%, transparent);
9
+ --_rp-input-invalid-border: var(--rp-color-red-outline);
10
+ --_rp-input-invalid-ring: color-mix(in srgb, var(--rp-color-red-outline) 32%, transparent);
11
+ display: inline-flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ box-sizing: border-box;
15
+ gap: var(--rp-spacing-2);
16
+ font-family: var(--rp-font-family);
17
+ font-weight: var(--rp-font-weight-normal);
18
+ background-color: var(--rp-color-control-bg);
19
+ border: var(--rp-border-width-thin) solid var(--rp-color-control-border);
20
+ cursor: text;
21
+ transition: border-color var(--rp-transition-fast), box-shadow var(--rp-transition-fast);
22
+ }
23
+ .rp-input[data-v-3dd93444]:hover:not(.rp-input--disabled):not(.rp-input--invalid):not(.rp-input--valid) {
24
+ border-color: var(--rp-color-control-border-hover);
25
+ }
26
+ .rp-input[data-v-3dd93444]:focus-within:not(.rp-input--disabled):not(.rp-input--invalid):not(.rp-input--valid) {
27
+ border-color: var(--rp-color-control-border-focus);
28
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
29
+ }
30
+ .rp-input[data-v-3dd93444] {
31
+ height: var(--_rp-input-height);
32
+ padding: 0 var(--_rp-input-padding-x);
33
+ font-size: var(--_rp-input-font-size);
34
+ border-radius: var(--_rp-input-radius);
35
+ }
36
+ .rp-input--size-xs[data-v-3dd93444] {
37
+ --_rp-input-height: var(--rp-size-control-xs);
38
+ --_rp-input-padding-x: calc(var(--rp-size-control-xs) / 3);
39
+ --_rp-input-font-size: var(--rp-font-size-xs);
40
+ }
41
+ .rp-input--size-sm[data-v-3dd93444] {
42
+ --_rp-input-height: var(--rp-size-control-sm);
43
+ --_rp-input-padding-x: calc(var(--rp-size-control-sm) / 3);
44
+ --_rp-input-font-size: var(--rp-font-size-sm);
45
+ }
46
+ .rp-input--size-md[data-v-3dd93444] {
47
+ --_rp-input-height: var(--rp-size-control-md);
48
+ --_rp-input-padding-x: calc(var(--rp-size-control-md) / 3);
49
+ --_rp-input-font-size: var(--rp-font-size-md);
50
+ }
51
+ .rp-input--size-lg[data-v-3dd93444] {
52
+ --_rp-input-height: var(--rp-size-control-lg);
53
+ --_rp-input-padding-x: calc(var(--rp-size-control-lg) / 3);
54
+ --_rp-input-font-size: var(--rp-font-size-lg);
55
+ }
56
+ .rp-input--size-xl[data-v-3dd93444] {
57
+ --_rp-input-height: var(--rp-size-control-xl);
58
+ --_rp-input-padding-x: calc(var(--rp-size-control-xl) / 3);
59
+ --_rp-input-font-size: var(--rp-font-size-xl);
60
+ }
61
+ .rp-input--radius-xs[data-v-3dd93444] {
62
+ --_rp-input-radius: var(--rp-radius-xs);
63
+ }
64
+ .rp-input--radius-sm[data-v-3dd93444] {
65
+ --_rp-input-radius: var(--rp-radius-sm);
66
+ }
67
+ .rp-input--radius-md[data-v-3dd93444] {
68
+ --_rp-input-radius: var(--rp-radius-md);
69
+ }
70
+ .rp-input--radius-lg[data-v-3dd93444] {
71
+ --_rp-input-radius: var(--rp-radius-lg);
72
+ }
73
+ .rp-input--radius-xl[data-v-3dd93444] {
74
+ --_rp-input-radius: var(--rp-radius-xl);
75
+ }
76
+ .rp-input--disabled[data-v-3dd93444] {
77
+ opacity: var(--rp-opacity-disabled);
78
+ cursor: not-allowed;
79
+ }
80
+ .rp-input--valid[data-v-3dd93444] {
81
+ border-color: var(--_rp-input-valid-border);
82
+ }
83
+ .rp-input--valid[data-v-3dd93444]:focus-within:not(.rp-input--disabled) {
84
+ border-color: var(--_rp-input-valid-border);
85
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-input-valid-ring);
86
+ }
87
+ .rp-input--invalid[data-v-3dd93444] {
88
+ border-color: var(--_rp-input-invalid-border);
89
+ }
90
+ .rp-input--invalid[data-v-3dd93444]:focus-within:not(.rp-input--disabled) {
91
+ border-color: var(--_rp-input-invalid-border);
92
+ box-shadow: 0 0 0 var(--rp-border-width-medium) var(--_rp-input-invalid-ring);
93
+ }
94
+ .rp-input--readonly[data-v-3dd93444] {
95
+ background-color: var(--rp-color-control-readonly-bg);
96
+ }
97
+ .rp-input__native[data-v-3dd93444] {
98
+ box-sizing: border-box;
99
+ flex: 1;
100
+ width: 100%;
101
+ height: 100%;
102
+ min-width: 0;
103
+ padding: 0;
104
+ border: none;
105
+ outline: none;
106
+ background: transparent;
107
+ font: inherit;
108
+ color: var(--rp-color-control-fg);
109
+ line-height: 1;
110
+ }
111
+ .rp-input__native[data-v-3dd93444]::placeholder {
112
+ color: var(--rp-color-control-placeholder);
113
+ }
114
+ .rp-input__native[data-v-3dd93444]:disabled {
115
+ cursor: not-allowed;
116
+ }
117
+ .rp-input__left[data-v-3dd93444], .rp-input__right[data-v-3dd93444] {
118
+ display: inline-flex;
119
+ align-items: center;
120
+ flex-shrink: 0;
121
+ color: var(--rp-color-control-icon);
122
+ }
121
123
  }
package/dist/input.js CHANGED
@@ -1,8 +1,10 @@
1
1
  import './input.css';
2
2
  import { t as bem } from "./bem.js";
3
+ import { n as useStylesApi, t as presence } from "./styles-api.js";
3
4
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
+ import { a as useTextFormControl, o as useControllableValue, t as claimNestedFormControlOwner } from "./useFormControl.js";
4
6
  import { t as useControlState } from "./useControlState.js";
5
- import { child, computed, createIf, createInvoker, createSlot, createTemplateRefSetter, defineVaporComponent, delegateEvents, ref, renderEffect, setClass, setDynamicProps, setInsertionState, template, unref, watch } from "vue";
7
+ import { child, computed, createIf, createSlot, defineVaporComponent, ref, renderEffect, setDynamicProps, setInsertionState, setStaticTemplateRef, template, unref } from "vue";
6
8
  //#region src/components/input/useInput.ts
7
9
  var INTERACTIVE_SELECTOR = [
8
10
  "button",
@@ -46,19 +48,20 @@ function useInput(props, emitUpdate) {
46
48
  }
47
49
  //#endregion
48
50
  //#region src/components/input/input.vue?vue&type=script&setup=true&vapor=true&lang.ts
49
- var t0 = template("<span data-v-67d291cf class=rp-input__left>");
50
- var t1 = template("<span data-v-67d291cf class=rp-input__right>");
51
- var t2 = template("<label data-v-67d291cf><input data-v-67d291cf>", 1);
52
- delegateEvents("mousedown");
51
+ var t0 = template("<span data-v-3dd93444>");
52
+ var t1 = template("<label data-v-3dd93444><input data-v-3dd93444>", 1);
53
53
  //#endregion
54
54
  //#region src/components/input/input.vue
55
55
  var input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
56
56
  name: "RpInput",
57
+ inheritAttrs: false,
57
58
  __name: "input",
58
59
  props: {
59
60
  id: {},
60
61
  name: {},
61
- modelValue: {},
62
+ form: {},
63
+ modelValue: { default: void 0 },
64
+ defaultValue: { default: "" },
62
65
  type: { default: "text" },
63
66
  size: {},
64
67
  radius: {},
@@ -87,71 +90,91 @@ var input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
87
90
  describedby: {},
88
91
  labelledby: {},
89
92
  inputAttrs: {},
90
- validationMessage: {}
93
+ validationMessage: {},
94
+ classNames: {},
95
+ styles: {}
91
96
  },
92
97
  emits: ["update:modelValue"],
93
- setup(__props, { emit: __emit, slots: $slots }) {
98
+ setup(__props, { expose: __expose, emit: __emit, slots: $slots }) {
94
99
  const props = __props;
95
100
  const emit = __emit;
101
+ const controllable = useControllableValue({
102
+ modelValue: () => props.modelValue,
103
+ defaultValue: () => props.defaultValue,
104
+ onChange: (value) => emit("update:modelValue", value)
105
+ });
96
106
  const { inputRef, control, rootClass, onInput, focusInput } = useInput(props, (value) => {
97
- emit("update:modelValue", value);
107
+ controllable.setValue(value);
98
108
  });
109
+ if (!claimNestedFormControlOwner()) useTextFormControl(() => inputRef.value, controllable, () => props.validationMessage);
110
+ const { getPartAttrs, getRootAttrs } = useStylesApi(props, "root");
111
+ const rootAttrs = computed(() => getRootAttrs({
112
+ class: rootClass.value,
113
+ onMousedown: focusInput,
114
+ "data-disabled": presence(control.disabled),
115
+ "data-readonly": presence(props.readonly),
116
+ "data-invalid": presence(control.invalid)
117
+ }));
99
118
  const nativeInputAttrs = computed(() => {
100
119
  const attrs = props.inputAttrs ?? {};
120
+ const { class: compatibilityClass, style: compatibilityStyle, ...forwardedAttrs } = attrs;
101
121
  return {
102
- ...attrs,
122
+ ...forwardedAttrs,
123
+ ...getPartAttrs("input", {
124
+ class: "rp-input__native",
125
+ compatibilityClass,
126
+ compatibilityStyle
127
+ }),
128
+ id: control.id,
129
+ name: props.name,
130
+ form: control.form ?? forwardedAttrs.form,
131
+ type: props.type,
132
+ value: controllable.value.value,
133
+ placeholder: props.placeholder,
134
+ disabled: control.disabled || void 0,
135
+ readonly: props.readonly || void 0,
136
+ required: control.required || void 0,
137
+ "aria-label": props.ariaLabel || void 0,
138
+ "aria-labelledby": control.ariaLabelledby,
139
+ "aria-describedby": control.ariaDescribedby,
140
+ "aria-invalid": control.invalid || void 0,
141
+ "aria-required": control.required || void 0,
142
+ "data-disabled": presence(control.disabled),
143
+ "data-readonly": presence(props.readonly),
144
+ "data-invalid": presence(control.invalid),
103
145
  onInput(event) {
104
146
  onInput(event);
105
147
  attrs.onInput?.(event);
106
148
  }
107
149
  };
108
150
  });
109
- watch([inputRef, () => props.validationMessage], ([input, validationMessage]) => input?.setCustomValidity(validationMessage ?? ""), {
110
- flush: "post",
111
- immediate: true
151
+ __expose({
152
+ nativeElement: inputRef,
153
+ focus: () => inputRef.value?.focus()
112
154
  });
113
- const _setTemplateRef = createTemplateRefSetter();
114
- const n9 = t2();
155
+ const n9 = t1();
115
156
  const n4 = child(n9, 1);
116
- renderEffect(() => setClass(n9, unref(rootClass)));
157
+ renderEffect(() => setDynamicProps(n9, [rootAttrs.value]));
117
158
  setInsertionState(n9, 0, 0);
118
159
  createIf(() => $slots.left, () => {
119
160
  const n3 = t0();
161
+ renderEffect(() => setDynamicProps(n3, [unref(getPartAttrs)("left", { class: "rp-input__left" })]));
120
162
  setInsertionState(n3, null, 0);
121
163
  createSlot("left", null, null, 1);
122
164
  return n3;
123
165
  });
124
- _setTemplateRef(n4, inputRef, null, "inputRef");
125
- renderEffect(() => {
126
- const _control = unref(control);
127
- const _control_required = _control.required;
128
- setDynamicProps(n4, [nativeInputAttrs.value, {
129
- id: _control.id,
130
- name: __props.name,
131
- class: "rp-input__native",
132
- type: __props.type,
133
- value: __props.modelValue,
134
- placeholder: __props.placeholder,
135
- disabled: _control.disabled || void 0,
136
- readonly: __props.readonly || void 0,
137
- required: _control_required || void 0,
138
- "aria-label": __props.ariaLabel || void 0,
139
- "aria-labelledby": _control.ariaLabelledby,
140
- "aria-describedby": _control.ariaDescribedby,
141
- "aria-invalid": _control.invalid || void 0,
142
- "aria-required": _control_required || void 0
143
- }]);
144
- });
166
+ setStaticTemplateRef(n4, inputRef, null, "inputRef");
167
+ renderEffect(() => setDynamicProps(n4, [nativeInputAttrs.value]));
145
168
  setInsertionState(n9, null, 2);
146
169
  createIf(() => $slots.right, () => {
147
- const n8 = t1();
170
+ const n8 = t0();
171
+ renderEffect(() => setDynamicProps(n8, [unref(getPartAttrs)("right", { class: "rp-input__right" })]));
148
172
  setInsertionState(n8, null, 0);
149
173
  createSlot("right", null, null, 1);
150
174
  return n8;
151
175
  });
152
- n9.$evtmousedown = createInvoker((e) => unref(focusInput)(e));
153
176
  return n9;
154
177
  }
155
- }), [["__scopeId", "data-v-67d291cf"]]);
178
+ }), [["__scopeId", "data-v-3dd93444"]]);
156
179
  //#endregion
157
180
  export { input_default as t };
package/dist/input2.js ADDED
@@ -0,0 +1,9 @@
1
+ //#region src/components/input/types.ts
2
+ var inputParts = [
3
+ "root",
4
+ "input",
5
+ "left",
6
+ "right"
7
+ ];
8
+ //#endregion
9
+ export { inputParts as t };