ropav 0.0.8 → 0.0.10

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 (232) hide show
  1. package/dist/accordion.css +10 -10
  2. package/dist/accordion.js +2 -2
  3. package/dist/alert.css +109 -0
  4. package/dist/alert.js +168 -0
  5. package/dist/aspect-ratio.css +17 -0
  6. package/dist/aspect-ratio.js +26 -0
  7. package/dist/avatar.css +97 -0
  8. package/dist/avatar.js +161 -0
  9. package/dist/badge.css +40 -115
  10. package/dist/badge.js +19 -16
  11. package/dist/base.css +609 -180
  12. package/dist/button-link.css +161 -0
  13. package/dist/button-link.js +108 -0
  14. package/dist/button.css +50 -229
  15. package/dist/button.js +7 -9
  16. package/dist/card.css +12 -12
  17. package/dist/check.js +12 -0
  18. package/dist/checkbox.css +16 -57
  19. package/dist/checkbox.js +14 -31
  20. package/dist/collapse.css +2 -2
  21. package/dist/collapse.js +1 -1
  22. package/dist/color-input.css +108 -0
  23. package/dist/color-input.js +349 -0
  24. package/dist/color-picker.css +304 -0
  25. package/dist/color-picker.js +797 -0
  26. package/dist/color-picker2.js +18 -0
  27. package/dist/color-swatch.css +50 -0
  28. package/dist/color-swatch.js +73 -0
  29. package/dist/color.js +190 -0
  30. package/dist/componentColors.js +206 -13
  31. package/dist/components/accordion/accordion-item.d.ts +4 -4
  32. package/dist/components/accordion/accordion.d.ts +1 -1
  33. package/dist/components/accordion/index.d.ts +4 -4
  34. package/dist/components/accordion/types.d.ts +1 -1
  35. package/dist/components/accordion/useAccordion.d.ts +1 -1
  36. package/dist/components/alert/alert.d.ts +30 -0
  37. package/dist/components/alert/index.d.ts +3 -0
  38. package/dist/components/alert/index.js +2 -0
  39. package/dist/components/alert/types.d.ts +20 -0
  40. package/dist/components/alert/useAlertColor.d.ts +3 -0
  41. package/dist/components/aspect-ratio/aspect-ratio.d.ts +21 -0
  42. package/dist/components/aspect-ratio/index.d.ts +2 -0
  43. package/dist/components/aspect-ratio/index.js +2 -0
  44. package/dist/components/aspect-ratio/types.d.ts +3 -0
  45. package/dist/components/avatar/avatar.d.ts +24 -0
  46. package/dist/components/avatar/index.d.ts +3 -0
  47. package/dist/components/avatar/index.js +2 -0
  48. package/dist/components/avatar/types.d.ts +20 -0
  49. package/dist/components/avatar/useAvatarColor.d.ts +3 -0
  50. package/dist/components/badge/badge.d.ts +1 -1
  51. package/dist/components/badge/index.d.ts +3 -3
  52. package/dist/components/badge/types.d.ts +3 -2
  53. package/dist/components/badge/useBadgeColor.d.ts +3 -8
  54. package/dist/components/button/button.d.ts +1 -1
  55. package/dist/components/button/index.d.ts +2 -2
  56. package/dist/components/button/types.d.ts +2 -1
  57. package/dist/components/button/useButtonColor.d.ts +3 -13
  58. package/dist/components/button-group/button-group.d.ts +1 -1
  59. package/dist/components/button-group/index.d.ts +2 -2
  60. package/dist/components/button-link/button-link.d.ts +27 -0
  61. package/dist/components/button-link/index.d.ts +2 -0
  62. package/dist/components/button-link/index.js +2 -0
  63. package/dist/components/button-link/types.d.ts +20 -0
  64. package/dist/components/card/card.d.ts +1 -1
  65. package/dist/components/card/index.d.ts +2 -2
  66. package/dist/components/checkbox/checkbox.d.ts +1 -1
  67. package/dist/components/checkbox/index.d.ts +2 -2
  68. package/dist/components/checkbox/types.d.ts +2 -1
  69. package/dist/components/checkbox/useCheckbox.d.ts +4 -6
  70. package/dist/components/collapse/collapse.d.ts +2 -2
  71. package/dist/components/collapse/index.d.ts +3 -3
  72. package/dist/components/collapse/useCollapse.d.ts +1 -1
  73. package/dist/components/color-input/color-input.d.ts +29 -0
  74. package/dist/components/color-input/index.d.ts +2 -0
  75. package/dist/components/color-input/index.js +2 -0
  76. package/dist/components/color-input/types.d.ts +35 -0
  77. package/dist/components/color-input/useColorInput.d.ts +27 -0
  78. package/dist/components/color-input/useColorInputEyeDropper.d.ts +13 -0
  79. package/dist/components/color-input/useColorInputPopover.d.ts +11 -0
  80. package/dist/components/color-input/useColorInputValue.d.ts +8 -0
  81. package/dist/components/color-picker/color-picker-saturation.d.ts +21 -0
  82. package/dist/components/color-picker/color-picker-slider.d.ts +21 -0
  83. package/dist/components/color-picker/color-picker-utils.d.ts +23 -0
  84. package/dist/components/color-picker/color-picker.d.ts +23 -0
  85. package/dist/components/color-picker/index.d.ts +3 -0
  86. package/dist/components/color-picker/index.js +3 -0
  87. package/dist/components/color-picker/types.d.ts +39 -0
  88. package/dist/components/color-picker/useColorPickerDrag.d.ts +16 -0
  89. package/dist/components/color-picker/useColorPickerSwatches.d.ts +21 -0
  90. package/dist/components/color-picker/useColorPickerValue.d.ts +15 -0
  91. package/dist/components/color-swatch/color-swatch.d.ts +21 -0
  92. package/dist/components/color-swatch/index.d.ts +2 -0
  93. package/dist/components/color-swatch/index.js +2 -0
  94. package/dist/components/color-swatch/types.d.ts +6 -0
  95. package/dist/components/color-swatch/useColorSwatchColor.d.ts +5 -0
  96. package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +15 -6
  97. package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +1 -1
  98. package/dist/components/dropdown-menu/dropdown-menu.d.ts +3 -3
  99. package/dist/components/dropdown-menu/index.d.ts +3 -3
  100. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +11 -10
  101. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +2 -2
  102. package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +2 -2
  103. package/dist/components/dropdown-menu/useDropdownMenuHoverIntent.d.ts +2 -2
  104. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +2 -2
  105. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +3 -3
  106. package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +12 -4
  107. package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +3 -3
  108. package/dist/components/field/field.d.ts +2 -2
  109. package/dist/components/field/index.d.ts +2 -2
  110. package/dist/components/field/types.d.ts +0 -2
  111. package/dist/components/field/useField.d.ts +1 -3
  112. package/dist/components/icon-button/icon-button.d.ts +1 -1
  113. package/dist/components/icon-button/index.d.ts +2 -2
  114. package/dist/components/icon-button/types.d.ts +2 -1
  115. package/dist/components/input/index.d.ts +2 -2
  116. package/dist/components/input/input.d.ts +1 -1
  117. package/dist/components/input/types.d.ts +3 -0
  118. package/dist/components/input/useInput.d.ts +2 -2
  119. package/dist/components/modal/index.d.ts +2 -2
  120. package/dist/components/modal/modal.d.ts +1 -1
  121. package/dist/components/modal/types.d.ts +1 -1
  122. package/dist/components/modal/useModal.d.ts +1 -1
  123. package/dist/components/number-input/index.d.ts +2 -0
  124. package/dist/components/number-input/index.js +2 -0
  125. package/dist/components/number-input/number-input.d.ts +29 -0
  126. package/dist/components/number-input/types.d.ts +34 -0
  127. package/dist/components/number-input/useNumberInput.d.ts +31 -0
  128. package/dist/components/overlay/index.d.ts +2 -2
  129. package/dist/components/overlay/overlay.d.ts +1 -1
  130. package/dist/components/overlay/useOverlay.d.ts +1 -1
  131. package/dist/components/popover/index.d.ts +3 -2
  132. package/dist/components/popover/index.js +2 -1
  133. package/dist/components/popover/popover.d.ts +2 -2
  134. package/dist/components/popover/types.d.ts +3 -1
  135. package/dist/components/popover/usePopover.d.ts +2 -1
  136. package/dist/components/progress/index.d.ts +3 -3
  137. package/dist/components/progress/progress.d.ts +1 -1
  138. package/dist/components/progress/types.d.ts +2 -2
  139. package/dist/components/progress/useProgress.d.ts +2 -2
  140. package/dist/components/radio/index.d.ts +3 -3
  141. package/dist/components/radio/radio-group.d.ts +1 -1
  142. package/dist/components/radio/radio.d.ts +1 -1
  143. package/dist/components/radio/types.d.ts +4 -1
  144. package/dist/components/radio/useRadio.d.ts +4 -6
  145. package/dist/components/select/index.d.ts +2 -2
  146. package/dist/components/select/select.d.ts +1 -1
  147. package/dist/components/select/types.d.ts +3 -0
  148. package/dist/components/select/useSelect.d.ts +2 -2
  149. package/dist/components/slider/index.d.ts +4 -3
  150. package/dist/components/slider/index.js +2 -2
  151. package/dist/components/slider/range-slider-tooltip.d.ts +34 -0
  152. package/dist/components/slider/range-slider.d.ts +37 -0
  153. package/dist/components/slider/slider.d.ts +1 -1
  154. package/dist/components/slider/sliderCore.d.ts +35 -0
  155. package/dist/components/slider/types.d.ts +15 -6
  156. package/dist/components/slider/useRangeSlider.d.ts +57 -0
  157. package/dist/components/slider/useRangeSliderPointer.d.ts +19 -0
  158. package/dist/components/slider/useRangeSliderTooltipCollision.d.ts +36 -0
  159. package/dist/components/slider/useRangeSliderTooltipState.d.ts +23 -0
  160. package/dist/components/slider/useSlider.d.ts +11 -15
  161. package/dist/components/switch/index.d.ts +2 -2
  162. package/dist/components/switch/switch.d.ts +1 -1
  163. package/dist/components/switch/types.d.ts +1 -1
  164. package/dist/components/switch/useSwitch.d.ts +4 -5
  165. package/dist/components/tabs/index.d.ts +6 -6
  166. package/dist/components/tabs/tabs-content.d.ts +2 -2
  167. package/dist/components/tabs/tabs-list.d.ts +4 -4
  168. package/dist/components/tabs/tabs-trigger.d.ts +5 -5
  169. package/dist/components/tabs/tabs.d.ts +5 -5
  170. package/dist/components/tabs/useTabs.d.ts +1 -1
  171. package/dist/components/textarea/index.d.ts +2 -2
  172. package/dist/components/textarea/textarea.d.ts +1 -1
  173. package/dist/components/textarea/useTextarea.d.ts +2 -2
  174. package/dist/components/toast/defaults.d.ts +7 -0
  175. package/dist/components/toast/index.d.ts +7 -0
  176. package/dist/components/toast/index.js +2 -0
  177. package/dist/components/toast/toast-provider.d.ts +21 -0
  178. package/dist/components/toast/toast-viewport.d.ts +34 -0
  179. package/dist/components/toast/toast.d.ts +31 -0
  180. package/dist/components/toast/types.d.ts +106 -0
  181. package/dist/components/toast/useToast.d.ts +4 -0
  182. package/dist/components/toast/useToastColor.d.ts +3 -0
  183. package/dist/components/toast/useToastState.d.ts +2 -0
  184. package/dist/components/tooltip/index.d.ts +2 -2
  185. package/dist/components/tooltip/tooltip.d.ts +2 -2
  186. package/dist/components/tooltip/types.d.ts +2 -1
  187. package/dist/components/tooltip/useTooltip.d.ts +3 -1
  188. package/dist/dropdown-menu.css +17 -17
  189. package/dist/dropdown-menu.js +160 -39
  190. package/dist/field.css +15 -18
  191. package/dist/field.js +17 -35
  192. package/dist/icon-button.css +57 -236
  193. package/dist/icon-button.js +5 -6
  194. package/dist/index.d.ts +31 -22
  195. package/dist/index.js +17 -4
  196. package/dist/input.css +40 -46
  197. package/dist/input.js +39 -21
  198. package/dist/minus.js +12 -0
  199. package/dist/modal.css +9 -9
  200. package/dist/modal.js +1 -1
  201. package/dist/number-input.css +86 -0
  202. package/dist/number-input.js +350 -0
  203. package/dist/overlay.css +5 -5
  204. package/dist/overlay.js +3 -3
  205. package/dist/popover.css +62 -29
  206. package/dist/popover.js +33 -19
  207. package/dist/popover2.js +17 -0
  208. package/dist/progress.css +9 -30
  209. package/dist/progress.js +3 -6
  210. package/dist/radio.css +34 -62
  211. package/dist/radio.js +28 -16
  212. package/dist/rafScheduler.js +34 -0
  213. package/dist/select.css +105 -61
  214. package/dist/select.js +12 -8
  215. package/dist/slider.css +719 -125
  216. package/dist/slider.js +1251 -149
  217. package/dist/switch.css +19 -44
  218. package/dist/switch.js +4 -5
  219. package/dist/tabs.css +36 -36
  220. package/dist/tabs.js +1 -1
  221. package/dist/textarea.css +33 -25
  222. package/dist/textarea.js +8 -2
  223. package/dist/toast.css +232 -0
  224. package/dist/toast.js +679 -0
  225. package/dist/tooltip.css +7 -35
  226. package/dist/tooltip.js +30 -18
  227. package/dist/useButtonColor.js +16 -14
  228. package/dist/utils/componentColors.d.ts +60 -0
  229. package/package.json +55 -15
  230. package/src/styles/_mixins.scss +25 -41
  231. package/src/styles/_tokens.scss +615 -182
  232. package/src/styles/_variables.scss +177 -49
