ropav 0.1.7 → 0.1.8

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 (153) hide show
  1. package/README.md +1 -1
  2. package/dist/ancestry.js +136 -0
  3. package/dist/calendar.css +173 -0
  4. package/dist/calendar.js +714 -0
  5. package/dist/calendar2.js +37 -0
  6. package/dist/chevron-left.js +12 -0
  7. package/dist/color-picker.js +38 -88
  8. package/dist/combobox.css +251 -0
  9. package/dist/combobox.js +410 -0
  10. package/dist/components/calendar/calendar.d.ts +30 -0
  11. package/dist/components/calendar/calendarBehavior.d.ts +49 -0
  12. package/dist/components/calendar/index.d.ts +3 -0
  13. package/dist/components/calendar/index.js +3 -0
  14. package/dist/components/calendar/types.d.ts +53 -0
  15. package/dist/components/calendar/useCalendar.d.ts +24 -0
  16. package/dist/components/color-picker/useColorPickerDrag.d.ts +1 -1
  17. package/dist/components/color-picker/useColorPickerSaturation.d.ts +1 -1
  18. package/dist/components/color-picker/useColorPickerSlider.d.ts +1 -1
  19. package/dist/components/combobox/combobox.d.ts +29 -0
  20. package/dist/components/combobox/comboboxModel.d.ts +4 -0
  21. package/dist/components/combobox/index.d.ts +3 -0
  22. package/dist/components/combobox/index.js +2 -0
  23. package/dist/components/combobox/types.d.ts +43 -0
  24. package/dist/components/combobox/useCombobox.d.ts +45 -0
  25. package/dist/components/date-picker/date-picker.d.ts +33 -0
  26. package/dist/components/date-picker/datePickerModel.d.ts +10 -0
  27. package/dist/components/date-picker/index.d.ts +4 -0
  28. package/dist/components/date-picker/index.js +2 -0
  29. package/dist/components/date-picker/types.d.ts +57 -0
  30. package/dist/components/date-picker/useDatePicker.d.ts +29 -0
  31. package/dist/components/date-picker/useDatePickerValueState.d.ts +21 -0
  32. package/dist/components/dropdown-menu/dropdown-menu-content.d.ts +2 -2
  33. package/dist/components/dropdown-menu/dropdown-menu-sub-content.d.ts +2 -2
  34. package/dist/components/dropdown-menu/dropdown-menu.d.ts +2 -2
  35. package/dist/components/dropdown-menu/dropdownMenuContext.d.ts +7 -18
  36. package/dist/components/dropdown-menu/dropdownMenuInteraction.d.ts +3 -3
  37. package/dist/components/dropdown-menu/dropdownMenuInteractionTypes.d.ts +58 -29
  38. package/dist/components/dropdown-menu/useDropdownMenuDataController.d.ts +4 -3
  39. package/dist/components/dropdown-menu/useDropdownMenuDataRegistration.d.ts +6 -4
  40. package/dist/components/dropdown-menu/useDropdownMenuPresentation.d.ts +3 -4
  41. package/dist/components/dropdown-menu/useDropdownMenuTargetBindings.d.ts +5 -5
  42. package/dist/components/dropzone/dropzone.d.ts +31 -0
  43. package/dist/components/dropzone/dropzoneModel.d.ts +16 -0
  44. package/dist/components/dropzone/index.d.ts +3 -0
  45. package/dist/components/dropzone/index.js +2 -0
  46. package/dist/components/dropzone/types.d.ts +56 -0
  47. package/dist/components/dropzone/useDropzone.d.ts +25 -0
  48. package/dist/components/file-input/file-input.d.ts +29 -0
  49. package/dist/components/file-input/index.d.ts +3 -0
  50. package/dist/components/file-input/index.js +2 -0
  51. package/dist/components/file-input/types.d.ts +37 -0
  52. package/dist/components/file-input/useFileInput.d.ts +15 -0
  53. package/dist/components/floating/index.js +1 -1
  54. package/dist/components/floating/useFloatingPosition.d.ts +1 -13
  55. package/dist/components/floating/useFloatingTargetLifecycle.d.ts +32 -0
  56. package/dist/components/floating/useHoverDisclosure.d.ts +10 -0
  57. package/dist/components/hover-card/hover-card.d.ts +25 -0
  58. package/dist/components/hover-card/index.d.ts +3 -0
  59. package/dist/components/hover-card/index.js +2 -0
  60. package/dist/components/hover-card/types.d.ts +45 -0
  61. package/dist/components/hover-card/useHoverCard.d.ts +22 -0
  62. package/dist/components/hover-card/useHoverCardDisclosure.d.ts +19 -0
  63. package/dist/components/multi-select/index.d.ts +3 -0
  64. package/dist/components/multi-select/index.js +2 -0
  65. package/dist/components/multi-select/multi-select.d.ts +30 -0
  66. package/dist/components/multi-select/multiSelectModel.d.ts +3 -0
  67. package/dist/components/multi-select/types.d.ts +49 -0
  68. package/dist/components/multi-select/useMultiSelect.d.ts +46 -0
  69. package/dist/components/number-input/useNumberInput.d.ts +1 -3
  70. package/dist/components/popover/usePopoverBindings.d.ts +3 -6
  71. package/dist/components/scroll-area/useScrollArea.d.ts +4 -4
  72. package/dist/components/scroll-area/useScrollAreaAttributes.d.ts +3 -3
  73. package/dist/components/scroll-area/useScrollAreaPointer.d.ts +1 -1
  74. package/dist/components/segmented-control/index.d.ts +3 -0
  75. package/dist/components/segmented-control/index.js +2 -0
  76. package/dist/components/segmented-control/segmented-control.d.ts +26 -0
  77. package/dist/components/segmented-control/types.d.ts +47 -0
  78. package/dist/components/segmented-control/useSegmentedControl.d.ts +15 -0
  79. package/dist/components/select/useSelect.d.ts +31 -19
  80. package/dist/components/slider/useRangeSlider.d.ts +1 -1
  81. package/dist/components/slider/useRangeSliderPointer.d.ts +1 -1
  82. package/dist/components/tags-input/index.d.ts +3 -0
  83. package/dist/components/tags-input/index.js +2 -0
  84. package/dist/components/tags-input/tags-input.d.ts +27 -0
  85. package/dist/components/tags-input/tagsInputModel.d.ts +12 -0
  86. package/dist/components/tags-input/types.d.ts +37 -0
  87. package/dist/components/tags-input/useTagsInput.d.ts +23 -0
  88. package/dist/components/tooltip/useTooltipTargetBindings.d.ts +12 -0
  89. package/dist/date-picker.css +49 -0
  90. package/dist/date-picker.js +809 -0
  91. package/dist/dialog.js +9 -20
  92. package/dist/direction.js +6 -0
  93. package/dist/dropdown-menu.css +21 -3
  94. package/dist/dropdown-menu.js +341 -261
  95. package/dist/dropzone.css +135 -0
  96. package/dist/dropzone.js +431 -0
  97. package/dist/file-input.css +135 -0
  98. package/dist/file-input.js +198 -0
  99. package/dist/hover-card.css +80 -0
  100. package/dist/hover-card.js +402 -0
  101. package/dist/index.d.ts +9 -0
  102. package/dist/index.js +14 -3
  103. package/dist/internal/composables/useOverlayLayer.d.ts +12 -0
  104. package/dist/modal.js +1 -1
  105. package/dist/multi-select.css +316 -0
  106. package/dist/multi-select.js +481 -0
  107. package/dist/nativeChoice.js +169 -0
  108. package/dist/number-input.css +18 -18
  109. package/dist/number-input.js +36 -38
  110. package/dist/pagination.js +1 -10
  111. package/dist/pointerSession.js +130 -0
  112. package/dist/popover.css +21 -3
  113. package/dist/popover.js +37 -62
  114. package/dist/scroll-area.js +52 -62
  115. package/dist/segmented-control.css +176 -0
  116. package/dist/segmented-control.js +382 -0
  117. package/dist/select.css +50 -48
  118. package/dist/select.js +121 -271
  119. package/dist/slider.js +70 -129
  120. package/dist/tags-input.css +197 -0
  121. package/dist/tags-input.js +380 -0
  122. package/dist/tooltip.js +35 -30
  123. package/dist/useEditableOptionList.js +216 -0
  124. package/dist/useFlatOptionCollection.js +134 -0
  125. package/dist/useFloatingPosition.js +4 -160
  126. package/dist/useFloatingTargetLifecycle.js +127 -0
  127. package/dist/useFormControl.js +1 -0
  128. package/dist/{floating.js → useHoverDisclosure.js} +338 -421
  129. package/dist/useNativeChoiceTransaction.js +46 -0
  130. package/dist/useNativeFileSelection.js +86 -0
  131. package/dist/useOverlayZIndex.js +246 -15
  132. package/dist/utils/date.d.ts +13 -0
  133. package/dist/utils/dateAvailability.d.ts +7 -0
  134. package/dist/utils/dom/ancestry.d.ts +1 -0
  135. package/dist/utils/dom/direction.d.ts +2 -0
  136. package/dist/utils/dom/files.d.ts +3 -0
  137. package/dist/utils/dom/nativeChoice.d.ts +17 -0
  138. package/dist/utils/dom/pointerSession.d.ts +20 -0
  139. package/dist/utils/dom/scroll.d.ts +2 -1
  140. package/dist/utils/optionFilter.d.ts +5 -0
  141. package/docs/public-floating-api.md +7 -4
  142. package/docs/public-styles-api.md +25 -12
  143. package/package.json +39 -3
  144. package/src/styles/_mixins.scss +26 -0
  145. package/src/styles/styles-manifest.json +1 -2
  146. package/dist/components/floating/hoverDisclosureInteractionModel.d.ts +0 -42
  147. package/dist/components/floating/useHoverDisclosureInteractions.d.ts +0 -32
  148. package/dist/components/floating/useHoverDisclosureOpenState.d.ts +0 -25
  149. package/dist/components/floating/useHoverDisclosureTargetBinding.d.ts +0 -27
  150. package/dist/components/select/useSelectNativeControl.d.ts +0 -9
  151. package/dist/components/select/useSelectNativeValue.d.ts +0 -9
  152. package/dist/pointer.js +0 -9
  153. package/dist/utils/dom/pointer.d.ts +0 -2
