ropav 0.1.1 → 0.1.3

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 (56) hide show
  1. package/README.md +79 -0
  2. package/dist/accordion.css +5 -16
  3. package/dist/accordion.js +11 -28
  4. package/dist/button-link.js +2 -2
  5. package/dist/button.js +2 -2
  6. package/dist/collapse.js +1 -4
  7. package/dist/components/accordion/index.d.ts +1 -1
  8. package/dist/components/accordion/types.d.ts +0 -4
  9. package/dist/components/dialog/dialog-core.d.ts +4 -2
  10. package/dist/components/scroll-area/index.d.ts +3 -0
  11. package/dist/components/scroll-area/index.js +3 -0
  12. package/dist/components/scroll-area/scroll-area.d.ts +42 -0
  13. package/dist/components/scroll-area/scrollAreaCore.d.ts +25 -0
  14. package/dist/components/scroll-area/types.d.ts +33 -0
  15. package/dist/components/scroll-area/useScrollArea.d.ts +54 -0
  16. package/dist/components/scroll-area/useScrollAreaControls.d.ts +21 -0
  17. package/dist/components/scroll-area/useScrollAreaMetrics.d.ts +35 -0
  18. package/dist/components/scroll-area/useScrollAreaPointer.d.ts +17 -0
  19. package/dist/components/scroll-area/useScrollAreaPresentation.d.ts +49 -0
  20. package/dist/components/scroll-area/useScrollAreaVisibility.d.ts +27 -0
  21. package/dist/components/select/useSelect.d.ts +7 -5
  22. package/dist/components/select/useSelectNativeControl.d.ts +9 -0
  23. package/dist/components/select/useSelectNativeValue.d.ts +15 -0
  24. package/dist/components/slider/index.d.ts +1 -1
  25. package/dist/components/slider/range-slider.d.ts +7 -11
  26. package/dist/components/slider/slider.d.ts +7 -14
  27. package/dist/components/slider/sliderCore.d.ts +7 -4
  28. package/dist/components/slider/types.d.ts +46 -4
  29. package/dist/components/slider/useRangeSlider.d.ts +2 -1
  30. package/dist/components/slider/useSlider.d.ts +13 -3
  31. package/dist/dialog.js +23 -6
  32. package/dist/field.js +1 -1
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.js +3 -1
  35. package/dist/input.js +1 -1
  36. package/dist/modal.css +28 -29
  37. package/dist/modal.js +11 -12
  38. package/dist/number-input.css +3 -6
  39. package/dist/popover.js +1 -4
  40. package/dist/progress.js +1 -1
  41. package/dist/scroll-area.css +131 -0
  42. package/dist/scroll-area.js +696 -0
  43. package/dist/scroll-area2.js +23 -0
  44. package/dist/select.css +47 -45
  45. package/dist/select.js +168 -130
  46. package/dist/slider.css +256 -166
  47. package/dist/slider.js +334 -140
  48. package/dist/switch.css +17 -17
  49. package/dist/switch.js +10 -5
  50. package/dist/tabs.css +23 -18
  51. package/dist/tabs.js +16 -14
  52. package/dist/tooltip.js +1 -4
  53. package/dist/unplugin-icons.d.ts +5 -0
  54. package/dist/unplugin-icons.js +40 -0
  55. package/docs/public-styles-api.md +6 -3
  56. package/package.json +55 -35
