ropav 0.0.10 → 0.0.11

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 (227) hide show
  1. package/README.md +6 -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 +79 -28
  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 +86 -17
  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 +6 -1
  66. package/dist/components/checkbox/useCheckbox.d.ts +2 -0
  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 +4 -1
  74. package/dist/components/color-picker/index.d.ts +2 -2
  75. package/dist/components/color-picker/index.js +2 -2
  76. package/dist/components/color-picker/types.d.ts +13 -1
  77. package/dist/components/color-swatch/index.d.ts +2 -1
  78. package/dist/components/color-swatch/index.js +2 -1
  79. package/dist/components/color-swatch/types.d.ts +4 -1
  80. package/dist/components/dropdown-menu/dropdown-menu-primitives.d.ts +724 -0
  81. package/dist/components/dropdown-menu/dropdown-menu.d.ts +3 -3
  82. package/dist/components/dropdown-menu/index.d.ts +53 -1
  83. package/dist/components/dropdown-menu/index.js +2 -2
  84. package/dist/components/dropdown-menu/types.d.ts +142 -6
  85. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +11 -3
  86. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +5 -3
  87. package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +2 -1
  88. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +4 -4
  89. package/dist/components/dropdown-menu/useDropdownMenuPortalPosition.d.ts +19 -0
  90. package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +14 -2
  91. package/dist/components/field/index.d.ts +2 -1
  92. package/dist/components/field/index.js +2 -2
  93. package/dist/components/field/types.d.ts +4 -1
  94. package/dist/components/floating/index.d.ts +1 -0
  95. package/dist/components/floating/index.js +0 -0
  96. package/dist/components/floating/types.d.ts +31 -0
  97. package/dist/components/floating/useFloatingPosition.d.ts +38 -0
  98. package/dist/components/focus-trap/focus-trap.d.ts +31 -0
  99. package/dist/components/focus-trap/index.d.ts +4 -0
  100. package/dist/components/focus-trap/index.js +3 -0
  101. package/dist/components/focus-trap/types.d.ts +41 -0
  102. package/dist/components/focus-trap/useFocusTrap.d.ts +2 -0
  103. package/dist/components/icon-button/index.d.ts +2 -1
  104. package/dist/components/icon-button/index.js +2 -1
  105. package/dist/components/icon-button/types.d.ts +4 -1
  106. package/dist/components/input/index.d.ts +2 -1
  107. package/dist/components/input/index.js +2 -1
  108. package/dist/components/input/types.d.ts +4 -1
  109. package/dist/components/modal/index.d.ts +2 -1
  110. package/dist/components/modal/index.js +2 -2
  111. package/dist/components/modal/types.d.ts +8 -1
  112. package/dist/components/number-input/index.d.ts +2 -1
  113. package/dist/components/number-input/index.js +2 -2
  114. package/dist/components/number-input/types.d.ts +4 -1
  115. package/dist/components/overlay/index.d.ts +2 -1
  116. package/dist/components/overlay/index.js +2 -1
  117. package/dist/components/overlay/types.d.ts +4 -1
  118. package/dist/components/popover/index.d.ts +2 -2
  119. package/dist/components/popover/index.js +2 -2
  120. package/dist/components/popover/popover.d.ts +2 -2
  121. package/dist/components/popover/types.d.ts +20 -11
  122. package/dist/components/popover/usePopover.d.ts +9 -1
  123. package/dist/components/progress/index.d.ts +2 -2
  124. package/dist/components/progress/index.js +2 -2
  125. package/dist/components/progress/types.d.ts +4 -1
  126. package/dist/components/radio/index.d.ts +2 -1
  127. package/dist/components/radio/index.js +2 -2
  128. package/dist/components/radio/radio.d.ts +8 -3
  129. package/dist/components/radio/types.d.ts +20 -3
  130. package/dist/components/radio/useRadio.d.ts +9 -4
  131. package/dist/components/select/index.d.ts +2 -1
  132. package/dist/components/select/index.js +2 -2
  133. package/dist/components/select/types.d.ts +4 -1
  134. package/dist/components/select/useSelect.d.ts +2 -1
  135. package/dist/components/slider/index.d.ts +2 -2
  136. package/dist/components/slider/index.js +2 -2
  137. package/dist/components/slider/range-slider-tooltip.d.ts +3 -0
  138. package/dist/components/slider/range-slider.d.ts +4 -1
  139. package/dist/components/slider/slider.d.ts +4 -1
  140. package/dist/components/slider/sliderCore.d.ts +4 -4
  141. package/dist/components/slider/types.d.ts +12 -2
  142. package/dist/components/slider/useRangeSlider.d.ts +1 -1
  143. package/dist/components/slider/useSlider.d.ts +1 -1
  144. package/dist/components/switch/index.d.ts +2 -1
  145. package/dist/components/switch/index.js +2 -2
  146. package/dist/components/switch/switch.d.ts +4 -1
  147. package/dist/components/switch/types.d.ts +6 -1
  148. package/dist/components/switch/useSwitch.d.ts +2 -0
  149. package/dist/components/tabs/index.d.ts +2 -1
  150. package/dist/components/tabs/index.js +2 -2
  151. package/dist/components/tabs/types.d.ts +13 -4
  152. package/dist/components/teleport-provider/index.d.ts +2 -0
  153. package/dist/components/teleport-provider/index.js +2 -0
  154. package/dist/components/teleport-provider/teleport-provider.d.ts +21 -0
  155. package/dist/components/teleport-provider/types.d.ts +4 -0
  156. package/dist/components/teleport-provider/useTeleportTarget.d.ts +5 -0
  157. package/dist/components/textarea/index.d.ts +2 -1
  158. package/dist/components/textarea/index.js +2 -2
  159. package/dist/components/textarea/textarea.d.ts +4 -1
  160. package/dist/components/textarea/types.d.ts +6 -1
  161. package/dist/components/textarea/useTextarea.d.ts +1 -0
  162. package/dist/components/toast/index.d.ts +2 -2
  163. package/dist/components/toast/index.js +2 -2
  164. package/dist/components/toast/toast.d.ts +2 -2
  165. package/dist/components/toast/types.d.ts +10 -6
  166. package/dist/components/tooltip/index.d.ts +2 -1
  167. package/dist/components/tooltip/index.js +2 -1
  168. package/dist/components/tooltip/tooltip.d.ts +2 -2
  169. package/dist/components/tooltip/types.d.ts +13 -12
  170. package/dist/components/tooltip/useTooltip.d.ts +13 -3
  171. package/dist/dropdown-menu.css +191 -107
  172. package/dist/dropdown-menu.js +1582 -81
  173. package/dist/field.css +41 -39
  174. package/dist/field.js +40 -16
  175. package/dist/focus-trap.js +80 -0
  176. package/dist/icon-button.css +193 -189
  177. package/dist/icon-button.js +23 -18
  178. package/dist/icon-button2.js +8 -0
  179. package/dist/index.d.ts +4 -0
  180. package/dist/index.js +36 -32
  181. package/dist/input.css +122 -120
  182. package/dist/input.js +47 -34
  183. package/dist/input2.js +9 -0
  184. package/dist/legacy-unlayered.css +5461 -0
  185. package/dist/modal.css +129 -127
  186. package/dist/modal.js +160 -200
  187. package/dist/number-input.css +87 -85
  188. package/dist/number-input.js +61 -17
  189. package/dist/overlay.css +26 -24
  190. package/dist/overlay.js +17 -9
  191. package/dist/overlay2.js +4 -0
  192. package/dist/popover.css +140 -107
  193. package/dist/popover.js +288 -193
  194. package/dist/popover2.js +6 -1
  195. package/dist/progress.css +101 -99
  196. package/dist/progress.js +50 -28
  197. package/dist/radio.css +114 -105
  198. package/dist/radio.js +154 -56
  199. package/dist/select.css +244 -242
  200. package/dist/select.js +92 -47
  201. package/dist/slider.css +1109 -1031
  202. package/dist/slider.js +330 -163
  203. package/dist/styles-api.d.ts +22 -0
  204. package/dist/styles-api.js +49 -0
  205. package/dist/switch.css +120 -108
  206. package/dist/switch.js +89 -33
  207. package/dist/tabs.css +286 -278
  208. package/dist/tabs.js +60 -21
  209. package/dist/teleport-provider.js +15 -0
  210. package/dist/textarea.css +132 -130
  211. package/dist/textarea.js +69 -27
  212. package/dist/toast.css +229 -225
  213. package/dist/toast.js +102 -42
  214. package/dist/tooltip.css +137 -107
  215. package/dist/tooltip.js +180 -228
  216. package/dist/tooltip2.js +8 -0
  217. package/dist/useClickOutside.js +1 -1
  218. package/dist/useFloatingPosition.js +1284 -0
  219. package/dist/useFocusTrap.js +130 -0
  220. package/dist/useTeleportTarget.js +29 -0
  221. package/docs/public-styles-api.md +133 -0
  222. package/docs/public-tokens.md +545 -0
  223. package/package.json +29 -5
  224. package/src/styles/_tokens.scss +33 -28
  225. package/src/styles/_utilities.scss +11 -9
  226. package/src/styles/styles-manifest.json +4125 -0
  227. package/dist/rafScheduler.js +0 -34