@@ -7,8 +7,8 @@
7
7
  overflow: hidden;
8
8
  font-family: var(--rp-font-family);
9
9
  color: var(--rp-color-text);
10
- background-color: var(--rp-color-surface-raised);
11
- border: var(--rp-border-width-thin) solid var(--rp-color-border);
10
+ background-color: var(--rp-color-default);
11
+ border: var(--rp-border-width-thin) solid var(--rp-color-default-border);
12
12
  border-radius: var(--_rp-accordion-radius);
13
13
  }
14
14
  .rp-accordion--disabled[data-v-c0aaa9d9] {
@@ -22,7 +22,7 @@
22
22
  --_rp-accordion-duration: var(--rp-transition-fast);
23
23
  box-sizing: border-box;
24
24
  min-width: 0;
25
- border-top: var(--rp-border-width-thin) solid var(--rp-color-border);
25
+ border-top: var(--rp-border-width-thin) solid var(--rp-color-default-border);
26
26
  }
27
27
  .rp-accordion-item[data-v-8528e537]:first-child {
28
28
  border-top: 0;
@@ -30,7 +30,7 @@
30
30
  .rp-accordion-item--horizontal[data-v-8528e537] {
31
31
  flex: 1 1 0;
32
32
  border-top: 0;
33
- border-left: var(--rp-border-width-thin) solid var(--rp-color-border);
33
+ border-left: var(--rp-border-width-thin) solid var(--rp-color-default-border);
34
34
  }
35
35
  .rp-accordion-item--horizontal[data-v-8528e537]:first-child {
36
36
  border-left: 0;
@@ -54,9 +54,9 @@
54
54
  padding: var(--rp-spacing-3) var(--rp-spacing-4);
55
55
  color: var(--rp-color-text);
56
56
  font-family: var(--rp-font-family);
57
- font-size: var(--rp-font-size-base);
57
+ font-size: var(--rp-font-size-md);
58
58
  font-weight: var(--rp-font-weight-medium);
59
- line-height: var(--rp-line-height-tight);
59
+ line-height: var(--rp-line-height-xs);
60
60
  text-align: left;
61
61
  appearance: none;
62
62
  cursor: pointer;
@@ -65,11 +65,11 @@
65
65
  transition: background-color var(--_rp-accordion-duration), color var(--_rp-accordion-duration);
66
66
  }
67
67
  .rp-accordion-item__trigger[data-v-8528e537]:hover:not(:disabled) {
68
- background-color: var(--rp-color-surface-hover);
68
+ background-color: var(--rp-color-default-hover);
69
69
  }
70
70
  .rp-accordion-item__trigger[data-v-8528e537]:focus-visible {
71
71
  outline: none;
72
- border-color: var(--rp-color-primary);
72
+ border-color: var(--rp-color-control-border-focus);
73
73
  box-shadow: 0 0 0 var(--rp-border-width-medium) var(--rp-color-focus-ring);
74
74
  }
75
75
  .rp-accordion-item__trigger[data-v-8528e537]:disabled {
@@ -94,8 +94,8 @@
94
94
  overflow: hidden;
95
95
  padding: 0 var(--rp-spacing-4) var(--rp-spacing-4);
96
96
  color: var(--rp-color-text);
97
- font-size: var(--rp-font-size-base);
98
- line-height: var(--rp-line-height-normal);
97
+ font-size: var(--rp-font-size-md);
98
+ line-height: var(--rp-line-height-md);
99
99
  grid-template-rows: 1fr;
100
100
  transition: grid-template-rows var(--_rp-accordion-duration), opacity var(--_rp-accordion-duration), padding-bottom var(--_rp-accordion-duration);
101
101
  }
package/dist/accordion.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import './accordion.css';
2
- import { t as useRequiredInject } from "./useRequiredInject.js";
3
2
  import { t as bem } from "./bem.js";
4
- import { t as useCollapse } from "./useCollapse.js";
5
3
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
4
+ import { t as useRequiredInject } from "./useRequiredInject.js";
5
+ import { t as useCollapse } from "./useCollapse.js";
6
6
  import { VaporTransition, applyVShow, child, computed, createComponent, createIf, createSlot, defineVaporComponent, extend, markRaw, next, provide, ref, renderEffect, setDynamicProps, setInsertionState, setText, template, toDisplayString, unref, useId } from "vue";
7
7
  //#region src/components/accordion/types.ts
8
8
  var accordionKey = Symbol("accordion");
package/dist/alert.css ADDED
@@ -0,0 +1,109 @@
1
+ .rp-alert[data-v-97a5ebfe] {
2
+ --_rp-alert-bg: var(--rp-color-cyan-light);
3
+ --_rp-alert-fg: var(--rp-color-text);
4
+ --_rp-alert-title-fg: var(--rp-color-cyan-light-color);
5
+ --_rp-alert-icon-fg: var(--rp-color-cyan-light-color);
6
+ --_rp-alert-border: transparent;
7
+ --_rp-alert-radius: var(--rp-radius-sm);
8
+ box-sizing: border-box;
9
+ display: flex;
10
+ align-items: flex-start;
11
+ width: 100%;
12
+ min-width: 0;
13
+ padding: var(--rp-spacing-4);
14
+ gap: var(--rp-spacing-3);
15
+ color: var(--_rp-alert-fg);
16
+ font-family: var(--rp-font-family);
17
+ font-size: var(--rp-font-size-sm);
18
+ line-height: var(--rp-line-height-md);
19
+ background-color: var(--_rp-alert-bg);
20
+ border: var(--rp-border-width-thin) solid var(--_rp-alert-border);
21
+ border-radius: var(--_rp-alert-radius);
22
+ transition: background-color var(--rp-transition-fast), color var(--rp-transition-fast), border-color var(--rp-transition-fast);
23
+ }
24
+ .rp-alert--radius-none[data-v-97a5ebfe] {
25
+ --_rp-alert-radius: var(--rp-radius-none);
26
+ }
27
+ .rp-alert--radius-xs[data-v-97a5ebfe] {
28
+ --_rp-alert-radius: var(--rp-radius-xs);
29
+ }
30
+ .rp-alert--radius-sm[data-v-97a5ebfe] {
31
+ --_rp-alert-radius: var(--rp-radius-sm);
32
+ }
33
+ .rp-alert--radius-md[data-v-97a5ebfe] {
34
+ --_rp-alert-radius: var(--rp-radius-md);
35
+ }
36
+ .rp-alert--radius-lg[data-v-97a5ebfe] {
37
+ --_rp-alert-radius: var(--rp-radius-lg);
38
+ }
39
+ .rp-alert--radius-xl[data-v-97a5ebfe] {
40
+ --_rp-alert-radius: var(--rp-radius-xl);
41
+ }
42
+ .rp-alert__icon[data-v-97a5ebfe] {
43
+ display: inline-flex;
44
+ flex: 0 0 auto;
45
+ align-items: center;
46
+ justify-content: center;
47
+ margin-top: 0.125rem;
48
+ color: var(--_rp-alert-icon-fg);
49
+ line-height: 0;
50
+ }
51
+ .rp-alert__icon[data-v-97a5ebfe] > svg {
52
+ display: block;
53
+ width: 1rem;
54
+ height: 1rem;
55
+ }
56
+ .rp-alert__content[data-v-97a5ebfe] {
57
+ display: grid;
58
+ flex: 1 1 auto;
59
+ min-width: 0;
60
+ gap: var(--rp-spacing-1);
61
+ }
62
+ .rp-alert__title[data-v-97a5ebfe] {
63
+ color: var(--_rp-alert-title-fg);
64
+ font-size: var(--rp-font-size-md);
65
+ font-weight: var(--rp-font-weight-semibold);
66
+ line-height: var(--rp-line-height-xs);
67
+ }
68
+ .rp-alert__description[data-v-97a5ebfe] {
69
+ margin: 0;
70
+ }
71
+ .rp-alert__body[data-v-97a5ebfe], .rp-alert__description[data-v-97a5ebfe] {
72
+ min-width: 0;
73
+ color: var(--_rp-alert-fg);
74
+ }
75
+ .rp-alert__action[data-v-97a5ebfe] {
76
+ display: inline-flex;
77
+ flex: 0 0 auto;
78
+ align-items: center;
79
+ margin-left: auto;
80
+ }
81
+ .rp-alert__close[data-v-97a5ebfe] {
82
+ box-sizing: border-box;
83
+ display: inline-flex;
84
+ flex: 0 0 auto;
85
+ align-items: center;
86
+ justify-content: center;
87
+ width: 1.75rem;
88
+ height: 1.75rem;
89
+ margin: calc(var(--rp-spacing-1) * -1) calc(var(--rp-spacing-1) * -1) calc(var(--rp-spacing-1) * -1) 0;
90
+ padding: 0;
91
+ color: var(--_rp-alert-icon-fg);
92
+ background: transparent;
93
+ border: 0;
94
+ border-radius: var(--rp-radius-sm);
95
+ cursor: pointer;
96
+ transition: background-color var(--rp-transition-fast), color var(--rp-transition-fast);
97
+ }
98
+ .rp-alert__close[data-v-97a5ebfe]:hover {
99
+ background-color: color-mix(in srgb, var(--_rp-alert-icon-fg) 12%, transparent);
100
+ }
101
+ .rp-alert__close[data-v-97a5ebfe]:focus-visible {
102
+ outline: var(--rp-border-width-medium) solid var(--rp-color-focus-ring);
103
+ outline-offset: 2px;
104
+ }
105
+ .rp-alert__close[data-v-97a5ebfe] > svg {
106
+ display: block;
107
+ width: 1rem;
108
+ height: 1rem;
109
+ }
package/dist/alert.js ADDED
@@ -0,0 +1,168 @@
1
+ import './alert.css';
2
+ import { t as x_default } from "./x.js";
3
+ import { t as bem } from "./bem.js";
4
+ import { i as getComponentVariantColorRoles, t as componentColors } from "./componentColors.js";
5
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
6
+ import { computed, createComponent, createIf, createInvoker, createSlot, defineVaporComponent, delegateEvents, ref, renderEffect, setAttr, setClass, setInsertionState, setProp, setStyle, setText, template, toDisplayString, txt, unref, useSlots, watch } from "vue";
7
+ //#region src/components/alert/useAlertColor.ts
8
+ function getAlertColorStyle(color, variant, autoContrast) {
9
+ if (!color && !variant) return void 0;
10
+ const resolvedVariant = variant ?? "subtle";
11
+ const roles = getComponentVariantColorRoles({
12
+ color,
13
+ variant: resolvedVariant,
14
+ defaultColor: "cyan",
15
+ autoContrast
16
+ });
17
+ if (!roles) return void 0;
18
+ return {
19
+ "--_rp-alert-bg": roles.background,
20
+ "--_rp-alert-fg": resolvedVariant === "solid" ? roles.color : "var(--rp-color-text)",
21
+ "--_rp-alert-title-fg": roles.color,
22
+ "--_rp-alert-icon-fg": roles.color,
23
+ "--_rp-alert-border": roles.border
24
+ };
25
+ }
26
+ //#endregion
27
+ //#region src/components/alert/alert.vue?vue&type=script&setup=true&vapor=true&lang.ts
28
+ var t0 = template("<div data-v-97a5ebfe class=rp-alert__icon aria-hidden=true>");
29
+ var t1 = template(" ");
30
+ var t2 = template("<div data-v-97a5ebfe class=rp-alert__title>");
31
+ var t3 = template("<p data-v-97a5ebfe class=rp-alert__description> ");
32
+ var t4 = template("<div data-v-97a5ebfe class=rp-alert__body>");
33
+ var t5 = template("<div data-v-97a5ebfe class=rp-alert__content>");
34
+ var t6 = template("<div data-v-97a5ebfe class=rp-alert__action>");
35
+ var t7 = template("<button data-v-97a5ebfe class=rp-alert__close type=button>");
36
+ var t8 = template("<div data-v-97a5ebfe>", 1);
37
+ delegateEvents("click");
38
+ //#endregion
39
+ //#region src/components/alert/alert.vue
40
+ var alert_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
41
+ name: "RpAlert",
42
+ __name: "alert",
43
+ props: {
44
+ open: {
45
+ type: Boolean,
46
+ default: void 0
47
+ },
48
+ title: { default: "" },
49
+ description: { default: "" },
50
+ variant: {},
51
+ color: {},
52
+ autoContrast: { type: Boolean },
53
+ radius: {},
54
+ role: { default: "alert" },
55
+ closable: {
56
+ type: Boolean,
57
+ default: false
58
+ },
59
+ closeLabel: { default: "Close alert" }
60
+ },
61
+ emits: ["update:open", "close"],
62
+ setup(__props, { emit: __emit, slots: $slots }) {
63
+ const props = __props;
64
+ const emit = __emit;
65
+ const slots = useSlots();
66
+ const localOpen = ref(props.open ?? true);
67
+ watch(() => props.open, (open) => {
68
+ if (open !== void 0) localOpen.value = open;
69
+ });
70
+ const isOpen = computed(() => props.open ?? localOpen.value);
71
+ const hasTitle = computed(() => Boolean(props.title || slots.title));
72
+ const hasDescription = computed(() => Boolean(props.description));
73
+ const hasContent = computed(() => Boolean(hasTitle.value || hasDescription.value || slots.default));
74
+ const resolvedRole = computed(() => props.role === "none" ? void 0 : props.role);
75
+ const hasIcon = computed(() => Boolean(slots.icon));
76
+ const rootClass = computed(() => bem("rp-alert", {
77
+ [props.variant ?? ""]: Boolean(props.variant),
78
+ [`radius-${props.radius}`]: Boolean(props.radius)
79
+ }));
80
+ const rootStyle = computed(() => getAlertColorStyle(props.color, props.variant, props.autoContrast));
81
+ function closeAlert() {
82
+ localOpen.value = false;
83
+ emit("update:open", false);
84
+ emit("close");
85
+ }
86
+ return createIf(() => isOpen.value, () => {
87
+ const n30 = t8();
88
+ renderEffect(() => {
89
+ setClass(n30, rootClass.value);
90
+ setStyle(n30, rootStyle.value);
91
+ setProp(n30, "role", resolvedRole.value);
92
+ });
93
+ setInsertionState(n30, null, 0);
94
+ createIf(() => hasIcon.value, () => {
95
+ const n5 = t0();
96
+ setInsertionState(n5, null, 0);
97
+ createSlot("icon", null, null, 1);
98
+ return n5;
99
+ });
100
+ setInsertionState(n30, null, 1);
101
+ createIf(() => hasContent.value, () => {
102
+ const n21 = t5();
103
+ setInsertionState(n21, null, 0);
104
+ createIf(() => hasTitle.value, () => {
105
+ const n13 = t2();
106
+ setInsertionState(n13, null, 0);
107
+ createSlot("title", null, () => {
108
+ const n12 = t1();
109
+ renderEffect(() => setText(n12, toDisplayString(__props.title)));
110
+ return n12;
111
+ }, 1);
112
+ return n13;
113
+ });
114
+ setInsertionState(n21, null, 1);
115
+ createIf(() => hasDescription.value, () => {
116
+ const n16 = t3();
117
+ const x16 = txt(n16);
118
+ renderEffect(() => setText(x16, toDisplayString(__props.description)));
119
+ return n16;
120
+ });
121
+ setInsertionState(n21, null, 2);
122
+ createIf(() => $slots.default, () => {
123
+ const n20 = t4();
124
+ setInsertionState(n20, null, 0);
125
+ createSlot("default", null, null, 1);
126
+ return n20;
127
+ });
128
+ return n21;
129
+ });
130
+ setInsertionState(n30, null, 2);
131
+ createIf(() => $slots.action, () => {
132
+ const n25 = t6();
133
+ setInsertionState(n25, null, 0);
134
+ createSlot("action", null, null, 1);
135
+ return n25;
136
+ });
137
+ setInsertionState(n30, null, 3);
138
+ createIf(() => __props.closable, () => {
139
+ const n29 = t7();
140
+ renderEffect(() => setAttr(n29, "aria-label", __props.closeLabel));
141
+ setInsertionState(n29, null, 0);
142
+ createComponent(unref(x_default), { "aria-hidden": "true" });
143
+ n29.$evtclick = createInvoker(closeAlert);
144
+ return n29;
145
+ });
146
+ return n30;
147
+ });
148
+ }
149
+ }), [["__scopeId", "data-v-97a5ebfe"]]);
150
+ //#endregion
151
+ //#region src/components/alert/types.ts
152
+ var alertColors = componentColors;
153
+ var alertVariants = [
154
+ "subtle",
155
+ "surface",
156
+ "outline",
157
+ "solid"
158
+ ];
159
+ var alertRadiuses = [
160
+ "none",
161
+ "xs",
162
+ "sm",
163
+ "md",
164
+ "lg",
165
+ "xl"
166
+ ];
167
+ //#endregion
168
+ export { alert_default as i, alertRadiuses as n, alertVariants as r, alertColors as t };
@@ -0,0 +1,17 @@
1
+ .rp-aspect-ratio[data-v-0c2e5bad] {
2
+ --_rp-aspect-ratio: 1;
3
+ position: relative;
4
+ box-sizing: border-box;
5
+ display: block;
6
+ width: 100%;
7
+ max-width: 100%;
8
+ aspect-ratio: var(--_rp-aspect-ratio);
9
+ }
10
+ .rp-aspect-ratio[data-v-0c2e5bad] > * {
11
+ position: absolute;
12
+ inset: 0;
13
+ display: block;
14
+ width: 100%;
15
+ height: 100%;
16
+ object-fit: cover;
17
+ }
@@ -0,0 +1,26 @@
1
+ import './aspect-ratio.css';
2
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
3
+ import { computed, createSlot, defineVaporComponent, renderEffect, setInsertionState, setStyle, template } from "vue";
4
+ //#region src/components/aspect-ratio/aspect-ratio.vue?vue&type=script&setup=true&vapor=true&lang.ts
5
+ var t0 = template("<div data-v-0c2e5bad class=rp-aspect-ratio>", 1);
6
+ //#endregion
7
+ //#region src/components/aspect-ratio/aspect-ratio.vue
8
+ var aspect_ratio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
9
+ name: "RpAspectRatio",
10
+ __name: "aspect-ratio",
11
+ props: { ratio: { default: 1 } },
12
+ setup(__props) {
13
+ const props = __props;
14
+ const rootStyle = computed(() => ({ "--_rp-aspect-ratio": String(normalizeAspectRatio(props.ratio)) }));
15
+ function normalizeAspectRatio(ratio) {
16
+ return Number.isFinite(ratio) && ratio > 0 ? ratio : 1;
17
+ }
18
+ const n1 = t0();
19
+ renderEffect(() => setStyle(n1, rootStyle.value));
20
+ setInsertionState(n1, null, 0);
21
+ createSlot("default", null, null, 1);
22
+ return n1;
23
+ }
24
+ }), [["__scopeId", "data-v-0c2e5bad"]]);
25
+ //#endregion
26
+ export { aspect_ratio_default as t };
@@ -0,0 +1,97 @@
1
+ .rp-avatar[data-v-aaa2d081] {
2
+ --_rp-avatar-size: var(--rp-size-control-md);
3
+ --_rp-avatar-font-size: var(--rp-font-size-md);
4
+ --_rp-avatar-radius: var(--rp-radius-full);
5
+ --_rp-avatar-bg: var(--rp-color-gray-light);
6
+ --_rp-avatar-fg: var(--rp-color-gray-light-color);
7
+ --_rp-avatar-border: transparent;
8
+ --_rp-avatar-border-width: 0;
9
+ position: relative;
10
+ box-sizing: border-box;
11
+ display: inline-flex;
12
+ flex: 0 0 auto;
13
+ align-items: center;
14
+ justify-content: center;
15
+ width: var(--_rp-avatar-size);
16
+ height: var(--_rp-avatar-size);
17
+ overflow: hidden;
18
+ color: var(--_rp-avatar-fg);
19
+ font-family: var(--rp-font-family);
20
+ font-size: var(--_rp-avatar-font-size);
21
+ font-weight: var(--rp-font-weight-medium);
22
+ line-height: 1;
23
+ vertical-align: middle;
24
+ background-color: var(--_rp-avatar-bg);
25
+ border: var(--_rp-avatar-border-width) solid var(--_rp-avatar-border);
26
+ border-radius: var(--_rp-avatar-radius);
27
+ user-select: none;
28
+ }
29
+ .rp-avatar--surface[data-v-aaa2d081], .rp-avatar--outline[data-v-aaa2d081] {
30
+ --_rp-avatar-border-width: var(--rp-border-width-thin);
31
+ }
32
+ .rp-avatar--size-xs[data-v-aaa2d081] {
33
+ --_rp-avatar-size: var(--rp-size-control-xs);
34
+ --_rp-avatar-font-size: var(--rp-font-size-xs);
35
+ }
36
+ .rp-avatar--size-sm[data-v-aaa2d081] {
37
+ --_rp-avatar-size: var(--rp-size-control-sm);
38
+ --_rp-avatar-font-size: var(--rp-font-size-sm);
39
+ }
40
+ .rp-avatar--size-md[data-v-aaa2d081] {
41
+ --_rp-avatar-size: var(--rp-size-control-md);
42
+ --_rp-avatar-font-size: var(--rp-font-size-md);
43
+ }
44
+ .rp-avatar--size-lg[data-v-aaa2d081] {
45
+ --_rp-avatar-size: var(--rp-size-control-lg);
46
+ --_rp-avatar-font-size: var(--rp-font-size-lg);
47
+ }
48
+ .rp-avatar--size-xl[data-v-aaa2d081] {
49
+ --_rp-avatar-size: var(--rp-size-control-xl);
50
+ --_rp-avatar-font-size: var(--rp-font-size-xl);
51
+ }
52
+ .rp-avatar--radius-none[data-v-aaa2d081] {
53
+ --_rp-avatar-radius: var(--rp-radius-none);
54
+ }
55
+ .rp-avatar--radius-xs[data-v-aaa2d081] {
56
+ --_rp-avatar-radius: var(--rp-radius-xs);
57
+ }
58
+ .rp-avatar--radius-sm[data-v-aaa2d081] {
59
+ --_rp-avatar-radius: var(--rp-radius-sm);
60
+ }
61
+ .rp-avatar--radius-md[data-v-aaa2d081] {
62
+ --_rp-avatar-radius: var(--rp-radius-md);
63
+ }
64
+ .rp-avatar--radius-lg[data-v-aaa2d081] {
65
+ --_rp-avatar-radius: var(--rp-radius-lg);
66
+ }
67
+ .rp-avatar--radius-xl[data-v-aaa2d081] {
68
+ --_rp-avatar-radius: var(--rp-radius-xl);
69
+ }
70
+ .rp-avatar--radius-full[data-v-aaa2d081] {
71
+ --_rp-avatar-radius: var(--rp-radius-full);
72
+ }
73
+ .rp-avatar__image[data-v-aaa2d081] {
74
+ display: block;
75
+ width: 100%;
76
+ height: 100%;
77
+ object-fit: cover;
78
+ }
79
+ .rp-avatar__fallback[data-v-aaa2d081] {
80
+ display: inline-flex;
81
+ align-items: center;
82
+ justify-content: center;
83
+ width: 100%;
84
+ height: 100%;
85
+ }
86
+ .rp-avatar__fallback[data-v-aaa2d081] > svg {
87
+ display: block;
88
+ width: 50%;
89
+ height: 50%;
90
+ }
91
+ .rp-avatar__initials[data-v-aaa2d081] {
92
+ text-transform: uppercase;
93
+ }
94
+ .rp-avatar__icon[data-v-aaa2d081] {
95
+ width: 50%;
96
+ height: 50%;
97
+ }
package/dist/avatar.js ADDED
@@ -0,0 +1,161 @@
1
+ import './avatar.css';
2
+ import { t as bem } from "./bem.js";
3
+ import { i as getComponentVariantColorRoles, t as componentColors } from "./componentColors.js";
4
+ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
+ import { computed, createComponent, createIf, createSlot, defineVaporComponent, markRaw, on, ref, renderEffect, setAttr, setDynamicProps, setInsertionState, setProp, setText, template, toDisplayString, txt, unref, useAttrs, watch } from "vue";
6
+ //#region ~icons/lucide/user
7
+ var t0$1 = template("<svg viewBox=\"0 0 24 24\"width=1.2em height=1.2em><g fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><path d=\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"></path><circle cx=12 cy=7 r=4>", 3, 1);
8
+ function render(_ctx) {
9
+ return t0$1();
10
+ }
11
+ var user_default = markRaw(defineVaporComponent({
12
+ name: "lucide-user",
13
+ render
14
+ }));
15
+ //#endregion
16
+ //#region src/components/avatar/useAvatarColor.ts
17
+ function getAvatarColorStyle(color, variant, autoContrast) {
18
+ if (!color && !variant) return void 0;
19
+ const roles = getComponentVariantColorRoles({
20
+ color,
21
+ variant: variant ?? "solid",
22
+ autoContrast
23
+ });
24
+ if (!roles) return void 0;
25
+ return {
26
+ "--_rp-avatar-bg": roles.background,
27
+ "--_rp-avatar-fg": roles.color,
28
+ "--_rp-avatar-border": roles.border
29
+ };
30
+ }
31
+ //#endregion
32
+ //#region src/components/avatar/avatar.vue?vue&type=script&setup=true&vapor=true&lang.ts
33
+ var t0 = template("<img data-v-aaa2d081 class=rp-avatar__image>");
34
+ var t1 = template("<span data-v-aaa2d081 class=rp-avatar__initials> ");
35
+ var t2 = template("<span data-v-aaa2d081 class=rp-avatar__fallback>");
36
+ var t3 = template("<span data-v-aaa2d081>", 1);
37
+ //#endregion
38
+ //#region src/components/avatar/avatar.vue
39
+ var avatar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
40
+ name: "RpAvatar",
41
+ inheritAttrs: false,
42
+ __name: "avatar",
43
+ props: {
44
+ src: {},
45
+ alt: {},
46
+ ariaLabel: {},
47
+ name: {},
48
+ variant: {},
49
+ color: {},
50
+ autoContrast: { type: Boolean },
51
+ size: {},
52
+ radius: {}
53
+ },
54
+ emits: ["load", "error"],
55
+ setup(__props, { emit: __emit }) {
56
+ const props = __props;
57
+ const emit = __emit;
58
+ const attrs = useAttrs();
59
+ const imageFailed = ref(false);
60
+ const isHidden = computed(() => attrs["aria-hidden"] === true || attrs["aria-hidden"] === "true");
61
+ const showsImage = computed(() => Boolean(props.src) && !imageFailed.value);
62
+ const accessibleName = computed(() => {
63
+ if (isHidden.value) return void 0;
64
+ return props.ariaLabel || props.alt || props.name || void 0;
65
+ });
66
+ const imageAlt = computed(() => accessibleName.value ?? "");
67
+ const rootRole = computed(() => !showsImage.value && accessibleName.value ? "img" : void 0);
68
+ const rootAriaLabel = computed(() => rootRole.value ? accessibleName.value : void 0);
69
+ const fallbackAriaHidden = computed(() => isHidden.value || rootAriaLabel.value ? true : void 0);
70
+ const initials = computed(() => getInitials(props.name));
71
+ const rootClass = computed(() => bem("rp-avatar", {
72
+ [props.variant ?? ""]: Boolean(props.variant),
73
+ [`size-${props.size}`]: Boolean(props.size),
74
+ [`radius-${props.radius}`]: Boolean(props.radius)
75
+ }));
76
+ const rootStyle = computed(() => getAvatarColorStyle(props.color, props.variant, props.autoContrast));
77
+ watch(() => props.src, () => {
78
+ imageFailed.value = false;
79
+ });
80
+ function handleImageLoad(event) {
81
+ emit("load", event);
82
+ }
83
+ function handleImageError(event) {
84
+ imageFailed.value = true;
85
+ emit("error", event);
86
+ }
87
+ function getInitials(name) {
88
+ if (!name) return "";
89
+ const parts = name.trim().split(/\s+/).filter(Boolean);
90
+ const firstPart = parts[0];
91
+ if (!firstPart) return "";
92
+ if (parts.length === 1) return Array.from(firstPart).slice(0, 2).join("").toLocaleUpperCase();
93
+ const lastPart = parts.at(-1) ?? firstPart;
94
+ return `${Array.from(firstPart)[0] ?? ""}${Array.from(lastPart)[0] ?? ""}`.toLocaleUpperCase();
95
+ }
96
+ const n13 = t3();
97
+ renderEffect(() => setDynamicProps(n13, [unref(attrs), {
98
+ class: rootClass.value,
99
+ style: rootStyle.value,
100
+ role: rootRole.value,
101
+ "aria-label": rootAriaLabel.value
102
+ }]));
103
+ setInsertionState(n13, null, 0);
104
+ createIf(() => showsImage.value, () => {
105
+ const n2 = t0();
106
+ on(n2, "load", handleImageLoad);
107
+ on(n2, "error", handleImageError);
108
+ renderEffect(() => {
109
+ setProp(n2, "src", __props.src || void 0);
110
+ setAttr(n2, "alt", imageAlt.value);
111
+ });
112
+ return n2;
113
+ }, () => {
114
+ const n12 = t2();
115
+ renderEffect(() => setAttr(n12, "aria-hidden", fallbackAriaHidden.value));
116
+ setInsertionState(n12, null, 0);
117
+ createSlot("default", null, () => {
118
+ return createIf(() => initials.value, () => {
119
+ const n8 = t1();
120
+ const x8 = txt(n8);
121
+ renderEffect(() => setText(x8, toDisplayString(initials.value)));
122
+ return n8;
123
+ }, () => {
124
+ return createComponent(unref(user_default), {
125
+ class: "rp-avatar__icon",
126
+ "aria-hidden": "true"
127
+ });
128
+ }, 517);
129
+ }, 1);
130
+ return n12;
131
+ }, 261);
132
+ return n13;
133
+ }
134
+ }), [["__scopeId", "data-v-aaa2d081"]]);
135
+ //#endregion
136
+ //#region src/components/avatar/types.ts
137
+ var avatarColors = componentColors;
138
+ var avatarSizes = [
139
+ "xs",
140
+ "sm",
141
+ "md",
142
+ "lg",
143
+ "xl"
144
+ ];
145
+ var avatarRadiuses = [
146
+ "none",
147
+ "xs",
148
+ "sm",
149
+ "md",
150
+ "lg",
151
+ "xl",
152
+ "full"
153
+ ];
154
+ var avatarVariants = [
155
+ "solid",
156
+ "subtle",
157
+ "surface",
158
+ "outline"
159
+ ];
160
+ //#endregion
161
+ export { avatar_default as a, avatarVariants as i, avatarRadiuses as n, avatarSizes as r, avatarColors as t };