package/dist/modal.css CHANGED
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-modal[data-v-04a5d994] {
2
+ .rp-modal[data-v-bb0b8ca8] {
3
3
  --_rp-modal-width: 32rem;
4
4
  --_rp-modal-max-height: calc(100vh - var(--rp-spacing-12));
5
5
  --_rp-modal-radius: var(--rp-radius-sm);
@@ -13,25 +13,25 @@
13
13
  overflow: auto;
14
14
  font-family: var(--rp-font-family);
15
15
  }
16
- .rp-modal--size-sm[data-v-04a5d994] {
16
+ .rp-modal--size-sm[data-v-bb0b8ca8] {
17
17
  --_rp-modal-width: 22rem;
18
18
  }
19
- .rp-modal--size-lg[data-v-04a5d994] {
19
+ .rp-modal--size-lg[data-v-bb0b8ca8] {
20
20
  --_rp-modal-width: 45rem;
21
21
  }
22
- .rp-modal--size-xl[data-v-04a5d994] {
22
+ .rp-modal--size-xl[data-v-bb0b8ca8] {
23
23
  --_rp-modal-width: 58rem;
24
24
  }
25
- .rp-modal--size-full[data-v-04a5d994] {
25
+ .rp-modal--size-full[data-v-bb0b8ca8] {
26
26
  --_rp-modal-width: 100vw;
27
27
  --_rp-modal-max-height: 100vh;
28
28
  --_rp-modal-radius: var(--rp-radius-none);
29
29
  padding: 0;
30
30
  }
31
- .rp-modal__overlay[data-v-04a5d994] {
31
+ .rp-modal__overlay[data-v-bb0b8ca8] {
32
32
  border-radius: 0;
33
33
  }
34
- .rp-modal__panel[data-v-04a5d994] {
34
+ .rp-modal__panel[data-v-bb0b8ca8] {
35
35
  position: relative;
36
36
  z-index: 1;
37
37
  box-sizing: border-box;
@@ -47,52 +47,51 @@
47
47
  box-shadow: var(--rp-shadow-lg);
48
48
  outline: none;
49
49
  }
50
- .rp-modal--size-full .rp-modal__panel[data-v-04a5d994] {
50
+ .rp-modal--size-full .rp-modal__panel[data-v-bb0b8ca8] {
51
51
  min-height: 100vh;
52
52
  border: 0;
53
53
  }
54
- .rp-modal__header[data-v-04a5d994] {
54
+ .rp-modal__header[data-v-bb0b8ca8] {
55
55
  box-sizing: border-box;
56
56
  padding: var(--rp-spacing-5) calc(var(--rp-spacing-6) + var(--rp-size-control-sm)) var(--rp-spacing-4) var(--rp-spacing-5);
57
57
  border-bottom: var(--rp-border-width-thin) solid var(--rp-color-default-border);
58
58
  }
59
- .rp-modal__heading[data-v-04a5d994] {
59
+ .rp-modal__heading[data-v-bb0b8ca8] {
60
60
  display: grid;
61
61
  gap: var(--rp-spacing-1);
62
62
  }
63
- .rp-modal__title[data-v-04a5d994] {
63
+ .rp-modal__title[data-v-bb0b8ca8] {
64
64
  margin: 0;
65
65
  color: var(--rp-color-text);
66
66
  font-size: var(--rp-font-size-xl);
67
67
  font-weight: var(--rp-font-weight-semibold);
68
68
  line-height: var(--rp-line-height-xs);
69
69
  }
70
- .rp-modal__description[data-v-04a5d994] {
70
+ .rp-modal__description[data-v-bb0b8ca8] {
71
71
  margin: 0;
72
72
  color: var(--rp-color-dimmed);
73
73
  font-size: var(--rp-font-size-sm);
74
74
  line-height: var(--rp-line-height-md);
75
75
  }
76
- .rp-modal__close[data-v-04a5d994] {
76
+ .rp-modal__close[data-v-bb0b8ca8] {
77
77
  position: absolute;
78
78
  top: var(--rp-spacing-3);
79
79
  right: var(--rp-spacing-3);
80
80
  z-index: 1;
81
81
  }
82
- .rp-modal__body[data-v-04a5d994] {
82
+ .rp-modal__body[data-v-bb0b8ca8] {
83
83
  box-sizing: border-box;
84
84
  flex: 1 1 auto;
85
85
  min-height: 0;
86
86
  padding: var(--rp-spacing-5);
87
- overflow: auto;
88
87
  color: var(--rp-color-text);
89
88
  font-size: var(--rp-font-size-md);
90
89
  line-height: var(--rp-line-height-md);
91
90
  }
92
- .rp-modal--closable.rp-modal--headerless .rp-modal__body[data-v-04a5d994] {
91
+ .rp-modal--closable.rp-modal--headerless .rp-modal__body[data-v-bb0b8ca8] {
93
92
  padding-right: calc(var(--rp-spacing-6) + var(--rp-size-control-sm));
94
93
  }
95
- .rp-modal__footer[data-v-04a5d994] {
94
+ .rp-modal__footer[data-v-bb0b8ca8] {
96
95
  box-sizing: border-box;
97
96
  display: flex;
98
97
  flex: 0 0 auto;
@@ -102,34 +101,34 @@
102
101
  padding: var(--rp-spacing-4) var(--rp-spacing-5);
103
102
  border-top: var(--rp-border-width-thin) solid var(--rp-color-default-border);
104
103
  }
105
- .rp-modal-enter-active[data-v-04a5d994],
106
- .rp-modal-leave-active[data-v-04a5d994] {
104
+ .rp-modal-enter-active[data-v-bb0b8ca8],
105
+ .rp-modal-leave-active[data-v-bb0b8ca8] {
107
106
  transition: opacity var(--rp-transition-fast);
108
107
  }
109
- .rp-modal-enter-active .rp-modal__panel[data-v-04a5d994],
110
- .rp-modal-leave-active .rp-modal__panel[data-v-04a5d994] {
108
+ .rp-modal-enter-active .rp-modal__panel[data-v-bb0b8ca8],
109
+ .rp-modal-leave-active .rp-modal__panel[data-v-bb0b8ca8] {
111
110
  transition: opacity var(--rp-transition-fast), transform var(--rp-transition-fast);
112
111
  }
113
- .rp-modal-enter-from[data-v-04a5d994],
114
- .rp-modal-leave-to[data-v-04a5d994] {
112
+ .rp-modal-enter-from[data-v-bb0b8ca8],
113
+ .rp-modal-leave-to[data-v-bb0b8ca8] {
115
114
  opacity: 0;
116
115
  }
117
- .rp-modal-enter-from .rp-modal__panel[data-v-04a5d994],
118
- .rp-modal-leave-to .rp-modal__panel[data-v-04a5d994] {
116
+ .rp-modal-enter-from .rp-modal__panel[data-v-bb0b8ca8],
117
+ .rp-modal-leave-to .rp-modal__panel[data-v-bb0b8ca8] {
119
118
  opacity: 0;
120
119
  transform: translateY(var(--rp-spacing-2)) scale(0.98);
121
120
  }
122
121
  @media (max-width: 480px) {
123
- .rp-modal[data-v-04a5d994] {
122
+ .rp-modal[data-v-bb0b8ca8] {
124
123
  padding: var(--rp-spacing-3);
125
124
  }
126
- .rp-modal__header[data-v-04a5d994] {
125
+ .rp-modal__header[data-v-bb0b8ca8] {
127
126
  padding-left: var(--rp-spacing-4);
128
127
  }
129
- .rp-modal__body[data-v-04a5d994] {
128
+ .rp-modal__body[data-v-bb0b8ca8] {
130
129
  padding: var(--rp-spacing-4);
131
130
  }
132
- .rp-modal__footer[data-v-04a5d994] {
131
+ .rp-modal__footer[data-v-bb0b8ca8] {
133
132
  padding: var(--rp-spacing-4);
134
133
  }
135
134
  }
package/dist/modal.js CHANGED
@@ -6,6 +6,7 @@ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-hel
6
6
  import { a as dialog_overlay_default, c as dialog_close_default, i as dialog_portal_default, l as resolveDialogCloseReason, n as dialog_title_default, o as dialog_description_default, r as dialog_root_default, s as dialog_content_default } from "./dialog.js";
7
7
  import { t as icon_button_default } from "./icon-button.js";
8
8
  import { t as overlay_default } from "./overlay.js";
9
+ import { t as scroll_area_default } from "./scroll-area.js";
9
10
  import { VaporTransition, applyVShow, computed, createComponent, createIf, createSlot, defineVaporComponent, extend, mergeProps, ref, renderEffect, setDynamicProps, setInsertionState, setText, template, toDisplayString, unref, useId, useSlots } from "vue";
10
11
  //#region src/components/modal/useModal.ts
11
12
  var DEFAULT_ROLE = "dialog";
@@ -106,8 +107,8 @@ function useModal(props, emit = {}) {
106
107
  //#endregion
107
108
  //#region src/components/modal/modal.vue?vue&type=script&setup=true&vapor=true&lang.ts
108
109
  var t0 = template(" ");
109
- var t1 = template("<div data-v-04a5d994 class=rp-modal__heading>");
110
- var t2 = template("<div data-v-04a5d994>");
110
+ var t1 = template("<div data-v-bb0b8ca8 class=rp-modal__heading>");
111
+ var t2 = template("<div data-v-bb0b8ca8>");
111
112
  //#endregion
112
113
  //#region src/components/modal/modal.vue
113
114
  var modal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -210,10 +211,7 @@ var modal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
210
211
  teleport: () => __props.teleport,
211
212
  "teleport-to": () => __props.teleportTo
212
213
  }, () => {
213
- return createComponent(VaporTransition, {
214
- name: "rp-modal",
215
- persisted: ""
216
- }, extend(() => {
214
+ return createComponent(VaporTransition, { name: "rp-modal" }, extend(() => {
217
215
  return createIf(() => unref(shouldRender), () => {
218
216
  const n30 = t2();
219
217
  renderEffect(() => setDynamicProps(n30, [getLayeredRootAttrs(_slotProps0.zIndex)]));
@@ -290,11 +288,12 @@ var modal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
290
288
  });
291
289
  }, null, 129),
292
290
  createIf(() => $slots.default, () => {
293
- const n24 = t2();
294
- renderEffect(() => setDynamicProps(n24, [unref(getPartAttrs)("body", { class: "rp-modal__body" })]));
295
- setInsertionState(n24, null, 0);
296
- createSlot("default", { $: [() => unref(slotProps)] }, null, 1);
297
- return n24;
291
+ return createComponent(scroll_area_default, { $: [() => unref(getPartAttrs)("body", { class: "rp-modal__body" }), {
292
+ embedded: "",
293
+ scrollbars: "y"
294
+ }] }, extend(() => {
295
+ return createSlot("default", { $: [() => unref(slotProps)] }, null, 1);
296
+ }, { _: 8 }));
298
297
  }, null, 129),
299
298
  createIf(() => unref(hasFooter), () => {
300
299
  const n28 = t2();
@@ -312,7 +311,7 @@ var modal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
312
311
  });
313
312
  }, true);
314
313
  }
315
- }), [["__scopeId", "data-v-04a5d994"]]);
314
+ }), [["__scopeId", "data-v-bb0b8ca8"]]);
316
315
  //#endregion
317
316
  //#region src/components/modal/types.ts
318
317
  var modalParts = [
@@ -3,10 +3,13 @@
3
3
  --_rp-number-input-control-size: var(--_rp-input-height);
4
4
  --_rp-number-input-text-align: left;
5
5
  overflow: hidden;
6
+ gap: 0;
7
+ padding-inline: 0;
6
8
  vertical-align: middle;
7
9
  }
8
10
  .rp-number-input[data-v-eb2db673] .rp-input__native {
9
11
  appearance: textfield;
12
+ padding-inline: var(--_rp-input-padding-x);
10
13
  text-align: var(--_rp-number-input-text-align);
11
14
  }
12
15
  .rp-number-input--text-align-center[data-v-eb2db673] {
@@ -25,12 +28,6 @@
25
28
  align-self: stretch;
26
29
  margin-block: calc(-1 * var(--rp-border-width-thin));
27
30
  }
28
- .rp-number-input[data-v-eb2db673] .rp-input__left {
29
- margin-inline-start: calc(-1 * var(--_rp-input-padding-x));
30
- }
31
- .rp-number-input[data-v-eb2db673] .rp-input__right {
32
- margin-inline-end: calc(-1 * var(--_rp-input-padding-x));
33
- }
34
31
  .rp-number-input__controls[data-v-eb2db673] {
35
32
  display: inline-flex;
36
33
  height: var(--_rp-input-height);
package/dist/popover.js CHANGED
@@ -421,10 +421,7 @@ var popover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
421
421
  to: () => unref(teleportTo),
422
422
  disabled: () => !__props.teleport
423
423
  }, () => {
424
- return createComponent(VaporTransition, {
425
- name: "rp-popover-content",
426
- persisted: ""
427
- }, extend(() => {
424
+ return createComponent(VaporTransition, { name: "rp-popover-content" }, extend(() => {
428
425
  return createIf(() => unref(shouldRenderContent), () => {
429
426
  const n13 = t1();
430
427
  renderEffect(() => setDynamicProps(n13, [
package/dist/progress.js CHANGED
@@ -126,7 +126,7 @@ var progress_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
126
126
  const n16 = child(n17, 1);
127
127
  const n15 = child(n16);
128
128
  renderEffect(() => setDynamicProps(n17, [rootAttrs.value]));
129
- setInsertionState(n17, 0, 0);
129
+ setInsertionState(n17, 0);
130
130
  createIf(() => $slots.default || !unref(isIndeterminate) && ($slots.value || __props.showValue), () => {
131
131
  const n14 = t2();
132
132
  setInsertionState(n14, null, 0);
@@ -0,0 +1,131 @@
1
+ @layer ropav.components {
2
+ .rp-scroll-area[data-v-bf91f9cc] {
3
+ --_rp-scroll-area-scrollbar-size: 10px;
4
+ --_rp-scroll-area-scrollbar-padding: 2px;
5
+ --_rp-scroll-area-thumb-bg: var(--rp-color-dimmed);
6
+ --_rp-scroll-area-thumb-bg-hover: var(--rp-color-text);
7
+ position: relative;
8
+ box-sizing: border-box;
9
+ display: flex;
10
+ flex-direction: column;
11
+ min-width: 0;
12
+ overflow: hidden;
13
+ }
14
+ .rp-scroll-area__viewport[data-v-bf91f9cc] {
15
+ box-sizing: border-box;
16
+ flex: 1 1 auto;
17
+ width: 100%;
18
+ min-width: 0;
19
+ min-height: 0;
20
+ max-width: 100%;
21
+ overscroll-behavior: contain;
22
+ scrollbar-width: none;
23
+ outline: none;
24
+ }
25
+ .rp-scroll-area__viewport[data-v-bf91f9cc]::-webkit-scrollbar {
26
+ display: none;
27
+ }
28
+ .rp-scroll-area__viewport[data-v-bf91f9cc]:focus-visible {
29
+ outline: var(--rp-border-width-medium) solid var(--rp-color-focus-ring);
30
+ outline-offset: calc(-1 * var(--rp-border-width-medium));
31
+ }
32
+ .rp-scroll-area[data-scrollbars=both] .rp-scroll-area__viewport[data-v-bf91f9cc] {
33
+ overflow: scroll;
34
+ }
35
+ .rp-scroll-area[data-scrollbars=x] .rp-scroll-area__viewport[data-v-bf91f9cc] {
36
+ overflow-x: scroll;
37
+ overflow-y: hidden;
38
+ }
39
+ .rp-scroll-area[data-scrollbars=y] .rp-scroll-area__viewport[data-v-bf91f9cc] {
40
+ overflow-x: hidden;
41
+ overflow-y: scroll;
42
+ }
43
+ .rp-scroll-area[data-scrollbars=none] .rp-scroll-area__viewport[data-v-bf91f9cc] {
44
+ overflow: hidden;
45
+ }
46
+ .rp-scroll-area__content[data-v-bf91f9cc] {
47
+ display: table;
48
+ box-sizing: border-box;
49
+ min-width: 100%;
50
+ }
51
+ .rp-scroll-area__scrollbar[data-v-bf91f9cc] {
52
+ position: absolute;
53
+ z-index: 1;
54
+ box-sizing: border-box;
55
+ display: flex;
56
+ padding: var(--_rp-scroll-area-scrollbar-padding);
57
+ opacity: 0;
58
+ pointer-events: none;
59
+ touch-action: none;
60
+ user-select: none;
61
+ transition: opacity var(--rp-transition-fast);
62
+ }
63
+ .rp-scroll-area__scrollbar[data-visible][data-v-bf91f9cc] {
64
+ opacity: 1;
65
+ pointer-events: auto;
66
+ }
67
+ .rp-scroll-area__scrollbar[data-v-bf91f9cc]:focus-visible {
68
+ outline: var(--rp-border-width-medium) solid var(--rp-color-focus-ring);
69
+ outline-offset: calc(-1 * var(--rp-border-width-medium));
70
+ }
71
+ .rp-scroll-area__scrollbar--horizontal[data-v-bf91f9cc] {
72
+ inset-inline: 0;
73
+ bottom: 0;
74
+ align-items: center;
75
+ width: auto;
76
+ height: var(--_rp-scroll-area-scrollbar-size);
77
+ }
78
+ .rp-scroll-area__scrollbar--vertical[data-v-bf91f9cc] {
79
+ inset-block: 0;
80
+ inset-inline-end: 0;
81
+ justify-content: center;
82
+ width: var(--_rp-scroll-area-scrollbar-size);
83
+ height: auto;
84
+ }
85
+ .rp-scroll-area[data-scrollbar-y-active] .rp-scroll-area__scrollbar--horizontal[data-v-bf91f9cc] {
86
+ inset-inline-end: var(--_rp-scroll-area-scrollbar-size);
87
+ }
88
+ .rp-scroll-area[data-scrollbar-x-active] .rp-scroll-area__scrollbar--vertical[data-v-bf91f9cc] {
89
+ inset-block-end: var(--_rp-scroll-area-scrollbar-size);
90
+ }
91
+ .rp-scroll-area__thumb[data-v-bf91f9cc] {
92
+ flex: 0 0 auto;
93
+ background: var(--_rp-scroll-area-thumb-bg);
94
+ border-radius: var(--rp-radius-full);
95
+ transition: background-color var(--rp-transition-fast);
96
+ }
97
+ .rp-scroll-area__scrollbar:hover .rp-scroll-area__thumb[data-v-bf91f9cc], .rp-scroll-area__scrollbar:focus-visible .rp-scroll-area__thumb[data-v-bf91f9cc] {
98
+ background: var(--_rp-scroll-area-thumb-bg-hover);
99
+ }
100
+ .rp-scroll-area__scrollbar--horizontal .rp-scroll-area__thumb[data-v-bf91f9cc] {
101
+ width: var(--_rp-scroll-area-thumb-size);
102
+ height: 100%;
103
+ transform: translateX(var(--_rp-scroll-area-thumb-offset));
104
+ }
105
+ .rp-scroll-area__scrollbar--vertical .rp-scroll-area__thumb[data-v-bf91f9cc] {
106
+ width: 100%;
107
+ height: var(--_rp-scroll-area-thumb-size);
108
+ transform: translateY(var(--_rp-scroll-area-thumb-offset));
109
+ }
110
+ .rp-scroll-area__corner[data-v-bf91f9cc] {
111
+ position: absolute;
112
+ right: 0;
113
+ bottom: 0;
114
+ z-index: 1;
115
+ width: var(--_rp-scroll-area-scrollbar-size);
116
+ height: var(--_rp-scroll-area-scrollbar-size);
117
+ opacity: 0;
118
+ pointer-events: none;
119
+ transition: opacity var(--rp-transition-fast);
120
+ }
121
+ .rp-scroll-area__corner[data-visible][data-v-bf91f9cc] {
122
+ opacity: 1;
123
+ }
124
+ @media (prefers-reduced-motion: reduce) {
125
+ .rp-scroll-area__scrollbar[data-v-bf91f9cc],
126
+ .rp-scroll-area__corner[data-v-bf91f9cc],
127
+ .rp-scroll-area__thumb[data-v-bf91f9cc] {
128
+ transition: none;
129
+ }
130
+ }
131
+ }