ropav 0.1.2 → 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 (34) hide show
  1. package/dist/accordion.css +5 -16
  2. package/dist/accordion.js +10 -24
  3. package/dist/components/accordion/index.d.ts +1 -1
  4. package/dist/components/accordion/types.d.ts +0 -4
  5. package/dist/components/dialog/dialog-core.d.ts +4 -2
  6. package/dist/components/scroll-area/index.d.ts +3 -0
  7. package/dist/components/scroll-area/index.js +3 -0
  8. package/dist/components/scroll-area/scroll-area.d.ts +42 -0
  9. package/dist/components/scroll-area/scrollAreaCore.d.ts +25 -0
  10. package/dist/components/scroll-area/types.d.ts +33 -0
  11. package/dist/components/scroll-area/useScrollArea.d.ts +54 -0
  12. package/dist/components/scroll-area/useScrollAreaControls.d.ts +21 -0
  13. package/dist/components/scroll-area/useScrollAreaMetrics.d.ts +35 -0
  14. package/dist/components/scroll-area/useScrollAreaPointer.d.ts +17 -0
  15. package/dist/components/scroll-area/useScrollAreaPresentation.d.ts +49 -0
  16. package/dist/components/scroll-area/useScrollAreaVisibility.d.ts +27 -0
  17. package/dist/components/select/useSelect.d.ts +7 -5
  18. package/dist/components/select/useSelectNativeControl.d.ts +9 -0
  19. package/dist/components/select/useSelectNativeValue.d.ts +15 -0
  20. package/dist/dialog.js +23 -6
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.js +3 -1
  23. package/dist/modal.css +28 -29
  24. package/dist/modal.js +10 -8
  25. package/dist/number-input.css +3 -6
  26. package/dist/scroll-area.css +131 -0
  27. package/dist/scroll-area.js +696 -0
  28. package/dist/scroll-area2.js +23 -0
  29. package/dist/select.css +47 -45
  30. package/dist/select.js +167 -129
  31. package/dist/tabs.css +23 -18
  32. package/dist/tabs.js +16 -14
  33. package/docs/public-styles-api.md +1 -1
  34. package/package.json +5 -1
package/dist/tabs.css CHANGED
@@ -34,45 +34,50 @@
34
34
  flex: 1 1 0;
35
35
  }