package/dist/toast.js CHANGED
@@ -1,9 +1,11 @@
1
1
  import './toast.css';
2
2
  import { t as x_default } from "./x.js";
3
3
  import { t as bem } from "./bem.js";
4
+ import { n as useStylesApi } from "./styles-api.js";
4
5
  import { i as getComponentVariantColorRoles, t as componentColors } from "./componentColors.js";
5
6
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
6
- import { VaporTeleport, VaporTransition, VaporTransitionGroup, computed, createComponent, createFor, createIf, createInvoker, createSlot, defineVaporComponent, delegateEvents, extend, inject, nextTick, on, onBeforeUnmount, onMounted, provide, ref, renderEffect, setAttr, setClass, setInsertionState, setProp, setStyle, setText, template, toDisplayString, toValue, txt, unref, useId, useSlots, watch } from "vue";
7
+ import { n as useTeleportTarget } from "./useTeleportTarget.js";
8
+ import { VaporTeleport, VaporTransition, VaporTransitionGroup, computed, createComponent, createFor, createIf, createInvoker, createSlot, defineVaporComponent, delegateEvents, extend, inject, nextTick, onBeforeUnmount, onMounted, provide, ref, renderEffect, setDynamicProps, setInsertionState, setText, template, toDisplayString, toValue, txt, unref, useId, useSlots, watch } from "vue";
7
9
  //#region src/components/toast/defaults.ts
