@itguy614/clean-ui 0.9.0 → 1.0.1

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 (268) hide show
  1. package/dist/_virtual/_plugin-vue_export-helper.js +9 -0
  2. package/dist/clean-ui.css +1 -1
  3. package/dist/components/CuiAccordion.vue.js +7 -0
  4. package/dist/components/CuiAccordion.vue2.js +55 -0
  5. package/dist/components/CuiAccordionItem.vue.js +7 -0
  6. package/dist/components/CuiAccordionItem.vue2.js +91 -0
  7. package/dist/components/CuiAlert.vue.d.ts.map +1 -1
  8. package/dist/components/CuiAlert.vue.js +7 -0
  9. package/dist/components/CuiAlert.vue2.js +113 -0
  10. package/dist/components/CuiAvatar.vue.js +99 -0
  11. package/dist/components/CuiAvatar.vue3.js +5 -0
  12. package/dist/components/CuiAvatarGroup.vue.js +22 -0
  13. package/dist/components/CuiAvatarGroup.vue3.js +5 -0
  14. package/dist/components/CuiBackdrop.vue.js +7 -0
  15. package/dist/components/CuiBackdrop.vue2.js +49 -0
  16. package/dist/components/CuiBadge.vue.d.ts.map +1 -1
  17. package/dist/components/CuiBadge.vue.js +7 -0
  18. package/dist/components/CuiBadge.vue2.js +82 -0
  19. package/dist/components/CuiBanner.vue.js +81 -0
  20. package/dist/components/CuiBanner.vue2.js +4 -0
  21. package/dist/components/CuiBreadcrumb.vue.js +7 -0
  22. package/dist/components/CuiBreadcrumb.vue2.js +29 -0
  23. package/dist/components/CuiBreadcrumbItem.vue.js +7 -0
  24. package/dist/components/CuiBreadcrumbItem.vue2.js +46 -0
  25. package/dist/components/CuiButton.vue.d.ts.map +1 -1
  26. package/dist/components/CuiButton.vue.js +7 -0
  27. package/dist/components/CuiButton.vue2.js +136 -0
  28. package/dist/components/CuiButtonGroup.vue.js +7 -0
  29. package/dist/components/CuiButtonGroup.vue2.js +21 -0
  30. package/dist/components/CuiCard.vue.js +35 -0
  31. package/dist/components/CuiCard.vue2.js +4 -0
  32. package/dist/components/CuiCardBody.vue.js +20 -0
  33. package/dist/components/CuiCardBody.vue2.js +4 -0
  34. package/dist/components/CuiCardFooter.vue.js +32 -0
  35. package/dist/components/CuiCardFooter.vue2.js +4 -0
  36. package/dist/components/CuiCardHeader.vue.js +51 -0
  37. package/dist/components/CuiCardHeader.vue2.js +4 -0
  38. package/dist/components/CuiCardMedia.vue.js +7 -0
  39. package/dist/components/CuiCardMedia.vue2.js +38 -0
  40. package/dist/components/CuiCheckbox.vue.js +7 -0
  41. package/dist/components/CuiCheckbox.vue2.js +105 -0
  42. package/dist/components/CuiCheckboxGroup.vue.js +7 -0
  43. package/dist/components/CuiCheckboxGroup.vue2.js +59 -0
  44. package/dist/components/CuiCodeBlock.vue.js +129 -0
  45. package/dist/components/CuiCodeBlock.vue2.js +4 -0
  46. package/dist/components/CuiColorPicker.vue.js +348 -0
  47. package/dist/components/CuiColorPicker.vue2.js +4 -0
  48. package/dist/components/CuiCombobox.vue.js +332 -0
  49. package/dist/components/CuiCombobox.vue2.js +4 -0
  50. package/dist/components/CuiConfigProvider.vue.js +18 -0
  51. package/dist/components/CuiConfigProvider.vue2.js +4 -0
  52. package/dist/components/CuiConfirmDialog.vue.js +208 -0
  53. package/dist/components/CuiConfirmDialog.vue2.js +4 -0
  54. package/dist/components/CuiContainer.vue.js +35 -0
  55. package/dist/components/CuiContainer.vue2.js +4 -0
  56. package/dist/components/CuiContextMenu.vue.js +7 -0
  57. package/dist/components/CuiContextMenu.vue2.js +136 -0
  58. package/dist/components/CuiCopyButton.vue.js +63 -0
  59. package/dist/components/CuiCopyButton.vue2.js +4 -0
  60. package/dist/components/CuiDataGrid.vue.d.ts +53 -79
  61. package/dist/components/CuiDataGrid.vue.d.ts.map +1 -1
  62. package/dist/components/CuiDataGrid.vue.js +178 -0
  63. package/dist/components/CuiDataGrid.vue3.js +5 -0
  64. package/dist/components/CuiDataGridActiveFilters.vue.js +47 -0
  65. package/dist/components/CuiDataGridActiveFilters.vue3.js +5 -0
  66. package/dist/components/CuiDataGridBulkBar.vue.d.ts.map +1 -1
  67. package/dist/components/CuiDataGridBulkBar.vue.js +70 -0
  68. package/dist/components/CuiDataGridBulkBar.vue3.js +5 -0
  69. package/dist/components/CuiDataGridCardView.vue.js +31 -0
  70. package/dist/components/CuiDataGridCardView.vue2.js +4 -0
  71. package/dist/components/CuiDataGridColumnManager.vue.js +86 -0
  72. package/dist/components/CuiDataGridColumnManager.vue2.js +4 -0
  73. package/dist/components/CuiDataGridFilterPanel.vue.js +181 -0
  74. package/dist/components/CuiDataGridFilterPanel.vue3.js +5 -0
  75. package/dist/components/CuiDataGridPagination.vue.js +28 -0
  76. package/dist/components/CuiDataGridPagination.vue2.js +4 -0
  77. package/dist/components/CuiDataGridSearch.vue.js +69 -0
  78. package/dist/components/CuiDataGridSearch.vue2.js +4 -0
  79. package/dist/components/CuiDataGridTable.vue.js +336 -0
  80. package/dist/components/CuiDataGridTable.vue2.js +4 -0
  81. package/dist/components/CuiDataGridToolbar.vue.js +73 -0
  82. package/dist/components/CuiDataGridToolbar.vue3.js +5 -0
  83. package/dist/components/CuiDataGridViewManager.vue.js +209 -0
  84. package/dist/components/CuiDataGridViewManager.vue2.js +4 -0
  85. package/dist/components/CuiDataGridViewToggle.vue.js +43 -0
  86. package/dist/components/CuiDataGridViewToggle.vue3.js +5 -0
  87. package/dist/components/CuiDatePicker.vue.js +382 -0
  88. package/dist/components/CuiDatePicker.vue2.js +4 -0
  89. package/dist/components/CuiDateRangePicker.vue.js +376 -0
  90. package/dist/components/CuiDateRangePicker.vue2.js +4 -0
  91. package/dist/components/CuiDivider.vue.js +124 -0
  92. package/dist/components/CuiDivider.vue2.js +4 -0
  93. package/dist/components/CuiDropdown.vue.js +7 -0
  94. package/dist/components/CuiDropdown.vue2.js +110 -0
  95. package/dist/components/CuiDropdownCheckItem.vue.js +7 -0
  96. package/dist/components/CuiDropdownCheckItem.vue2.js +45 -0
  97. package/dist/components/CuiDropdownDivider.vue.js +14 -0
  98. package/dist/components/CuiDropdownHeader.vue.js +16 -0
  99. package/dist/components/CuiDropdownItem.vue.js +7 -0
  100. package/dist/components/CuiDropdownItem.vue2.js +55 -0
  101. package/dist/components/CuiDropdownMenu.vue.js +7 -0
  102. package/dist/components/CuiDropdownMenu.vue2.js +79 -0
  103. package/dist/components/CuiDropdownRadioGroup.vue.js +23 -0
  104. package/dist/components/CuiDropdownRadioGroup.vue2.js +4 -0
  105. package/dist/components/CuiDropdownRadioItem.vue.js +7 -0
  106. package/dist/components/CuiDropdownRadioItem.vue2.js +43 -0
  107. package/dist/components/CuiDropdownSub.vue.js +7 -0
  108. package/dist/components/CuiDropdownSub.vue2.js +91 -0
  109. package/dist/components/CuiDropdownTrigger.vue.js +7 -0
  110. package/dist/components/CuiDropdownTrigger.vue2.js +25 -0
  111. package/dist/components/CuiEmptyState.vue.js +7 -0
  112. package/dist/components/CuiEmptyState.vue2.js +70 -0
  113. package/dist/components/CuiFieldset.vue.js +7 -0
  114. package/dist/components/CuiFieldset.vue2.js +79 -0
  115. package/dist/components/CuiFileUpload.vue.js +254 -0
  116. package/dist/components/CuiFileUpload.vue2.js +4 -0
  117. package/dist/components/CuiFlex.vue.js +7 -0
  118. package/dist/components/CuiFlex.vue2.js +72 -0
  119. package/dist/components/CuiFlexItem.vue.js +35 -0
  120. package/dist/components/CuiFlexItem.vue2.js +4 -0
  121. package/dist/components/CuiForm.vue.js +116 -0
  122. package/dist/components/CuiForm.vue2.js +4 -0
  123. package/dist/components/CuiFormField.vue.js +7 -0
  124. package/dist/components/CuiFormField.vue2.js +73 -0
  125. package/dist/components/CuiGrid.vue.js +7 -0
  126. package/dist/components/CuiGrid.vue2.js +51 -0
  127. package/dist/components/CuiGridItem.vue.js +30 -0
  128. package/dist/components/CuiGridItem.vue2.js +4 -0
  129. package/dist/components/CuiIcon.vue.js +7 -0
  130. package/dist/components/CuiIcon.vue2.js +72 -0
  131. package/dist/components/CuiInput.vue.d.ts +6 -6
  132. package/dist/components/CuiInput.vue.d.ts.map +1 -1
  133. package/dist/components/CuiInput.vue.js +7 -0
  134. package/dist/components/CuiInput.vue2.js +150 -0
  135. package/dist/components/CuiInputStepper.vue.js +189 -0
  136. package/dist/components/CuiInputStepper.vue2.js +4 -0
  137. package/dist/components/CuiKbd.vue.js +44 -0
  138. package/dist/components/CuiKbd.vue2.js +4 -0
  139. package/dist/components/CuiMaskedInput.vue.d.ts +8 -8
  140. package/dist/components/CuiMaskedInput.vue.js +256 -0
  141. package/dist/components/CuiMaskedInput.vue2.js +4 -0
  142. package/dist/components/CuiModal.vue.js +7 -0
  143. package/dist/components/CuiModal.vue2.js +98 -0
  144. package/dist/components/CuiModalBody.vue.js +50 -0
  145. package/dist/components/CuiModalBody.vue2.js +4 -0
  146. package/dist/components/CuiModalFooter.vue.js +36 -0
  147. package/dist/components/CuiModalFooter.vue2.js +4 -0
  148. package/dist/components/CuiModalHeader.vue.js +85 -0
  149. package/dist/components/CuiModalHeader.vue2.js +4 -0
  150. package/dist/components/CuiPagination.vue.js +7 -0
  151. package/dist/components/CuiPagination.vue2.js +136 -0
  152. package/dist/components/CuiPopover.vue.js +227 -0
  153. package/dist/components/CuiPopover.vue2.js +4 -0
  154. package/dist/components/CuiProgress.vue.js +7 -0
  155. package/dist/components/CuiProgress.vue2.js +132 -0
  156. package/dist/components/CuiRadio.vue.d.ts.map +1 -1
  157. package/dist/components/CuiRadio.vue.js +7 -0
  158. package/dist/components/CuiRadio.vue2.js +139 -0
  159. package/dist/components/CuiRadioGroup.vue.js +7 -0
  160. package/dist/components/CuiRadioGroup.vue2.js +78 -0
  161. package/dist/components/CuiRating.vue.js +129 -0
  162. package/dist/components/CuiRating.vue2.js +4 -0
  163. package/dist/components/CuiResizablePanels.vue.js +147 -0
  164. package/dist/components/CuiResizablePanels.vue2.js +4 -0
  165. package/dist/components/CuiSelect.vue.d.ts.map +1 -1
  166. package/dist/components/CuiSelect.vue.js +7 -0
  167. package/dist/components/CuiSelect.vue2.js +359 -0
  168. package/dist/components/CuiSkeleton.vue.js +7 -0
  169. package/dist/components/CuiSkeleton.vue2.js +80 -0
  170. package/dist/components/CuiSlideover.vue.js +109 -0
  171. package/dist/components/CuiSlideover.vue2.js +4 -0
  172. package/dist/components/CuiSlider.vue.js +156 -0
  173. package/dist/components/CuiSlider.vue2.js +4 -0
  174. package/dist/components/CuiSpacer.vue.js +32 -0
  175. package/dist/components/CuiSpacer.vue2.js +4 -0
  176. package/dist/components/CuiSpinner.vue.js +99 -0
  177. package/dist/components/CuiSpinner.vue3.js +5 -0
  178. package/dist/components/CuiStack.vue.js +30 -0
  179. package/dist/components/CuiStack.vue2.js +4 -0
  180. package/dist/components/CuiStepper.vue.js +153 -0
  181. package/dist/components/CuiStepper.vue2.js +4 -0
  182. package/dist/components/CuiTab.vue.js +7 -0
  183. package/dist/components/CuiTab.vue2.js +73 -0
  184. package/dist/components/CuiTable.vue.d.ts.map +1 -1
  185. package/dist/components/CuiTable.vue.js +90 -0
  186. package/dist/components/CuiTable.vue3.js +5 -0
  187. package/dist/components/CuiTableBody.vue.js +18 -0
  188. package/dist/components/CuiTableBody.vue2.js +4 -0
  189. package/dist/components/CuiTableCell.vue.js +36 -0
  190. package/dist/components/CuiTableCell.vue2.js +4 -0
  191. package/dist/components/CuiTableFoot.vue.js +18 -0
  192. package/dist/components/CuiTableFoot.vue2.js +4 -0
  193. package/dist/components/CuiTableHead.vue.js +18 -0
  194. package/dist/components/CuiTableHead.vue2.js +4 -0
  195. package/dist/components/CuiTableRow.vue.js +23 -0
  196. package/dist/components/CuiTableRow.vue2.js +4 -0
  197. package/dist/components/CuiTabs.vue.js +7 -0
  198. package/dist/components/CuiTabs.vue2.js +124 -0
  199. package/dist/components/CuiTagInput.vue.js +296 -0
  200. package/dist/components/CuiTagInput.vue2.js +4 -0
  201. package/dist/components/CuiTextarea.vue.js +7 -0
  202. package/dist/components/CuiTextarea.vue2.js +112 -0
  203. package/dist/components/CuiTimePicker.vue.js +193 -0
  204. package/dist/components/CuiTimePicker.vue2.js +4 -0
  205. package/dist/components/CuiTimeline.vue.js +25 -0
  206. package/dist/components/CuiTimeline.vue2.js +4 -0
  207. package/dist/components/CuiTimelineItem.vue.js +113 -0
  208. package/dist/components/CuiTimelineItem.vue2.js +4 -0
  209. package/dist/components/CuiToast.vue.js +7 -0
  210. package/dist/components/CuiToast.vue2.js +129 -0
  211. package/dist/components/CuiToastProvider.vue.js +7 -0
  212. package/dist/components/CuiToastProvider.vue2.js +87 -0
  213. package/dist/components/CuiToggle.vue.d.ts.map +1 -1
  214. package/dist/components/CuiToggle.vue.js +7 -0
  215. package/dist/components/CuiToggle.vue2.js +116 -0
  216. package/dist/components/CuiToggleGroup.vue.js +7 -0
  217. package/dist/components/CuiToggleGroup.vue2.js +59 -0
  218. package/dist/components/CuiTooltip.vue.js +7 -0
  219. package/dist/components/CuiTooltip.vue2.js +128 -0
  220. package/dist/components/CuiTransferList.vue.js +442 -0
  221. package/dist/components/CuiTransferList.vue2.js +4 -0
  222. package/dist/components/CuiTreeNode.vue.js +180 -0
  223. package/dist/components/CuiTreeNode.vue2.js +4 -0
  224. package/dist/components/CuiTreeView.vue.js +73 -0
  225. package/dist/components/CuiTreeView.vue2.js +4 -0
  226. package/dist/components/accordion-context.js +4 -0
  227. package/dist/components/breadcrumb-context.js +4 -0
  228. package/dist/components/config-context.js +4 -0
  229. package/dist/components/data-grid-context.js +4 -0
  230. package/dist/components/dropdown-context.js +30 -0
  231. package/dist/components/form-context.js +4 -0
  232. package/dist/components/multi-select-group-context.js +5 -0
  233. package/dist/components/radio-context.js +4 -0
  234. package/dist/components/table-context.js +5 -0
  235. package/dist/components/tabs-context.js +4 -0
  236. package/dist/components/toast-context.js +45 -0
  237. package/dist/composables/useBreakpoint.js +34 -0
  238. package/dist/composables/useClickOutside.js +14 -0
  239. package/dist/composables/useCopyToClipboard.js +25 -0
  240. package/dist/composables/useDataGrid.js +269 -0
  241. package/dist/composables/useDataGridInertia.js +35 -0
  242. package/dist/composables/useDataGridViews.js +67 -0
  243. package/dist/composables/useDensity.js +42 -0
  244. package/dist/composables/useLayoutContext.js +21 -0
  245. package/dist/composables/useMessages.js +10 -0
  246. package/dist/composables/useOverlay.d.ts.map +1 -1
  247. package/dist/composables/useOverlay.js +59 -0
  248. package/dist/composables/usePopover.js +53 -0
  249. package/dist/composables/useScrollShadows.js +56 -0
  250. package/dist/composables/useTheme.js +57 -0
  251. package/dist/composables/useToast.js +23 -0
  252. package/dist/composables/useVirtualScroll.js +69 -0
  253. package/dist/index.js +290 -0
  254. package/dist/messages.js +57 -0
  255. package/dist/ssr-theme-init.js +13 -0
  256. package/dist/utils/color.js +195 -0
  257. package/dist/utils/colorIconMap.js +11 -0
  258. package/dist/utils/date.js +114 -0
  259. package/dist/utils/devWarn.d.ts +15 -0
  260. package/dist/utils/devWarn.d.ts.map +1 -0
  261. package/dist/utils/devWarn.js +20 -0
  262. package/dist/utils/liveRegion.js +12 -0
  263. package/dist/utils/resolvers.js +28 -0
  264. package/dist/utils/responsive.js +68 -0
  265. package/dist/utils/sizing.js +39 -0
  266. package/package.json +8 -7
  267. package/dist/clean-ui.js +0 -11937
  268. package/dist/clean-ui.umd.cjs +0 -11