36
36
  }@layer ropav.components {
37
- .rp-tabs-list[data-v-5016edc1] {
37
+ .rp-tabs-list[data-v-af4a8aa3] {
38
38
  box-sizing: border-box;
39
39
  display: flex;
40
+ flex-direction: column;
40
41
  align-items: stretch;
41
42
  width: 100%;
42
43
  min-width: 0;
44
+ max-width: 100%;
43
45
  padding: 0;
44
- gap: 0;
45
46
  font-family: var(--rp-font-family);
46
47
  background-color: transparent;
47
48
  border: 0;
48
49
  }
49
- .rp-tabs-list--vertical[data-v-5016edc1] {
50
- flex-direction: column;
50
+ .rp-tabs-list[data-v-af4a8aa3] .rp-scroll-area__content {
51
+ display: flex;
52
+ align-items: stretch;
51
53
  width: max-content;
54
+ min-width: 100%;
55
+ gap: 0;
52
56
  }
53
- .rp-tabs-list--line[data-v-5016edc1] {
57
+ .rp-tabs-list--vertical[data-v-af4a8aa3] {
58
+ width: max-content;
59
+ }
60
+ .rp-tabs-list--vertical[data-v-af4a8aa3] .rp-scroll-area__content {
61
+ flex-direction: column;
62
+ }
63
+ .rp-tabs-list--line[data-v-af4a8aa3] .rp-scroll-area__content {
54
64
  border-bottom: var(--rp-border-width-medium) solid var(--rp-color-default-border);
55
65
  }
56
- .rp-tabs-list--line.rp-tabs-list--vertical[data-v-5016edc1] {
66
+ .rp-tabs-list--line.rp-tabs-list--vertical[data-v-af4a8aa3] .rp-scroll-area__content {
57
67
  border-bottom: 0;
58
68
  border-left: var(--rp-border-width-medium) solid var(--rp-color-default-border);
59
69
  }
60
- .rp-tabs-list--line.rp-tabs-list--vertical.rp-tabs-list--placement-right[data-v-5016edc1] {
70
+ .rp-tabs-list--line.rp-tabs-list--vertical.rp-tabs-list--placement-right[data-v-af4a8aa3] .rp-scroll-area__content {
61
71
  border-right: var(--rp-border-width-medium) solid var(--rp-color-default-border);
62
72
  border-left: 0;
63
73
  }
64
- .rp-tabs-list--pills[data-v-5016edc1], .rp-tabs-list--outline[data-v-5016edc1] {
65
- max-width: 100%;
66
- overflow-x: auto;
67
- overflow-y: hidden;
68
- }
69
- .rp-tabs-list--pills[data-v-5016edc1] {
74
+ .rp-tabs-list--pills[data-v-af4a8aa3] .rp-scroll-area__content {
70
75
  gap: var(--rp-spacing-2);
71
76
  }
72
- .rp-tabs-list--outline[data-v-5016edc1] {
77
+ .rp-tabs-list--outline[data-v-af4a8aa3] {
73
78
  position: relative;
74
79
  }
75
- .rp-tabs-list--outline[data-v-5016edc1]::after {
80
+ .rp-tabs-list--outline[data-v-af4a8aa3]::after {
76
81
  position: absolute;
77
82
  z-index: 0;
78
83
  right: 0;
@@ -83,7 +88,7 @@
83
88
  background-color: var(--rp-color-default-border);
84
89
  pointer-events: none;
85
90
  }
86
- .rp-tabs-list--outline.rp-tabs-list--vertical[data-v-5016edc1]::after {
91
+ .rp-tabs-list--outline.rp-tabs-list--vertical[data-v-af4a8aa3]::after {
87
92
  top: 0;
88
93
  right: auto;
89
94
  bottom: 0;
@@ -91,11 +96,11 @@
91
96
  width: var(--rp-border-width-thin);
92
97
  height: auto;
93
98
  }
94
- .rp-tabs-list--outline.rp-tabs-list--vertical.rp-tabs-list--placement-right[data-v-5016edc1]::after {
99
+ .rp-tabs-list--outline.rp-tabs-list--vertical.rp-tabs-list--placement-right[data-v-af4a8aa3]::after {
95
100
  right: 0;
96
101
  left: auto;
97
102
  }
98
- .rp-tabs-list--disabled[data-v-5016edc1] {
103
+ .rp-tabs-list--disabled[data-v-af4a8aa3] {
99
104
  opacity: var(--rp-opacity-disabled);
100
105
  cursor: not-allowed;
101
106
  }
package/dist/tabs.js CHANGED
@@ -3,7 +3,8 @@ import { t as bem } from "./bem.js";
3
3
  import { n as useStylesApi, t as presence } from "./styles-api.js";
4
4
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
5
  import { t as useRequiredInject } from "./useRequiredInject.js";
6
- import { computed, createIf, createSlot, defineVaporComponent, onBeforeUnmount, onMounted, provide, ref, renderEffect, setDynamicProps, setInsertionState, shallowRef, template, unref, useId, watch } from "vue";
6
+ import { t as scroll_area_default } from "./scroll-area.js";
7
+ import { computed, createComponent, createIf, createSlot, defineVaporComponent, extend, onBeforeUnmount, onMounted, provide, ref, renderEffect, setDynamicProps, setInsertionState, shallowRef, template, unref, useId, watch } from "vue";
7
8
  //#region src/components/tabs/useTabs.ts
8
9
  var TABLIST_SELECTOR = ".rp-tabs-list";
9
10
  var TRIGGER_SELECTOR = ".rp-tabs-trigger";
@@ -389,7 +390,7 @@ function useTabsContent(props) {
389
390
  }
390
391
  //#endregion
391
392
  //#region src/components/tabs/tabs.vue?vue&type=script&setup=true&vapor=true&lang.ts
392
- var t0$3 = template("<div data-v-163486d1>", 1);
393
+ var t0$2 = template("<div data-v-163486d1>", 1);
393
394
  //#endregion
394
395
  //#region src/components/tabs/tabs.vue
395
396
  var tabs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -432,7 +433,7 @@ var tabs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
432
433
  ...internalRootProps.value,
433
434
  "data-disabled": presence(props.disabled)
434
435
  }));
435
- const n1 = t0$3();
436
+ const n1 = t0$2();
436
437
  renderEffect(() => setDynamicProps(n1, [rootAttrs.value]));
437
438
  setInsertionState(n1, null, 0);
438
439
  createSlot("default", { $: [() => unref(slotProps)] }, null, 1);
@@ -441,7 +442,7 @@ var tabs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
441
442
  }), [["__scopeId", "data-v-163486d1"]]);
442
443
  //#endregion
443
444
  //#region src/components/tabs/tabs-content.vue?vue&type=script&setup=true&vapor=true&lang.ts
444
- var t0$2 = template("<section data-v-7206185c>", 1);
445
+ var t0$1 = template("<section data-v-7206185c>", 1);
445
446
  //#endregion
446
447
  //#region src/components/tabs/tabs-content.vue
447
448
  var tabs_content_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -467,7 +468,7 @@ var tabs_content_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
467
468
  const { getRootAttrs } = useStylesApi(props, "root");
468
469
  const rootAttrs = computed(() => getRootAttrs(internalRootProps.value));
469
470
  return createIf(() => unref(shouldRenderContent), () => {
470
- const n3 = t0$2();
471
+ const n3 = t0$1();
471
472
  renderEffect(() => setDynamicProps(n3, [rootAttrs.value]));
472
473
  setInsertionState(n3, null, 0);
473
474
  createSlot("default", { $: [() => unref(slotProps)] }, null, 1);
@@ -476,9 +477,6 @@ var tabs_content_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
476
477
  }
477
478
  }), [["__scopeId", "data-v-7206185c"]]);
478
479
  //#endregion
479
- //#region src/components/tabs/tabs-list.vue?vue&type=script&setup=true&vapor=true&lang.ts
480
- var t0$1 = template("<div data-v-5016edc1>", 1);
481
- //#endregion
482
480
  //#region src/components/tabs/tabs-list.vue
483
481
  var tabs_list_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
484
482
  name: "RpTabsList",
@@ -495,18 +493,22 @@ var tabs_list_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
495
493
  setup(__props) {
496
494
  const props = __props;
497
495
  const { rootProps: internalRootProps, slotProps } = useTabsList(props);
496
+ const scrollbarAxis = computed(() => slotProps.value.orientation === "horizontal" ? "x" : "y");
498
497
  const { getRootAttrs } = useStylesApi(props, "root");
499
498
  const rootAttrs = computed(() => getRootAttrs({
500
499
  ...internalRootProps.value,
501
500
  "data-disabled": presence(internalRootProps.value["data-disabled"])
502
501
  }));
503
- const n1 = t0$1();
504
- renderEffect(() => setDynamicProps(n1, [rootAttrs.value]));
505
- setInsertionState(n1, null, 0);
506
- createSlot("default", { $: [() => unref(slotProps)] }, null, 1);
507
- return n1;
502
+ return createComponent(scroll_area_default, { $: [() => rootAttrs.value, {
503
+ embedded: "",
504
+ type: "auto",
505
+ scrollbars: () => scrollbarAxis.value,
506
+ "viewport-attrs": () => ({ tabindex: -1 })
507
+ }] }, extend(() => {
508
+ return createSlot("default", { $: [() => unref(slotProps)] }, null, 1);
509
+ }, { _: 8 }), true);
508
510
  }
509
- }), [["__scopeId", "data-v-5016edc1"]]);
511
+ }), [["__scopeId", "data-v-af4a8aa3"]]);
510
512
  //#endregion