8
10
  var DEFAULT_TOAST_DURATION = 5e3;
9
11
  var DEFAULT_TOAST_ROLE = "status";
@@ -30,20 +32,17 @@ function getToastColorStyle(color, variant, autoContrast) {
30
32
  }
31
33
  //#endregion
32
34
  //#region src/components/toast/toast.vue?vue&type=script&setup=true&vapor=true&lang.ts
33
- var t0$1 = template("<div data-v-face18fc class=rp-toast__icon aria-hidden=true>");
35
+ var t0$1 = template("<div data-v-6944ac43>");
34
36
  var t1 = template(" ");
35
- var t2 = template("<div data-v-face18fc class=rp-toast__title>");
36
- var t3 = template("<p data-v-face18fc class=rp-toast__description> ");
37
- var t4 = template("<div data-v-face18fc class=rp-toast__body>");
38
- var t5 = template("<div data-v-face18fc class=rp-toast__content>");
39
- var t6 = template("<div data-v-face18fc class=rp-toast__action>");
40
- var t7 = template("<button data-v-face18fc class=rp-toast__close type=button>");
41
- var t8 = template("<div data-v-face18fc>");
42
- delegateEvents("click", "focusin", "focusout");
37
+ var t2 = template("<p data-v-6944ac43> ");
38
+ var t3 = template("<div data-v-6944ac43 class=rp-toast__content>");
39
+ var t4 = template("<button data-v-6944ac43>");
40
+ delegateEvents("click");
43
41
  //#endregion
44
42
  //#region src/components/toast/toast.vue
45
43
  var toast_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
46
44
  name: "RpToast",
45
+ inheritAttrs: false,
47
46
  __name: "toast",
48
47
  props: {
49
48
  open: {
@@ -70,7 +69,9 @@ var toast_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
70
69
  type: Boolean,
71
70
  default: true
72
71
  },
73
- closeLabel: { default: DEFAULT_TOAST_CLOSE_LABEL }
72
+ closeLabel: { default: DEFAULT_TOAST_CLOSE_LABEL },
73
+ classNames: {},
74
+ styles: {}
74
75
  },
75
76
  emits: [
76
77
  "update:open",
@@ -114,6 +115,16 @@ var toast_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
114
115
  [`radius-${props.radius}`]: Boolean(props.radius)
115
116
  }));
116
117
  const rootStyle = computed(() => getToastColorStyle(props.color, props.variant, props.autoContrast));