@@ -1,6 +1,6 @@
1
1
  # Public Styles API
2
2
 
3
- The Public Styles API is the supported way to restyle Ropav without depending on component DOM nesting or internal selectors. Its compatibility baseline is commit `5102a40`.
3
+ The Public Styles API is the supported way to restyle Ropav without depending on component DOM nesting or internal selectors.
4
4
 
5
5
  ## Typed component API
6
6
 
@@ -46,28 +46,35 @@ Only independently useful semantic elements are public parts. Conditional parts
46
46
  | Button, ButtonLink | `root`, `loader`, `left`, `label`, `right` |
47
47
  | IconButton | `root`, `loader`, `icon` |
48
48
  | ButtonGroup | `root` |
49
+ | Calendar | `root`, `header`, `previousControl`, `monthLabel`, `nextControl`, `weekdays`, `weekday`, `grid`, `week`, `dayCell`, `day` |
49
50
  | Card | `root`, `header`, `title`, `description`, `body`, `footer` |
50
51
  | Checkbox | `root`, `input`, `indicator`, `label` |
51
52
  | Collapse | `root`, `trigger`, `content` |
52
53
  | ColorInput | `root`, `control`, `input`, `preview`, `eyeDropper`, `content`, `picker`, `pickerControl`, `pickerHandle`, `pickerSwatches`, `pickerSwatch` |