@@ -0,0 +1,359 @@
1
+ import { defineComponent as ie, computed as p, ref as k, onMounted as ne, onUnmounted as ue, withDirectives as re, openBlock as n, createElementBlock as u, createElementVNode as b, normalizeStyle as O, normalizeClass as L, Fragment as z, renderList as I, createTextVNode as S, toDisplayString as m, withModifiers as F, unref as H, createVNode as A, renderSlot as K, createBlock as C, createCommentVNode as f, Teleport as se, vShow as ce, nextTick as P } from "vue";
2
+ import g from "./CuiIcon.vue.js";
3
+ import { INPUT_SIZE_SCALE as de } from "../utils/sizing.js";
4
+ import { useMessages as ve } from "../composables/useMessages.js";
5
+ const me = { class: "cui-select-wrapper" }, fe = ["aria-expanded", "aria-disabled", "aria-invalid", "tabindex"], he = { class: "cui-select__value" }, pe = ["aria-label", "onClick"], ge = {
6
+ key: 1,
7
+ class: "cui-select__label"
8
+ }, be = {
9
+ key: 2,
10
+ class: "cui-select__placeholder"
11
+ }, ye = { class: "cui-select__actions" }, ke = ["aria-label"], _e = ["aria-multiselectable"], xe = {
12
+ key: 0,
13
+ class: "cui-select__loading"
14
+ }, we = {
15
+ key: 1,
16
+ class: "cui-select__empty"
17
+ }, Ve = {
18
+ key: 0,
19
+ class: "cui-select__group-header"
20
+ }, ze = ["data-highlighted", "aria-selected", "aria-disabled", "onClick", "onMouseenter"], Se = {
21
+ key: 0,
22
+ class: "cui-select__check"
23
+ }, Ae = { class: "cui-select__option-label" }, Ce = {
24
+ key: 0,
25
+ class: "cui-select__error"
26
+ }, De = /* @__PURE__ */ ie({
27
+ __name: "CuiSelect",
28
+ props: {
29
+ modelValue: {},
30
+ options: { default: () => [] },
31
+ multiple: { type: Boolean, default: !1 },
32
+ placeholder: { default: "Select..." },
33
+ clearable: { type: Boolean, default: !1 },
34
+ loading: { type: Boolean, default: !1 },
35
+ noOptionsText: { default: "No options available" },
36
+ error: { type: Boolean, default: !1 },
37
+ errorMessage: {},
38
+ readonly: { type: Boolean, default: !1 },
39
+ rounded: { default: "md" },
40
+ hidden: { type: Boolean, default: !1 },
41
+ color: { default: "primary" },
42
+ size: { default: "md" },
43
+ disabled: { type: Boolean, default: !1 }
44
+ },
45
+ emits: ["update:modelValue"],
46
+ setup(a, { expose: Z, emit: G }) {
47
+ const J = {
48
+ none: "0",
49
+ sm: "0.25rem",
50
+ md: "var(--cui-button-radius, 0.375rem)",
51
+ lg: "0.5rem",
52
+ full: "9999px"
53
+ }, l = a, _ = G, h = p(
54
+ () => l.options.map(
55
+ (e) => typeof e == "object" ? e : { value: e, label: String(e) }
56
+ )
57
+ ), Q = p(() => {
58
+ const e = /* @__PURE__ */ new Map(), o = [];
59
+ for (const t of h.value)
60
+ t.group ? (e.has(t.group) || e.set(t.group, []), e.get(t.group).push(t)) : o.push(t);
61
+ const i = [];
62
+ o.length && i.push({ options: o });
63
+ for (const [t, c] of e)
64
+ i.push({ group: t, options: c });
65
+ return i;
66
+ }), d = p(
67
+ () => h.value.filter((e) => !e.disabled)
68
+ ), s = k(!1), r = k(-1), v = k(), E = k();
69
+ function $(e) {
70
+ return l.multiple ? Array.isArray(l.modelValue) && l.modelValue.includes(e) : l.modelValue === e;
71
+ }
72
+ function W() {
73
+ if (l.multiple && Array.isArray(l.modelValue))
74
+ return l.modelValue.map((e) => {
75
+ const o = h.value.find((i) => i.value === e);
76
+ return (o == null ? void 0 : o.label) ?? String(e);
77
+ });
78
+ if (l.modelValue != null) {
79
+ const e = h.value.find((o) => o.value === l.modelValue);
80
+ return e ? [e.label] : [String(l.modelValue)];
81
+ }
82
+ return [];
83
+ }
84
+ const X = p(W), R = p(() => l.multiple ? Array.isArray(l.modelValue) && l.modelValue.length > 0 : l.modelValue != null && l.modelValue !== ""), M = p(() => l.multiple || l.modelValue == null ? null : h.value.find((e) => e.value === l.modelValue) ?? null);
85
+ function Y() {
86
+ l.disabled || l.readonly || (s.value ? y() : B());
87
+ }
88
+ function B() {
89
+ l.disabled || l.readonly || (s.value = !0, r.value = -1, P(() => {
90
+ if (j(), !l.multiple && l.modelValue != null) {
91
+ const e = d.value.findIndex((o) => o.value === l.modelValue);
92
+ e >= 0 && (r.value = e);
93
+ }
94
+ }));
95
+ }
96
+ function y() {
97
+ s.value = !1, r.value = -1;
98
+ }
99
+ function T(e) {
100
+ if (!e.disabled)
101
+ if (l.multiple) {
102
+ const o = Array.isArray(l.modelValue) ? [...l.modelValue] : [], i = o.indexOf(e.value);
103
+ i >= 0 ? o.splice(i, 1) : o.push(e.value), _("update:modelValue", o);
104
+ } else
105
+ _("update:modelValue", e.value), y();
106
+ }
107
+ function ee(e) {
108
+ l.disabled || l.readonly || l.multiple && Array.isArray(l.modelValue) && _("update:modelValue", l.modelValue.filter((o) => o !== e));
109
+ }
110
+ function le() {
111
+ l.disabled || l.readonly || _("update:modelValue", l.multiple ? [] : null);
112
+ }
113
+ function te(e) {
114
+ var o;
115
+ if (!(l.disabled || l.readonly)) {
116
+ if (!s.value) {
117
+ (e.key === "ArrowDown" || e.key === "ArrowUp" || e.key === "Enter" || e.key === " ") && (e.preventDefault(), B());
118
+ return;
119
+ }
120
+ switch (e.key) {
121
+ case "ArrowDown":
122
+ e.preventDefault(), r.value = Math.min(
123
+ r.value + 1,
124
+ d.value.length - 1
125
+ ), x();
126
+ break;
127
+ case "ArrowUp":
128
+ e.preventDefault(), r.value = Math.max(r.value - 1, 0), x();
129
+ break;
130
+ case "Enter":
131
+ case " ":
132
+ e.preventDefault(), r.value >= 0 && r.value < d.value.length && T(d.value[r.value]);
133
+ break;
134
+ case "Escape":
135
+ e.preventDefault(), y(), (o = v.value) == null || o.focus();
136
+ break;
137
+ case "Home":
138
+ e.preventDefault(), r.value = 0, x();
139
+ break;
140
+ case "End":
141
+ e.preventDefault(), r.value = d.value.length - 1, x();
142
+ break;
143
+ }
144
+ }
145
+ }
146
+ function x() {
147
+ P(() => {
148
+ var o;
149
+ const e = (o = E.value) == null ? void 0 : o.querySelector("[data-highlighted]");
150
+ e == null || e.scrollIntoView({ block: "nearest" });
151
+ });
152
+ }
153
+ function N(e) {
154
+ var i, t;
155
+ const o = e.target;
156
+ (i = v.value) != null && i.contains(o) || (t = E.value) != null && t.contains(o) || y();
157
+ }
158
+ function w() {
159
+ s.value && j();
160
+ }
161
+ ne(() => {
162
+ document.addEventListener("mousedown", N), window.addEventListener("scroll", w, !0), window.addEventListener("resize", w);
163
+ }), ue(() => {
164
+ document.removeEventListener("mousedown", N), window.removeEventListener("scroll", w, !0), window.removeEventListener("resize", w);
165
+ });
166
+ const U = k({});
167
+ function j() {
168
+ if (!v.value) return;
169
+ const e = v.value.getBoundingClientRect(), o = window.innerHeight, i = o - e.bottom, t = i < 200 && e.top > i, c = Math.min(t ? e.top - 16 : i - 16, 300);
170
+ U.value = {
171
+ position: "fixed",
172
+ left: `${e.left}px`,
173
+ width: `${e.width}px`,
174
+ maxHeight: `${c}px`,
175
+ zIndex: "9990",
176
+ ...t ? { bottom: `${o - e.top + 4}px` } : { top: `${e.bottom + 4}px` }
177
+ };
178
+ }
179
+ Z({
180
+ el: v,
181
+ focus: () => {
182
+ var e;
183
+ return (e = v.value) == null ? void 0 : e.focus();
184
+ },
185
+ blur: () => {
186
+ var e;
187
+ return (e = v.value) == null ? void 0 : e.blur();
188
+ },
189
+ open: B,
190
+ close: y
191
+ });
192
+ const V = p(() => {
193
+ const e = de[l.size];
194
+ return { minHeight: e.height, px: e.px, fontSize: e.fontSize };
195
+ }), D = ve();
196
+ return (e, o) => re((n(), u("div", me, [
197
+ b("div", {
198
+ class: L(["cui-select", {
199
+ "cui-select--open": s.value,
200
+ "cui-select--error": a.error,
201
+ "cui-select--disabled": a.disabled
202
+ }]),
203
+ style: O({
204
+ "--_sel-min-height": V.value.minHeight,
205
+ "--_sel-px": V.value.px,
206
+ "--_sel-font-size": V.value.fontSize,
207
+ "--_sel-color": `var(--cui-${a.color})`,
208
+ "--_sel-focus-ring": `var(--cui-${a.color}-focus-ring)`,
209
+ "--_sel-border": a.error ? "var(--cui-error)" : "var(--cui-border-strong)",
210
+ "--_sel-focus-border": a.error ? "var(--cui-error)" : `var(--cui-${a.color})`
211
+ })
212
+ }, [
213
+ b("div", {
214
+ ref_key: "triggerRef",
215
+ ref: v,
216
+ class: "cui-select__trigger",
217
+ style: O({ borderRadius: J[a.rounded] }),
218
+ role: "combobox",
219
+ "aria-expanded": s.value,
220
+ "aria-haspopup": "listbox",
221
+ "aria-disabled": a.disabled || a.readonly || void 0,
222
+ "aria-invalid": a.error || void 0,
223
+ tabindex: a.disabled ? -1 : 0,
224
+ onClick: Y,
225
+ onKeydown: te
226
+ }, [
227
+ b("div", he, [
228
+ a.multiple && Array.isArray(a.modelValue) && a.modelValue.length > 0 ? (n(!0), u(z, { key: 0 }, I(a.modelValue, (i) => {
229
+ var t;
230
+ return n(), u("span", {
231
+ key: String(i),
232
+ class: "cui-select__chip"
233
+ }, [
234
+ S(m(((t = h.value.find((c) => c.value === i)) == null ? void 0 : t.label) ?? i) + " ", 1),
235
+ b("button", {
236
+ type: "button",
237
+ class: "cui-select__chip-remove",
238
+ tabindex: "-1",
239
+ "aria-label": H(D).remove,
240
+ onClick: F((c) => ee(i), ["stop"])
241
+ }, [
242
+ A(g, {
243
+ name: "x",
244
+ size: "0.75rem"
245
+ })
246
+ ], 8, pe)
247
+ ]);
248
+ }), 128)) : !a.multiple && R.value ? (n(), u("span", ge, [
249
+ K(e.$slots, "selected", { option: M.value }, () => {
250
+ var i;
251
+ return [
252
+ (i = M.value) != null && i.icon ? (n(), C(g, {
253
+ key: 0,
254
+ name: M.value.icon,
255
+ size: "sm",
256
+ class: "cui-select__option-icon"
257
+ }, null, 8, ["name"])) : f("", !0),
258
+ S(" " + m(X.value[0]), 1)
259
+ ];
260
+ }, !0)
261
+ ])) : (n(), u("span", be, m(a.placeholder), 1))
262
+ ]),
263
+ b("div", ye, [
264
+ a.clearable && R.value && !a.disabled && !a.readonly ? (n(), u("button", {
265
+ key: 0,
266
+ type: "button",
267
+ class: "cui-select__clear",
268
+ tabindex: "-1",
269
+ "aria-label": H(D).clear,
270
+ onClick: F(le, ["stop"])
271
+ }, [
272
+ A(g, {
273
+ name: "x",
274
+ size: "0.75rem"
275
+ })
276
+ ], 8, ke)) : f("", !0),
277
+ A(g, {
278
+ name: "caret-down",
279
+ size: "1rem",
280
+ class: L(["cui-select__chevron", { "cui-select__chevron--open": s.value }])
281
+ }, null, 8, ["class"])
282
+ ])
283
+ ], 44, fe)
284
+ ], 6),
285
+ (n(), C(se, { to: "body" }, [
286
+ s.value ? (n(), u("div", {
287
+ key: 0,
288
+ ref_key: "dropdownRef",
289
+ ref: E,
290
+ class: "cui-select__dropdown",
291
+ role: "listbox",
292
+ "aria-multiselectable": a.multiple || void 0,
293
+ style: O([
294
+ U.value,
295
+ {
296
+ "--_sel-color": `var(--cui-${a.color})`,
297
+ "--_sel-font-size": V.value.fontSize
298
+ }
299
+ ])
300
+ }, [
301
+ a.loading ? (n(), u("div", xe, [
302
+ A(g, {
303
+ name: "spinner-gap",
304
+ size: "1rem",
305
+ class: "cui-select__spinner"
306
+ }),
307
+ S(" " + m(H(D).loading), 1)
308
+ ])) : h.value.length === 0 ? (n(), u("div", we, m(a.noOptionsText), 1)) : (n(!0), u(z, { key: 2 }, I(Q.value, (i) => (n(), u(z, {
309
+ key: i.group ?? "__ungrouped"
310
+ }, [
311
+ i.group ? (n(), u("div", Ve, m(i.group), 1)) : f("", !0),
312
+ (n(!0), u(z, null, I(i.options, (t) => {
313
+ var c, q;
314
+ return n(), u("div", {
315
+ key: String(t.value),
316
+ class: L(["cui-select__option", {
317
+ "cui-select__option--selected": $(t.value),
318
+ "cui-select__option--highlighted": ((c = d.value[r.value]) == null ? void 0 : c.value) === t.value,
319
+ "cui-select__option--disabled": t.disabled
320
+ }]),
321
+ "data-highlighted": ((q = d.value[r.value]) == null ? void 0 : q.value) === t.value ? "" : void 0,
322
+ role: "option",
323
+ "aria-selected": $(t.value),
324
+ "aria-disabled": t.disabled || void 0,
325
+ onClick: (ae) => T(t),
326
+ onMouseenter: (ae) => r.value = d.value.findIndex((oe) => oe.value === t.value)
327
+ }, [
328
+ a.multiple ? (n(), u("span", Se, [
329
+ $(t.value) ? (n(), C(g, {
330
+ key: 0,
331
+ name: "check",
332
+ size: "1rem"
333
+ })) : f("", !0)
334
+ ])) : f("", !0),
335
+ b("span", Ae, [
336
+ K(e.$slots, "option", { option: t }, () => [
337
+ t.icon ? (n(), C(g, {
338
+ key: 0,
339
+ name: t.icon,
340
+ size: "sm",
341
+ class: "cui-select__option-icon"
342
+ }, null, 8, ["name"])) : f("", !0),
343
+ S(" " + m(t.label), 1)
344
+ ], !0)
345
+ ])
346
+ ], 42, ze);
347
+ }), 128))
348
+ ], 64))), 128))
349
+ ], 12, _e)) : f("", !0)
350
+ ])),
351
+ a.error && a.errorMessage ? (n(), u("div", Ce, m(a.errorMessage), 1)) : f("", !0)
352
+ ], 512)), [
353
+ [ce, !a.hidden]
354
+ ]);
355
+ }
356
+ });
357
+ export {
358
+ De as default
359
+ };
@@ -0,0 +1,7 @@
1
+ import o from "./CuiSkeleton.vue2.js";
2
+ /* empty css */
3
+ import t from "../_virtual/_plugin-vue_export-helper.js";
4
+ const f = /* @__PURE__ */ t(o, [["__scopeId", "data-v-3ad2afb1"]]);
5
+ export {
6
+ f as default
7
+ };
@@ -0,0 +1,80 @@
1
+ import { defineComponent as f, computed as o, withDirectives as b, openBlock as i, createElementBlock as l, unref as y, Fragment as v, renderList as g, normalizeStyle as n, normalizeClass as s, vShow as _ } from "vue";
2
+ import { useMessages as w } from "../composables/useMessages.js";
3
+ const x = ["aria-label"], L = {
4
+ key: 0,
5
+ class: "cui-skeleton__text"
6
+ }, B = /* @__PURE__ */ f({
7
+ __name: "CuiSkeleton",
8
+ props: {
9
+ variant: { default: "text" },
10
+ animation: { default: "shimmer" },
11
+ lines: { default: 3 },
12
+ lastLineWidth: { default: "60%" },
13
+ width: { default: "100%" },
14
+ height: { default: "1rem" },
15
+ size: { default: "3rem" },
16
+ rounded: { default: "sm" },
17
+ hidden: { type: Boolean, default: !1 }
18
+ },
19
+ setup(e) {
20
+ const t = e, r = {
21
+ none: "0",
22
+ sm: "0.25rem",
23
+ md: "0.5rem",
24
+ lg: "0.75rem",
25
+ full: "9999px"
26
+ }, c = o(() => ({
27
+ width: t.width,
28
+ height: t.height,
29
+ borderRadius: r[t.rounded]
30
+ })), m = o(() => ({
31
+ width: t.size,
32
+ height: t.size,
33
+ borderRadius: "50%"
34
+ }));
35
+ function d(a) {
36
+ return {
37
+ width: a === t.lines - 1 && t.lines > 1 ? t.lastLineWidth : "100%",
38
+ height: "0.75rem",
39
+ borderRadius: "0.25rem"
40
+ };
41
+ }
42
+ const h = w();
43
+ return (a, k) => b((i(), l("div", {
44
+ role: "status",
45
+ "aria-busy": "true",
46
+ "aria-label": y(h).skeleton.label,
47
+ class: "cui-skeleton"
48
+ }, [
49
+ e.variant === "text" ? (i(), l("div", L, [
50
+ (i(!0), l(v, null, g(e.lines, (u) => (i(), l("div", {
51
+ key: u,
52
+ class: s(["cui-skeleton__line", {
53
+ "cui-skeleton__line--shimmer": e.animation === "shimmer",
54
+ "cui-skeleton__line--pulse": e.animation === "pulse"
55
+ }]),
56
+ style: n(d(u - 1))
57
+ }, null, 6))), 128))
58
+ ])) : e.variant === "rectangle" ? (i(), l("div", {
59
+ key: 1,
60
+ class: s(["cui-skeleton__block", {
61
+ "cui-skeleton__block--shimmer": e.animation === "shimmer",
62
+ "cui-skeleton__block--pulse": e.animation === "pulse"
63
+ }]),
64
+ style: n(c.value)
65
+ }, null, 6)) : (i(), l("div", {
66
+ key: 2,
67
+ class: s(["cui-skeleton__block", {
68
+ "cui-skeleton__block--shimmer": e.animation === "shimmer",
69
+ "cui-skeleton__block--pulse": e.animation === "pulse"
70
+ }]),
71
+ style: n(m.value)
72
+ }, null, 6))
73
+ ], 8, x)), [
74
+ [_, !e.hidden]
75
+ ]);
76
+ }
77
+ });
78
+ export {
79
+ B as default
80
+ };
@@ -0,0 +1,109 @@
1
+ import { defineComponent as z, useTemplateRef as S, computed as i, openBlock as a, createBlock as N, Teleport as I, unref as o, withDirectives as O, createElementBlock as u, createVNode as n, createElementVNode as $, normalizeStyle as D, Fragment as E, withCtx as V, renderSlot as p, vShow as M, createCommentVNode as R } from "vue";
2
+ import { useOverlay as G } from "../composables/useOverlay.js";
3
+ import H from "./CuiBackdrop.vue.js";
4
+ import K from "./CuiModalHeader.vue.js";
5
+ import T from "./CuiModalBody.vue.js";
6
+ const X = ["aria-labelledby"], j = /* @__PURE__ */ z({
7
+ __name: "CuiSlideover",
8
+ props: {
9
+ visible: { type: Boolean, default: !1 },
10
+ side: { default: "right" },
11
+ size: { default: "md" },
12
+ title: {},
13
+ persistent: { type: Boolean, default: !1 },
14
+ noCloseButton: { type: Boolean, default: !1 },
15
+ allowNested: { type: Boolean, default: !1 },
16
+ backdropOpacity: { default: 0.5 },
17
+ backdropBlur: { default: "none" },
18
+ backdropColor: { default: "black" },
19
+ backdropImage: {},
20
+ backdropGradient: {},
21
+ hidden: { type: Boolean, default: !1 }
22
+ },
23
+ emits: ["update:visible", "close"],
24
+ setup(l, { emit: b }) {
25
+ const t = l, s = b, v = S("panelEl"), { isVisible: h, isAnimating: r, closeOverlay: y, onBackdropClick: g, onKeydown: d } = G({
26
+ open: () => t.visible,
27
+ dialogRef: v,
28
+ persistent: () => t.persistent,
29
+ allowNested: () => t.allowNested,
30
+ animationDuration: 250,
31
+ onUpdateOpen: (e) => s("update:visible", e),
32
+ onClose: () => s("close")
33
+ }), c = i(() => t.side === "left" || t.side === "right"), k = {
34
+ sm: "20rem",
35
+ // 320px
36
+ md: "28rem",
37
+ // 448px
38
+ lg: "36rem",
39
+ // 576px
40
+ xl: "48rem",
41
+ // 768px
42
+ full: "100vw"
43
+ }, w = {
44
+ sm: "25vh",
45
+ md: "40vh",
46
+ lg: "60vh",
47
+ xl: "80vh",
48
+ full: "100vh"
49
+ }, f = i(() => (c.value ? k : w)[t.size] ?? t.size), C = i(() => {
50
+ const e = {
51
+ position: "absolute",
52
+ zIndex: "2",
53
+ display: "flex",
54
+ flexDirection: "column",
55
+ background: "var(--cui-surface-base)",
56
+ boxShadow: "0 16px 48px rgb(0 0 0 / 0.15)",
57
+ outline: "none",
58
+ overflow: "hidden",
59
+ transition: "transform 0.25s ease"
60
+ };
61
+ return c.value ? (e.width = f.value, e.maxWidth = t.size === "full" ? "100vw" : "calc(100vw - 2rem)", e.top = "0", e.height = "100%") : (e.height = f.value, e.maxHeight = t.size === "full" ? "100vh" : "calc(100vh - 2rem)", e.left = "0", e.width = "100%"), t.side === "right" ? e.right = "0" : t.side === "left" ? e.left = "0" : t.side === "top" ? e.top = "0" : t.side === "bottom" && (e.bottom = "0"), r.value ? e.transform = "translate(0)" : t.side === "right" ? e.transform = "translateX(100%)" : t.side === "left" ? e.transform = "translateX(-100%)" : t.side === "top" ? e.transform = "translateY(-100%)" : t.side === "bottom" && (e.transform = "translateY(100%)"), e;
62
+ }), x = `cui-slideover-title-${Math.random().toString(36).slice(2, 8)}`;
63
+ return (e, m) => (a(), N(I, { to: "body" }, [
64
+ o(h) ? O((a(), u("div", {
65
+ key: 0,
66
+ style: { position: "fixed", inset: "0", zIndex: "9990" },
67
+ onKeydown: m[0] || (m[0] = //@ts-ignore
68
+ (...B) => o(d) && o(d)(...B))
69
+ }, [
70
+ n(H, {
71
+ visible: o(r),
72
+ opacity: l.backdropOpacity,
73
+ blur: l.backdropBlur,
74
+ color: l.backdropColor,
75
+ image: l.backdropImage,
76
+ gradient: l.backdropGradient,
77
+ onClick: o(g)
78
+ }, null, 8, ["visible", "opacity", "blur", "color", "image", "gradient", "onClick"]),
79
+ $("div", {
80
+ ref: "panelEl",
81
+ style: D(C.value),
82
+ role: "dialog",
83
+ "aria-modal": "true",
84
+ "aria-labelledby": l.title ? x : void 0,
85
+ tabindex: "-1"
86
+ }, [
87
+ l.title ? (a(), u(E, { key: 0 }, [
88
+ n(K, {
89
+ title: l.title,
90
+ "no-close-button": l.noCloseButton,
91
+ onClose: o(y)
92
+ }, null, 8, ["title", "no-close-button", "onClose"]),
93
+ n(T, null, {
94
+ default: V(() => [
95
+ p(e.$slots, "default")
96
+ ]),
97
+ _: 3
98
+ })
99
+ ], 64)) : p(e.$slots, "default", { key: 1 })
100
+ ], 12, X)
101
+ ], 544)), [
102
+ [M, !l.hidden]
103
+ ]) : R("", !0)
104
+ ]));
105
+ }
106
+ });
107
+ export {
108
+ j as default
109
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./CuiSlideover.vue.js";
2
+ export {
3
+ f as default
4
+ };