118
+ const { getPartAttrs, getRootAttrs } = useStylesApi(props, "root");
119
+ const rootAttrs = computed(() => getRootAttrs({
120
+ class: rootClass.value,
121
+ style: rootStyle.value,
122
+ role: resolvedRole.value,
123
+ onMouseenter,
124
+ onMouseleave,
125
+ onFocusin,
126
+ onFocusout
127
+ }));
117
128
  watch([isOpen, () => props.duration], ([open], [wasOpen]) => {
118
129
  if (!isMounted.value) return;
119
130
  if (!open || !wasOpen) {
@@ -201,25 +212,23 @@ var toast_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
201
212
  onAfterLeave: () => _on_after_leave
202
213
  }, extend(() => {
203
214
  return createIf(() => isOpen.value, () => {
204
- const n30 = t8();
205
- renderEffect(() => {
206
- setClass(n30, rootClass.value);
207
- setStyle(n30, rootStyle.value);
208
- setProp(n30, "role", resolvedRole.value);
209
- });
215
+ const n30 = t0$1();
216
+ renderEffect(() => setDynamicProps(n30, [rootAttrs.value]));
210
217
  setInsertionState(n30, null, 0);
211
218
  createIf(() => hasIcon.value, () => {
212
219
  const n5 = t0$1();
220
+ renderEffect(() => setDynamicProps(n5, [unref(getPartAttrs)("icon", { class: "rp-toast__icon" }), { "aria-hidden": "true" }]));
213
221
  setInsertionState(n5, null, 0);
214
222
  createSlot("icon", null, null, 1);
215
223
  return n5;
216
224
  });
217
225
  setInsertionState(n30, null, 1);
218
226
  createIf(() => hasContent.value, () => {
219
- const n21 = t5();
227
+ const n21 = t3();
220
228
  setInsertionState(n21, null, 0);
221
229
  createIf(() => hasTitle.value, () => {
222
- const n13 = t2();
230
+ const n13 = t0$1();
231
+ renderEffect(() => setDynamicProps(n13, [unref(getPartAttrs)("title", { class: "rp-toast__title" })]));
223
232
  setInsertionState(n13, null, 0);
224
233
  createSlot("title", null, () => {
225
234
  const n12 = t1();
@@ -230,14 +239,18 @@ var toast_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
230
239
  });
231
240
  setInsertionState(n21, null, 1);
232
241
  createIf(() => hasDescription.value, () => {
233
- const n16 = t3();
242
+ const n16 = t2();
234
243
  const x16 = txt(n16);
235
- renderEffect(() => setText(x16, toDisplayString(__props.description)));
244
+ renderEffect(() => {
245
+ setDynamicProps(n16, [unref(getPartAttrs)("description", { class: "rp-toast__description" })]);
246
+ setText(x16, toDisplayString(__props.description));
247
+ });
236
248
  return n16;
237
249
  });
238
250
  setInsertionState(n21, null, 2);
239
251
  createIf(() => $slots.default, () => {
240
- const n20 = t4();
252
+ const n20 = t0$1();
253
+ renderEffect(() => setDynamicProps(n20, [unref(getPartAttrs)("body", { class: "rp-toast__body" })]));
241
254
  setInsertionState(n20, null, 0);
242
255
  createSlot("default", null, null, 1);
243
256
  return n20;
@@ -246,31 +259,51 @@ var toast_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
246
259
  });
247
260
  setInsertionState(n30, null, 2);
248
261
  createIf(() => $slots.action, () => {
249
- const n25 = t6();
262
+ const n25 = t0$1();
263
+ renderEffect(() => setDynamicProps(n25, [unref(getPartAttrs)("action", { class: "rp-toast__action" })]));
250
264
  setInsertionState(n25, null, 0);
251
265
  createSlot("action", null, null, 1);
252
266
  return n25;
253
267
  });
254
268
  setInsertionState(n30, null, 3);
255
269
  createIf(() => __props.closable, () => {
256
- const n29 = t7();
257
- renderEffect(() => setAttr(n29, "aria-label", __props.closeLabel));
270
+ const n29 = t4();
271
+ renderEffect(() => setDynamicProps(n29, [unref(getPartAttrs)("close", { class: "rp-toast__close" }), {
272
+ type: "button",
273
+ "aria-label": __props.closeLabel
274
+ }]));
258
275
  setInsertionState(n29, null, 0);
259
276
  createComponent(unref(x_default), { "aria-hidden": "true" });
260
277
  n29.$evtclick = createInvoker(() => closeToast("dismiss"));
261
278
  return n29;
262
279
  });
263
- on(n30, "mouseenter", onMouseenter);
264
- on(n30, "mouseleave", onMouseleave);
265
- n30.$evtfocusin = createInvoker(onFocusin);
266
- n30.$evtfocusout = createInvoker(onFocusout);
267
280
  return n30;
268
281
  }, null, 129);
269
282
  }, { _: 8 }), true);
270
283
  }
271
- }), [["__scopeId", "data-v-face18fc"]]);
284
+ }), [["__scopeId", "data-v-6944ac43"]]);
272
285
  //#endregion
273
286
  //#region src/components/toast/types.ts
287
+ var toastParts = [
288
+ "root",
289
+ "icon",
290
+ "title",
291
+ "description",
292
+ "body",
293
+ "action",
294
+ "close"
295
+ ];
296
+ var toastViewportParts = [
297
+ "root",
298
+ "item",
299
+ "toast",
300
+ "toastIcon",
301
+ "toastTitle",
302
+ "toastDescription",
303
+ "toastBody",
304
+ "toastAction",
305
+ "toastClose"
306
+ ];
274
307
  var toastColors = componentColors;