53
54
  | ColorPicker | `root`, `label`, `control`, `handle`, `swatches`, `swatch` |
54
55
  | ColorSwatch | `root` |
56
+ | Combobox | `root`, `input`, `indicator`, `clear`, `toggle`, `content`, `option`, `empty` |
55
57
  | DropdownMenu | `root`, `trigger`, `content`, `item`, `label`, `shortcut`, `submenu`, `submenuIndicator`, `empty` |
58
+ | Dropzone | `root`, `input`, `content`, `label`, `description` |
56
59
  | Field | `root`, `label`, `required`, `control`, `description` |
60
+ | FileInput | `root`, `input`, `trigger`, `value` |
57
61
  | FocusTrap | `root` |
58
62
  | Input | `root`, `input`, `left`, `right` |
59
63
  | Modal | `root`, `overlay`, `panel`, `header`, `title`, `description`, `body`, `footer`, `close` |
64
+ | MultiSelect | `root`, `pills`, `pill`, `pillLabel`, `pillRemove`, `input`, `indicator`, `clear`, `toggle`, `content`, `option`, `empty` |
60
65
  | NumberInput | `root`, `input`, `control` |
61
66
  | Overlay | `root` |
62
- | Popover, Tooltip | `root`, `trigger`, `content` |
67
+ | HoverCard, Popover, Tooltip | `root`, `trigger`, `content` |
63
68
  | Progress | `root`, `label`, `value`, `track`, `indicator` |
64
69
  | Radio | `root`, `input`, `indicator`, `label` |
65
70
  | RadioGroup | `root` |
71
+ | SegmentedControl | `root`, `control`, `input`, `indicator`, `label` |
66
72
  | Select | `root`, `trigger`, `value`, `indicator`, `clear`, `content`, `option`, `empty` |