511
513
  //#region src/components/tabs/tabs-trigger.vue?vue&type=script&setup=true&vapor=true&lang.ts
512
514
  var t0 = template("<button data-v-6df68725>", 1);
@@ -94,7 +94,7 @@ Boolean states use presence semantics: the attribute value is empty when true an
94
94
  - `data-track-hovered` and `data-dragging`: Slider track pointer interaction.
95
95
  - `data-thumb-visibility="always|interaction|hidden"`: Slider thumb visibility behavior.
96
96
  - `data-submenu`: DropdownMenu items that own children.
97
- - `data-orientation="horizontal|vertical"`: Accordion, ButtonGroup, RadioGroup, Slider, RangeSlider, Tabs and TabsList.
97
+ - `data-orientation="horizontal|vertical"`: ButtonGroup, RadioGroup, Slider, RangeSlider, Tabs and TabsList.
98
98
  - `data-placement`: the final placement after collision handling; twelve placements for Popover and DropdownMenu, and a side (`top`, `right`, `bottom`, `left`) for Tooltip.
99
99
  - `data-side="top|right|bottom|left"`: the side component of the final placement for Popover, DropdownMenu and Tooltip.
100
100
  - `data-control="increment|decrement"`: NumberInput controls.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ropav",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@11.13.1",
@@ -132,6 +132,10 @@
132
132
  "types": "./dist/components/radio/index.d.ts",
133
133
  "import": "./dist/components/radio/index.js"
134
134
  },
135
+ "./scroll-area": {
136
+ "types": "./dist/components/scroll-area/index.d.ts",
137
+ "import": "./dist/components/scroll-area/index.js"
138
+ },
135
139
  "./select": {
136
140
  "types": "./dist/components/select/index.d.ts",
137
141
  "import": "./dist/components/select/index.js"