275
308
  var toastVariants = [
276
309
  "subtle",
@@ -539,11 +572,12 @@ var toast_provider_default = /* @__PURE__ */ defineVaporComponent({
539
572
  });
540
573
  //#endregion
541
574
  //#region src/components/toast/toast-viewport.vue?vue&type=script&setup=true&vapor=true&lang.ts
542
- var t0 = template("<li data-v-e4c0bb63 class=rp-toast-viewport__item>");
575
+ var t0 = template("<li data-v-e14bb4e0>");
543
576
  //#endregion
544
577
  //#region src/components/toast/toast-viewport.vue
545
578
  var toast_viewport_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
546
579
  name: "RpToastViewport",
580
+ inheritAttrs: false,
547
581
  __name: "toast-viewport",
548
582
  props: {
549
583
  position: { default: "top-right" },
@@ -552,38 +586,64 @@ var toast_viewport_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
552
586
  type: Boolean,
553
587
  default: true
554
588
  },
555
- teleportTo: { default: "body" }
589
+ teleportTo: {},
590
+ classNames: {},
591
+ styles: {}
556
592
  },
557
593
  setup(__props, { slots: $slots }) {
558
594
  const props = __props;
595
+ const resolvedTeleportTo = useTeleportTarget(() => props.teleportTo);
559
596
  const context = useToastContext("<ToastViewport>");
560
597
  function reverseToasts(toasts) {
561
598
  return toasts.map((_, index) => toasts[toasts.length - index - 1]);
562
599
  }
563
600
  const orderedToasts = computed(() => props.position.startsWith("top") ? reverseToasts(context.toasts.value) : context.toasts.value);
601
+ const { getPartAttrs, getRootAttrs } = useStylesApi(props, "root");
602
+ const rootAttrs = computed(() => getRootAttrs({
603
+ class: [
604
+ "rp-toast-viewport",
605
+ `rp-toast-viewport--${props.position}`,
606
+ { "rp-toast-viewport--empty": orderedToasts.value.length === 0 }
607
+ ],
608
+ "data-position": props.position,
609
+ "aria-label": props.label
610
+ }));
611
+ const viewportToastPartMap = {
612
+ root: "toast",
613
+ icon: "toastIcon",
614
+ title: "toastTitle",
615
+ description: "toastDescription",
616
+ body: "toastBody",
617
+ action: "toastAction",
618
+ close: "toastClose"
619
+ };
620
+ function getToastClassNames(toast) {
621
+ return Object.fromEntries(Object.entries(viewportToastPartMap).map(([toastPart, viewportPart]) => [toastPart, [toast.props.classNames?.[toastPart], props.classNames?.[viewportPart]]]));
622
+ }
623
+ function getToastStyles(toast) {
624
+ return Object.fromEntries(Object.entries(viewportToastPartMap).map(([toastPart, viewportPart]) => [toastPart, [toast.props.styles?.[toastPart], props.styles?.[viewportPart]]]));
625
+ }
564
626
  function dismiss(toast) {
565
627
  context.dismissInstance(toast.instanceId);
566
628
  }
567
629
  return createComponent(VaporTeleport, {
568
- to: () => __props.teleportTo,
630
+ to: () => unref(resolvedTeleportTo),
569
631
  disabled: () => !__props.teleport
570
632
  }, () => {
571
633
  return createComponent(VaporTransitionGroup, {
572
634
  tag: "ol",
573
635
  name: "rp-toast-viewport-item",
574
- class: () => [
575
- "rp-toast-viewport",
576
- `rp-toast-viewport--${__props.position}`,
577
- { "rp-toast-viewport--empty": orderedToasts.value.length === 0 }
578
- ],
579
- "data-position": () => __props.position,
580
- "aria-label": () => __props.label
636
+ $: [() => rootAttrs.value]
581
637
  }, extend(() => {
582
638
  return createFor(() => orderedToasts.value, (_for_item0) => {
583
639
  const n10 = t0();
640
+ renderEffect(() => setDynamicProps(n10, [unref(getPartAttrs)("item", { class: "rp-toast-viewport__item" }), { "data-type": _for_item0.value.type }]));
584
641
  setInsertionState(n10, null, 0);
585
642
  createComponent(toast_default, { $: [() => _for_item0.value.props, {
586
643
  open: true,
644
+ "class-names": () => getToastClassNames(_for_item0.value),
645
+ styles: () => getToastStyles(_for_item0.value),
646
+ "data-type": () => _for_item0.value.type,
587
647
  onClose: () => ($event) => unref(context).dismissInstance(_for_item0.value.instanceId, $event)
588
648
  }] }, { $: [
589
649
  () => $slots.icon ? {
@@ -618,7 +678,7 @@ var toast_viewport_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
618
678
  }, { _: 8 }));
619
679
  }, true);
620
680
  }
621
- }), [["__scopeId", "data-v-e4c0bb63"]]);
681
+ }), [["__scopeId", "data-v-e14bb4e0"]]);
622
682
  //#endregion
623
683
  //#region src/components/toast/useToastState.ts
624
684
  function optionValue(value) {
@@ -676,4 +736,4 @@ function useToastState(options = {}) {
676
736
  };
677
737
  }
678
738
  //#endregion