67
73
  | Slider | `root`, `label`, `value`, `track`, `range`, `input`, `thumb`, `mark`, `markLabel`, `tooltip` |
68
74
  | RangeSlider | `root`, `label`, `value`, `track`, `range`, `input`, `thumb`, `mark`, `markLabel`, `tooltip` |
69
75
  | Switch | `root`, `input`, `track`, `thumb`, `label` |
70
76
  | Tabs, TabsList, TabsTrigger, TabsContent | `root` on each component |
77
+ | TagsInput | `root`, `tags`, `tag`, `tagLabel`, `tagRemove`, `input`, `clear` |
71
78
  | Textarea | `root`, `input` |
72
79
  | Toast | `root`, `icon`, `title`, `description`, `body`, `action`, `close` |
73
80
  | ToastViewport | `root`, `item`, `toast`, `toastIcon`, `toastTitle`, `toastDescription`, `toastBody`, `toastAction`, `toastClose` |
@@ -78,25 +85,29 @@ Only independently useful semantic elements are public parts. Conditional parts
78
85
 
79
86
  Boolean states use presence semantics: the attribute value is empty when true and the attribute is absent when false or unknown. Enum values are lowercase kebab-case.
80
87
 
81
- - `data-state="open|closed"`: AccordionItem, Collapse, DropdownMenu and submenus, Modal, Popover, Select and Tooltip.
88
+ - `data-state="open|closed"`: AccordionItem, Collapse, Combobox, DropdownMenu and submenus, HoverCard, Modal, MultiSelect, Popover, Select and Tooltip.
82
89
  - `data-state="checked|unchecked|indeterminate"`: Checkbox.
83
- - `data-state="checked|unchecked"`: Radio and Switch.
90
+ - `data-state="checked|unchecked"`: Radio, SegmentedControl controls and inputs, and Switch.
84
91
  - `data-state="active|inactive"`: TabsTrigger and TabsContent.
85
92
  - `data-state="determinate|indeterminate"`: Progress.
93
+ - `data-state="idle|accept|reject"`: Dropzone.
86
94
  - `data-disabled`: the effective disabled state on each applicable control, trigger, item or option.
87
- - `data-readonly`: Input, Textarea, ColorInput and ColorPicker controls.
95
+ - `data-readonly`: Calendar, Input, Textarea, TagsInput, ColorInput and ColorPicker controls.
88
96
  - `data-invalid`: form-control roots and their public input parts.
89
97
  - `data-loading`: Button, ButtonLink and IconButton.
90
98
  - `data-active` and `data-paused`: FocusTrap.
91
- - `data-selected`: Select options and ColorPicker swatches.
92
- - `data-highlighted`: Select options and DropdownMenu items.
99
+ - `data-selected`: Calendar days, Combobox, MultiSelect and Select options, and ColorPicker swatches.
100
+ - `data-outside` and `data-today`: Calendar days.
101
+ - `data-month="YYYY-MM-DD"`: Calendar roots.
102
+ - `data-highlighted`: Combobox, MultiSelect and Select options, and DropdownMenu items.
93
103
  - `data-filled`: Slider and RangeSlider marks.
104
+ - `data-filled` and `data-dragging`: Dropzone.
94
105
  - `data-track-hovered` and `data-dragging`: Slider track pointer interaction.
95
106
  - `data-thumb-visibility="always|interaction|hidden"`: Slider thumb visibility behavior.
96
107
  - `data-submenu`: DropdownMenu items that own children.
97
- - `data-orientation="horizontal|vertical"`: ButtonGroup, RadioGroup, Slider, RangeSlider, Tabs and TabsList.
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
- - `data-side="top|right|bottom|left"`: the side component of the final placement for Popover, DropdownMenu and Tooltip.
108
+ - `data-orientation="horizontal|vertical"`: ButtonGroup, RadioGroup, SegmentedControl, Slider, RangeSlider, Tabs and TabsList.
109
+ - `data-placement`: the final placement after collision handling; twelve placements for HoverCard, Popover and DropdownMenu, `top-start|bottom-start` for Combobox, MultiSelect and Select, and a side (`top`, `right`, `bottom`, `left`) for Tooltip.
110
+ - `data-side="top|right|bottom|left"`: the side component of the final placement for Combobox, MultiSelect, HoverCard, Popover, DropdownMenu, Select and Tooltip.
100
111
  - `data-control="increment|decrement"`: NumberInput controls.
101
112
  - `data-control="saturation|hue|opacity"`: ColorPicker controls and handles.
102
113
  - `data-thumb="lower|upper|merged"`: RangeSlider inputs, thumbs and tooltips; `data-active-thumb="lower|upper"` is present on its root only while a thumb is active.
@@ -111,6 +122,8 @@ The exact entries in [`styles-manifest.json`](../src/styles/styles-manifest.json
111
122
 
112
123
  The manifest contains design tokens plus a deliberately small component-geometry allowlist. Slider and RangeSlider share the `--rp-slider-*` namespace. Size presets provide fallbacks, while a consumer value wins for the individual dimension. See the generated [token table](./public-tokens.md).
113
124
 
125
+ The schema-v2 manifest does not pin a Git commit. `tokens:check` resolves compatibility from release tags, so the baseline advances with releases instead of remaining hard-coded.
126
+
114
127
  Palette shades and their normal and active `*-contrast` companions are required override groups because `autoContrast` consumes state-specific companions selected at build time. The [color override contract](./public-tokens.md#color-override-contract) documents the state pairings and preset-role requirements.
115
128
 
116
129
  ## Cascade layers and migration
@@ -128,6 +141,6 @@ Place global resets in `reset` and application overrides in `app`. Import order
128
141
  - Typed parts, state attributes, manifest entries, geometry variables and cascade layers form the current Public Styles API.
129
142
  - Renaming or removing a documented part, state attribute or variable changes the public contract.
130
143
  - Adding a public part, state attribute or variable extends the public contract.
131
- - `tokens:check` compares the current manifest with the latest reachable `v*` release tag that contains one. Until the first such release, it uses the immutable manifest from the initial Public Styles API commit (`f16e826`). Released variables cannot be removed, renamed or changed semantically; adding a variable requires incrementing the manifest's `contractVersion`.
132
- - Release tags must be available in the Git checkout that runs the check. `PUBLIC_STYLES_BASELINE_REF` can explicitly pin a commit or tag that contains a manifest.
144
+ - `tokens:check` compares the current manifest with the latest reachable `v*` release tag that contains one. Released variables cannot be removed, renamed or changed semantically; adding a variable requires incrementing the manifest's `contractVersion`.
145
+ - Release tags must be available in the Git checkout that runs the check. `PUBLIC_STYLES_BASELINE_REF` can explicitly select another Git ref that contains a manifest.
133
146
  - Internal DOM, selectors and undocumented variables are outside the public contract.
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "ropav",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
- "packageManager": "pnpm@11.15.1",
6
+ "packageManager": "pnpm@11.17.0",
7
7
  "engines": {
8
8
  "node": "^20.19.0 || ^22.13.0 || >=24.0.0"
9
9
  },
@@ -65,6 +65,10 @@
65
65
  "types": "./dist/components/button-link/index.d.ts",
66
66
  "import": "./dist/components/button-link/index.js"
67
67
  },
68
+ "./calendar": {
69
+ "types": "./dist/components/calendar/index.d.ts",
70
+ "import": "./dist/components/calendar/index.js"
71
+ },
68
72
  "./card": {
69
73
  "types": "./dist/components/card/index.d.ts",
70
74
  "import": "./dist/components/card/index.js"
@@ -89,6 +93,14 @@
89
93
  "types": "./dist/components/color-swatch/index.d.ts",
90
94
  "import": "./dist/components/color-swatch/index.js"
91
95
  },
96
+ "./combobox": {
97
+ "types": "./dist/components/combobox/index.d.ts",
98
+ "import": "./dist/components/combobox/index.js"
99
+ },
100
+ "./date-picker": {
101
+ "types": "./dist/components/date-picker/index.d.ts",
102
+ "import": "./dist/components/date-picker/index.js"
103
+ },
92
104
  "./dialog": {
93
105
  "types": "./dist/components/dialog/index.d.ts",
94
106
  "import": "./dist/components/dialog/index.js"
@@ -97,10 +109,18 @@
97
109
  "types": "./dist/components/dropdown-menu/index.d.ts",
98
110
  "import": "./dist/components/dropdown-menu/index.js"
99
111
  },
112
+ "./dropzone": {
113
+ "types": "./dist/components/dropzone/index.d.ts",
114
+ "import": "./dist/components/dropzone/index.js"
115
+ },
100
116
  "./field": {
101
117
  "types": "./dist/components/field/index.d.ts",
102
118
  "import": "./dist/components/field/index.js"
103
119
  },
120
+ "./file-input": {
121
+ "types": "./dist/components/file-input/index.d.ts",
122
+ "import": "./dist/components/file-input/index.js"
123
+ },
104
124
  "./floating": {
105
125
  "types": "./dist/components/floating/index.d.ts",
106
126
  "import": "./dist/components/floating/index.js"
@@ -109,6 +129,10 @@
109
129
  "types": "./dist/components/focus-trap/index.d.ts",
110
130
  "import": "./dist/components/focus-trap/index.js"
111
131
  },
132
+ "./hover-card": {
133
+ "types": "./dist/components/hover-card/index.d.ts",
134
+ "import": "./dist/components/hover-card/index.js"
135
+ },
112
136
  "./icon-button": {
113
137
  "types": "./dist/components/icon-button/index.d.ts",
114
138
  "import": "./dist/components/icon-button/index.js"
@@ -121,6 +145,10 @@
121
145
  "types": "./dist/components/modal/index.d.ts",
122
146
  "import": "./dist/components/modal/index.js"
123
147
  },
148
+ "./multi-select": {
149
+ "types": "./dist/components/multi-select/index.d.ts",
150
+ "import": "./dist/components/multi-select/index.js"
151
+ },
124
152
  "./number-input": {
125
153
  "types": "./dist/components/number-input/index.d.ts",
126
154
  "import": "./dist/components/number-input/index.js"
@@ -149,6 +177,10 @@
149
177
  "types": "./dist/components/scroll-area/index.d.ts",
150
178
  "import": "./dist/components/scroll-area/index.js"
151
179
  },
180
+ "./segmented-control": {
181
+ "types": "./dist/components/segmented-control/index.d.ts",
182
+ "import": "./dist/components/segmented-control/index.js"
183
+ },
152
184
  "./select": {
153
185
  "types": "./dist/components/select/index.d.ts",
154
186
  "import": "./dist/components/select/index.js"
@@ -165,6 +197,10 @@
165
197
  "types": "./dist/components/tabs/index.d.ts",
166
198
  "import": "./dist/components/tabs/index.js"
167
199
  },
200
+ "./tags-input": {
201
+ "types": "./dist/components/tags-input/index.d.ts",
202
+ "import": "./dist/components/tags-input/index.js"
203
+ },
168
204
  "./teleport-provider": {
169
205
  "types": "./dist/components/teleport-provider/index.d.ts",
170
206
  "import": "./dist/components/teleport-provider/index.js"
@@ -265,7 +301,7 @@
265
301
  "vite-plugin-dts": "^5.0.3",
266
302
  "vitest": "^4.1.10",
267
303
  "vue": "3.6.0-rc.2",
268
- "vue-tsc": "^3.3.7"
304
+ "vue-tsc": "^3.3.8"
269
305
  },
270
306
  "repository": {
271
307
  "type": "git",
@@ -108,6 +108,32 @@ $rp-component-colors:
108
108
  padding: var(--rp-spacing-1) 0;
109
109
  }
110
110
 
111
+ @mixin bordered-floating-arrow {
112
+ background-color: inherit;
113
+ border: inherit;
114
+ rotate: 45deg;
115
+
116
+ &[data-side='top'] {
117
+ border-top-color: transparent;
118
+ border-left-color: transparent;
119
+ }
120
+
121
+ &[data-side='right'] {
122
+ border-top-color: transparent;
123
+ border-right-color: transparent;
124
+ }
125
+
126
+ &[data-side='bottom'] {
127
+ border-right-color: transparent;
128
+ border-bottom-color: transparent;
129
+ }
130
+
131
+ &[data-side='left'] {
132
+ border-bottom-color: transparent;
133
+ border-left-color: transparent;
134
+ }
135
+ }
136
+
111
137
  @mixin inline-icon($size: 1em) {
112
138
  display: inline-flex;
113
139
  align-items: center;
@@ -1,7 +1,6 @@
1
1
  {
2
- "schemaVersion": 1,
2
+ "schemaVersion": 2,
3
3
  "contractVersion": 2,
4
- "baseline": "5102a40",
5
4
  "tokens": [
6
5
  {
7
6
  "name": "--rp-border-width-medium",
@@ -1,42 +0,0 @@
1
- export type HoverDisclosureInteractionPart = 'trigger' | 'content';
2
- export interface HoverDisclosureInteractionState {
3
- contentFocused: boolean;
4
- contentHovered: boolean;
5
- touchClickPending: boolean;
6
- touchPinned: boolean;
7
- touchPointerActive: boolean;
8
- triggerFocused: boolean;
9
- triggerHovered: boolean;
10
- }
11
- export type HoverDisclosureInteractionAction = {
12
- type: 'hover';
13
- part: HoverDisclosureInteractionPart;
14
- active: boolean;
15
- } | {
16
- type: 'focus';
17
- part: HoverDisclosureInteractionPart;
18
- active: boolean;
19
- } | {
20
- type: 'pointer-down';
21
- touch: boolean;
22
- } | {
23
- type: 'pointer-up';
24
- touch: boolean;
25
- } | {
26
- type: 'pointer-cancel';
27
- } | {
28
- type: 'consume-touch-click';
29
- } | {
30
- type: 'set-touch-pinned';
31
- pinned: boolean;
32
- } | {
33
- type: 'reset';
34
- part: HoverDisclosureInteractionPart | 'all';
35
- };
36
- export interface HoverDisclosureInteractionModel {
37
- read: () => Readonly<HoverDisclosureInteractionState>;
38
- send: (action: HoverDisclosureInteractionAction) => Readonly<HoverDisclosureInteractionState>;
39
- }
40
- export declare function createHoverDisclosureInteractionModel(): HoverDisclosureInteractionModel;
41
- export declare function hasActiveHoverDisclosureInteraction(state: Readonly<HoverDisclosureInteractionState>): boolean;
42
- export declare function reduceHoverDisclosureInteraction(state: Readonly<HoverDisclosureInteractionState>, action: HoverDisclosureInteractionAction): HoverDisclosureInteractionState;
@@ -1,32 +0,0 @@
1
- import { ComputedRef } from 'vue';
2
- import { HoverDisclosureInteractionModel, HoverDisclosureInteractionPart } from './hoverDisclosureInteractionModel.js';
3
- import { HoverDisclosureChangeRequest } from './useHoverDisclosureOpenState.js';
4
- import { HoverDisclosureTargetState } from './useHoverDisclosureTargetBinding.js';
5
- import { HoverDisclosureContentProps, HoverDisclosureState, HoverDisclosureTriggerProps, UseHoverDisclosureOptions } from './types.js';
6
- interface HoverDisclosureInteractionCommands {
7
- cancelScheduledClose: () => void;
8
- isDisabled: ComputedRef<boolean>;
9
- isOpen: ComputedRef<boolean>;
10
- isRequestedOpen: () => boolean;
11
- request: (change: HoverDisclosureChangeRequest) => void;
12
- }
13
- interface UseHoverDisclosureInteractionsOptions {
14
- commands: HoverDisclosureInteractionCommands;
15
- interaction: HoverDisclosureInteractionModel;
16
- options: Readonly<UseHoverDisclosureOptions>;
17
- state: ComputedRef<HoverDisclosureState>;
18
- targets: HoverDisclosureTargetState;
19
- }
20
- export declare function useHoverDisclosureInteractions({ commands, interaction, options, state, targets, }: UseHoverDisclosureInteractionsOptions): {
21
- bindingAdapter: {
22
- contentListeners: readonly [readonly ["pointerenter", EventListener], readonly ["pointerleave", EventListener], readonly ["pointerdown", EventListener], readonly ["focusin", EventListener], readonly ["focusout", EventListener], readonly ["keydown", EventListener]];
23
- isOutsideDismissalActive: () => boolean;
24
- onDocumentKeydown: (event: KeyboardEvent) => void;
25
- onOutsidePointerdown: (event: PointerEvent) => void;
26
- onTargetDetached: (part: HoverDisclosureInteractionPart) => void;
27
- triggerListeners: readonly [readonly ["pointerenter", EventListener], readonly ["pointerleave", EventListener], readonly ["pointerdown", EventListener], readonly ["pointerup", EventListener], readonly ["pointercancel", EventListener], readonly ["click", EventListener], readonly ["focusin", EventListener], readonly ["focusout", EventListener], readonly ["keydown", EventListener]];
28
- };
29
- contentProps: ComputedRef<HoverDisclosureContentProps>;
30
- triggerProps: ComputedRef<HoverDisclosureTriggerProps>;
31
- };
32
- export {};
@@ -1,25 +0,0 @@
1
- import { HoverDisclosureInteractionModel } from './hoverDisclosureInteractionModel.js';
2
- import { HoverDisclosureOpenChangeReason, HoverDisclosureState, UseHoverDisclosureOptions } from './types.js';
3
- export interface HoverDisclosureChangeRequest {
4
- event?: Event;
5
- open: boolean;
6
- reason: HoverDisclosureOpenChangeReason;
7
- timing: 'delayed' | 'immediate';
8
- }
9
- interface UseHoverDisclosureOpenStateOptions {
10
- interaction: HoverDisclosureInteractionModel;
11
- onContentClosed: () => void;
12
- options: Readonly<UseHoverDisclosureOptions>;
13
- }
14
- export declare function useHoverDisclosureOpenState({ interaction, onContentClosed, options, }: UseHoverDisclosureOpenStateOptions): {
15
- cancelScheduledClose: () => void;
16
- close: () => void;
17
- isDisabled: import('vue').ComputedRef<boolean>;
18
- isOpen: import('vue').ComputedRef<boolean>;
19
- isRequestedOpen: () => boolean;
20
- open: () => void;
21
- request: (change: HoverDisclosureChangeRequest) => void;
22
- state: import('vue').ComputedRef<HoverDisclosureState>;
23
- toggle: () => void;
24
- };
25
- export {};
@@ -1,27 +0,0 @@
1
- import { shallowRef, ComputedRef } from 'vue';
2
- import { UseHoverDisclosureOptions } from './types.js';
3
- import { HoverDisclosureInteractionPart } from './hoverDisclosureInteractionModel.js';
4
- export type HoverDisclosureTargetListener = readonly [type: string, listener: EventListener];
5
- export interface HoverDisclosureTargetState {
6
- contentElement: Element | null;
7
- resolvedContentTarget: ReturnType<typeof shallowRef<Element | null>>;
8
- resolvedInteractionTarget: ReturnType<typeof shallowRef<Element | null>>;
9
- triggerElement: Element | null;
10
- }
11
- interface HoverDisclosureBindingAdapter {
12
- contentListeners: readonly HoverDisclosureTargetListener[];
13
- isOutsideDismissalActive: () => boolean;
14
- onDocumentKeydown: (event: KeyboardEvent) => void;
15
- onOutsidePointerdown: (event: PointerEvent) => void;
16
- onTargetDetached: (part: HoverDisclosureInteractionPart) => void;
17
- triggerListeners: readonly HoverDisclosureTargetListener[];
18
- }
19
- interface UseHoverDisclosureTargetBindingOptions {
20
- adapter: HoverDisclosureBindingAdapter;
21
- isOpen: ComputedRef<boolean>;
22
- options: Readonly<UseHoverDisclosureOptions>;
23
- targets: HoverDisclosureTargetState;
24
- }
25
- export declare function createHoverDisclosureTargetState(): HoverDisclosureTargetState;
26
- export declare function useHoverDisclosureTargetBinding({ adapter, isOpen, options, targets, }: UseHoverDisclosureTargetBindingOptions): void;
27
- export {};
@@ -1,9 +0,0 @@
1
- import { Ref, SelectHTMLAttributes } from 'vue';
2
- import { SelectProps } from './types.js';
3
- import { SelectValue } from './useSelectNativeValue.js';
4
- export declare function useSelectNativeControl(props: Readonly<SelectProps>, emitUpdate: (value: SelectValue) => void, triggerRef: Readonly<Ref<HTMLElement | null>>): {
5
- nativeSelectRef: Ref<HTMLSelectElement | null, HTMLSelectElement | null>;
6
- selectedValue: import('vue').ComputedRef<SelectValue>;
7
- nativeInputAttrs: import('vue').ComputedRef<SelectHTMLAttributes>;
8
- requestValueUpdate: (value: SelectValue) => void;
9
- };
@@ -1,9 +0,0 @@
1
- import { SelectProps } from './types.js';
2
- export type SelectValue = string | number | null;
3
- export declare function useSelectNativeValue(props: Readonly<SelectProps>, emitUpdate: (value: SelectValue) => void): {
4
- nativeSelectRef: import('vue').Ref<HTMLSelectElement | null, HTMLSelectElement | null>;
5
- controllable: import('../../composables/useControllableValue.js').UseControllableValueReturn<SelectValue>;
6
- getNativeValue: (select: HTMLSelectElement) => string | number | null;
7
- syncNativeSelection: (value: SelectValue) => void;
8
- requestValueUpdate: (value: SelectValue) => void;
9
- };
package/dist/pointer.js DELETED
@@ -1,9 +0,0 @@
1
- //#region src/utils/dom/pointer.ts
2
- function getPointerId(event) {
3
- return Number.isFinite(event.pointerId) ? event.pointerId : void 0;
4
- }
5
- function isMatchingPointer(event, pointerId) {
6
- return pointerId === void 0 || getPointerId(event) === pointerId;
7
- }
8
- //#endregion
9
- export { isMatchingPointer as n, getPointerId as t };
@@ -1,2 +0,0 @@
1
- export declare function getPointerId(event: Pick<PointerEvent, 'pointerId'>): number | undefined;
2
- export declare function isMatchingPointer(event: Pick<PointerEvent, 'pointerId'>, pointerId: number | undefined): boolean;