679
- export { toastColors as a, toastTypes as c, useToast as i, toastVariants as l, toast_viewport_default as n, toastPositions as o, toast_provider_default as r, toastRadiuses as s, useToastState as t, toast_default as u };
739
+ export { toastColors as a, toastRadiuses as c, toastViewportParts as d, toast_default as f, useToast as i, toastTypes as l, toast_viewport_default as n, toastParts as o, toast_provider_default as r, toastPositions as s, useToastState as t, toastVariants as u };
package/dist/tooltip.css CHANGED
@@ -1,108 +1,138 @@
1
- .rp-tooltip[data-v-13c39164] {
2
- --_rp-tooltip-main-axis-offset: var(--rp-spacing-2);
3
- --_rp-tooltip-cross-axis-offset: 0px;
4
- --_rp-tooltip-arrow-size: 0.4375rem;
5
- --_rp-tooltip-bg: var(--rp-color-bright);
6
- --_rp-tooltip-fg: var(--rp-color-default);
7
- position: relative;
8
- display: inline-flex;
9
- font-family: var(--rp-font-family);
10
- vertical-align: middle;
11
- }
12
- .rp-tooltip__content[data-v-13c39164] {
13
- position: absolute;
14
- z-index: 1000;
15
- box-sizing: border-box;
16
- width: max-content;
17
- max-width: min(18rem, 100vw - var(--rp-spacing-6));
18
- padding: 0.375rem 0.625rem;
19
- color: var(--_rp-tooltip-fg);
20
- font-size: 0.8125rem;
21
- font-weight: var(--rp-font-weight-medium);
22
- line-height: var(--rp-line-height-md);
23
- text-align: center;
24
- white-space: normal;
25
- overflow-wrap: anywhere;
26
- pointer-events: none;
27
- background-color: var(--_rp-tooltip-bg);
28
- border-radius: var(--rp-radius-sm);
29
- box-shadow: var(--rp-shadow-md);
30
- }
31
- .rp-tooltip--arrow .rp-tooltip__content[data-v-13c39164]::before {
32
- position: absolute;
33
- width: var(--_rp-tooltip-arrow-size);
34
- height: var(--_rp-tooltip-arrow-size);
35
- content: "";
36
- background-color: inherit;
37
- rotate: 45deg;
38
- }
39
- .rp-tooltip--placement-top .rp-tooltip__content[data-v-13c39164] {
40
- bottom: calc(100% + var(--_rp-tooltip-main-axis-offset));
41
- left: calc(50% + var(--_rp-tooltip-cross-axis-offset));
42
- translate: -50% 0;
43
- }
44
- .rp-tooltip--arrow.rp-tooltip--placement-top .rp-tooltip__content[data-v-13c39164]::before {
45
- top: calc(100% - var(--_rp-tooltip-arrow-size) / 2);
46
- left: 50%;
47
- translate: -50% 0;
48
- }
49
- .rp-tooltip--placement-right .rp-tooltip__content[data-v-13c39164] {
50
- top: calc(50% + var(--_rp-tooltip-cross-axis-offset));
51
- left: calc(100% + var(--_rp-tooltip-main-axis-offset));
52
- translate: 0 -50%;
53
- }
54
- .rp-tooltip--arrow.rp-tooltip--placement-right .rp-tooltip__content[data-v-13c39164]::before {
55
- top: 50%;
56
- right: calc(100% - var(--_rp-tooltip-arrow-size) / 2);
57
- translate: 0 -50%;
58
- }
59
- .rp-tooltip--placement-bottom .rp-tooltip__content[data-v-13c39164] {
60
- top: calc(100% + var(--_rp-tooltip-main-axis-offset));
61
- left: calc(50% + var(--_rp-tooltip-cross-axis-offset));
62
- translate: -50% 0;
63
- }
64
- .rp-tooltip--arrow.rp-tooltip--placement-bottom .rp-tooltip__content[data-v-13c39164]::before {
65
- bottom: calc(100% - var(--_rp-tooltip-arrow-size) / 2);
66
- left: 50%;
67
- translate: -50% 0;
68
- }
69
- .rp-tooltip--placement-left .rp-tooltip__content[data-v-13c39164] {
70
- top: calc(50% + var(--_rp-tooltip-cross-axis-offset));
71
- right: calc(100% + var(--_rp-tooltip-main-axis-offset));
72
- translate: 0 -50%;
73
- }
74
- .rp-tooltip--arrow.rp-tooltip--placement-left .rp-tooltip__content[data-v-13c39164]::before {
75
- top: 50%;
76
- left: calc(100% - var(--_rp-tooltip-arrow-size) / 2);
77
- translate: 0 -50%;
78
- }
79
- .rp-tooltip--target[data-v-13c39164] {
80
- display: contents;
81
- }
82
- .rp-tooltip--target .rp-tooltip__content[data-v-13c39164] {
83
- position: fixed;
84
- top: var(--_rp-tooltip-target-y, 0);
85
- right: auto;
86
- bottom: auto;
87
- left: var(--_rp-tooltip-target-x, 0);
88
- }
89
- .rp-tooltip--target.rp-tooltip--placement-top .rp-tooltip__content[data-v-13c39164] {
90
- translate: calc(-50% + var(--_rp-tooltip-cross-axis-offset)) calc(-100% - var(--_rp-tooltip-main-axis-offset));
91
- }
92
- .rp-tooltip--target.rp-tooltip--placement-right .rp-tooltip__content[data-v-13c39164] {
93
- translate: var(--_rp-tooltip-main-axis-offset) calc(-50% + var(--_rp-tooltip-cross-axis-offset));
94
- }
95
- .rp-tooltip--target.rp-tooltip--placement-bottom .rp-tooltip__content[data-v-13c39164] {
96
- translate: calc(-50% + var(--_rp-tooltip-cross-axis-offset)) var(--_rp-tooltip-main-axis-offset);
97
- }
98
- .rp-tooltip--target.rp-tooltip--placement-left .rp-tooltip__content[data-v-13c39164] {
99
- translate: calc(-100% - var(--_rp-tooltip-main-axis-offset)) calc(-50% + var(--_rp-tooltip-cross-axis-offset));
100
- }
101
- .rp-tooltip-content-enter-active[data-v-13c39164],
102
- .rp-tooltip-content-leave-active[data-v-13c39164] {
103
- transition: opacity var(--rp-transition-fast);
104
- }
105
- .rp-tooltip-content-enter-from[data-v-13c39164],
106
- .rp-tooltip-content-leave-to[data-v-13c39164] {
107
- opacity: 0;
1
+ @layer ropav.components {
2
+ .rp-tooltip[data-v-38bfcb12] {
3
+ --_rp-tooltip-main-axis-offset: var(--rp-spacing-2);
4
+ --_rp-tooltip-cross-axis-offset: 0px;
5
+ --_rp-tooltip-arrow-size: 0.4375rem;
6
+ --_rp-tooltip-bg: var(--rp-color-bright);
7
+ --_rp-tooltip-fg: var(--rp-color-default);
8
+ position: relative;
9
+ display: inline-flex;
10
+ font-family: var(--rp-font-family);
11
+ vertical-align: middle;
12
+ }
13
+ .rp-tooltip__content[data-v-38bfcb12] {
14
+ position: absolute;
15
+ z-index: 1000;
16
+ box-sizing: border-box;
17
+ width: max-content;
18
+ max-width: min(18rem, 100vw - var(--rp-spacing-6));
19
+ padding: 0.375rem 0.625rem;
20
+ color: var(--_rp-tooltip-fg);
21
+ font-size: 0.8125rem;
22
+ font-weight: var(--rp-font-weight-medium);
23
+ line-height: var(--rp-line-height-md);
24
+ text-align: center;
25
+ white-space: normal;
26
+ overflow-wrap: anywhere;
27
+ pointer-events: none;
28
+ background-color: var(--_rp-tooltip-bg);
29
+ border-radius: var(--rp-radius-sm);
30
+ box-shadow: var(--rp-shadow-md);
31
+ }
32
+ .rp-tooltip--arrow .rp-tooltip__content[data-v-38bfcb12]:not([data-placement])::before {
33
+ position: absolute;
34
+ width: var(--_rp-tooltip-arrow-size);
35
+ height: var(--_rp-tooltip-arrow-size);
36
+ content: "";
37
+ background-color: inherit;
38
+ rotate: 45deg;
39
+ }
40
+ .rp-tooltip--placement-top .rp-tooltip__content[data-v-38bfcb12] {
41
+ bottom: calc(100% + var(--_rp-tooltip-main-axis-offset));
42
+ left: calc(50% + var(--_rp-tooltip-cross-axis-offset));
43
+ translate: -50% 0;
44
+ }
45
+ .rp-tooltip--arrow.rp-tooltip--placement-top .rp-tooltip__content[data-v-38bfcb12]:not([data-placement])::before {
46
+ top: calc(100% - var(--_rp-tooltip-arrow-size) / 2);
47
+ left: 50%;
48
+ translate: -50% 0;
49
+ }
50
+ .rp-tooltip--placement-right .rp-tooltip__content[data-v-38bfcb12] {
51
+ top: calc(50% + var(--_rp-tooltip-cross-axis-offset));
52
+ left: calc(100% + var(--_rp-tooltip-main-axis-offset));
53
+ translate: 0 -50%;
54
+ }
55
+ .rp-tooltip--arrow.rp-tooltip--placement-right .rp-tooltip__content[data-v-38bfcb12]:not([data-placement])::before {
56
+ top: 50%;
57
+ right: calc(100% - var(--_rp-tooltip-arrow-size) / 2);
58
+ translate: 0 -50%;
59
+ }
60
+ .rp-tooltip--placement-bottom .rp-tooltip__content[data-v-38bfcb12] {
61
+ top: calc(100% + var(--_rp-tooltip-main-axis-offset));
62
+ left: calc(50% + var(--_rp-tooltip-cross-axis-offset));
63
+ translate: -50% 0;
64
+ }
65
+ .rp-tooltip--arrow.rp-tooltip--placement-bottom .rp-tooltip__content[data-v-38bfcb12]:not([data-placement])::before {
66
+ bottom: calc(100% - var(--_rp-tooltip-arrow-size) / 2);
67
+ left: 50%;
68
+ translate: -50% 0;
69
+ }
70
+ .rp-tooltip--placement-left .rp-tooltip__content[data-v-38bfcb12] {
71
+ top: calc(50% + var(--_rp-tooltip-cross-axis-offset));
72
+ right: calc(100% + var(--_rp-tooltip-main-axis-offset));
73
+ translate: 0 -50%;
74
+ }
75
+ .rp-tooltip--arrow.rp-tooltip--placement-left .rp-tooltip__content[data-v-38bfcb12]:not([data-placement])::before {
76
+ top: 50%;
77
+ left: calc(100% - var(--_rp-tooltip-arrow-size) / 2);
78
+ translate: 0 -50%;
79
+ }
80
+ .rp-tooltip--target[data-v-38bfcb12] {
81
+ display: contents;
82
+ }
83
+ .rp-tooltip--target .rp-tooltip__content[data-v-38bfcb12] {
84
+ position: fixed;
85
+ top: var(--_rp-tooltip-target-y, 0);
86
+ right: auto;
87
+ bottom: auto;
88
+ left: var(--_rp-tooltip-target-x, 0);
89
+ }
90
+ .rp-tooltip--target.rp-tooltip--placement-top .rp-tooltip__content[data-v-38bfcb12] {
91
+ translate: calc(-50% + var(--_rp-tooltip-cross-axis-offset)) calc(-100% - var(--_rp-tooltip-main-axis-offset));
92
+ }
93
+ .rp-tooltip--target.rp-tooltip--placement-right .rp-tooltip__content[data-v-38bfcb12] {
94
+ translate: var(--_rp-tooltip-main-axis-offset) calc(-50% + var(--_rp-tooltip-cross-axis-offset));
95
+ }
96
+ .rp-tooltip--target.rp-tooltip--placement-bottom .rp-tooltip__content[data-v-38bfcb12] {
97
+ translate: calc(-50% + var(--_rp-tooltip-cross-axis-offset)) var(--_rp-tooltip-main-axis-offset);
98
+ }
99
+ .rp-tooltip--target.rp-tooltip--placement-left .rp-tooltip__content[data-v-38bfcb12] {
100
+ translate: calc(-100% - var(--_rp-tooltip-main-axis-offset)) calc(-50% + var(--_rp-tooltip-cross-axis-offset));
101
+ }
102
+ .rp-tooltip__content[data-placement][data-v-38bfcb12] {
103
+ position: absolute;
104
+ top: 0;
105
+ right: auto;
106
+ bottom: auto;
107
+ left: 0;
108
+ translate: none;
109
+ }
110
+ .rp-tooltip__arrow[data-v-38bfcb12] {
111
+ position: absolute;
112
+ width: var(--_rp-tooltip-arrow-size);
113
+ height: var(--_rp-tooltip-arrow-size);
114
+ pointer-events: none;
115
+ background-color: inherit;
116
+ rotate: 45deg;
117
+ }
118
+ .rp-tooltip__arrow[data-side=top][data-v-38bfcb12] {
119
+ bottom: calc(-1 * var(--_rp-tooltip-arrow-size) / 2);
120
+ }
121
+ .rp-tooltip__arrow[data-side=right][data-v-38bfcb12] {
122
+ left: calc(-1 * var(--_rp-tooltip-arrow-size) / 2);
123
+ }
124
+ .rp-tooltip__arrow[data-side=bottom][data-v-38bfcb12] {
125
+ top: calc(-1 * var(--_rp-tooltip-arrow-size) / 2);
126
+ }
127
+ .rp-tooltip__arrow[data-side=left][data-v-38bfcb12] {
128
+ right: calc(-1 * var(--_rp-tooltip-arrow-size) / 2);
129
+ }
130
+ .rp-tooltip-content-enter-active[data-v-38bfcb12],
131
+ .rp-tooltip-content-leave-active[data-v-38bfcb12] {
132
+ transition: opacity var(--rp-transition-fast);
133
+ }
134
+ .rp-tooltip-content-enter-from[data-v-38bfcb12],
135
+ .rp-tooltip-content-leave-to[data-v-38bfcb12] {
136
+ opacity: 0;
137
+ }
108
138
  }