@bitrix24/b24ui-nuxt 0.6.8 → 0.7.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 (201) hide show
  1. package/.nuxt/b24ui/accordion.ts +20 -0
  2. package/.nuxt/b24ui/advice.ts +2 -10
  3. package/.nuxt/b24ui/alert.ts +2 -15
  4. package/.nuxt/b24ui/avatar-group.ts +2 -10
  5. package/.nuxt/b24ui/avatar.ts +3 -11
  6. package/.nuxt/b24ui/badge.ts +48 -13
  7. package/.nuxt/b24ui/button-group.ts +2 -22
  8. package/.nuxt/b24ui/button.ts +4 -17
  9. package/.nuxt/b24ui/calendar.ts +3 -11
  10. package/.nuxt/b24ui/checkbox.ts +75 -11
  11. package/.nuxt/b24ui/chip.ts +2 -10
  12. package/.nuxt/b24ui/collapsible.ts +2 -10
  13. package/.nuxt/b24ui/container.ts +2 -10
  14. package/.nuxt/b24ui/countdown.ts +2 -10
  15. package/.nuxt/b24ui/description-list.ts +2 -15
  16. package/.nuxt/b24ui/dropdown-menu.ts +4 -11
  17. package/.nuxt/b24ui/form-field.ts +3 -10
  18. package/.nuxt/b24ui/form.ts +2 -10
  19. package/.nuxt/b24ui/index.ts +1 -0
  20. package/.nuxt/b24ui/input-menu.ts +6 -30
  21. package/.nuxt/b24ui/input-number.ts +15 -10
  22. package/.nuxt/b24ui/input.ts +4 -17
  23. package/.nuxt/b24ui/kbd.ts +2 -10
  24. package/.nuxt/b24ui/link.ts +11 -17
  25. package/.nuxt/b24ui/modal.ts +3 -11
  26. package/.nuxt/b24ui/navbar-divider.ts +2 -10
  27. package/.nuxt/b24ui/navbar-section.ts +2 -10
  28. package/.nuxt/b24ui/navbar-spacer.ts +2 -10
  29. package/.nuxt/b24ui/navbar.ts +2 -10
  30. package/.nuxt/b24ui/navigation-menu.ts +69 -60
  31. package/.nuxt/b24ui/popover.ts +2 -10
  32. package/.nuxt/b24ui/progress.ts +2 -10
  33. package/.nuxt/b24ui/radio-group.ts +3 -11
  34. package/.nuxt/b24ui/range.ts +2 -10
  35. package/.nuxt/b24ui/select-menu.ts +10 -40
  36. package/.nuxt/b24ui/select.ts +10 -40
  37. package/.nuxt/b24ui/separator.ts +2 -10
  38. package/.nuxt/b24ui/sidebar-body.ts +2 -10
  39. package/.nuxt/b24ui/sidebar-footer.ts +2 -10
  40. package/.nuxt/b24ui/sidebar-header.ts +2 -10
  41. package/.nuxt/b24ui/sidebar-heading.ts +2 -10
  42. package/.nuxt/b24ui/sidebar-layout.ts +3 -11
  43. package/.nuxt/b24ui/sidebar-section.ts +2 -10
  44. package/.nuxt/b24ui/sidebar-spacer.ts +2 -10
  45. package/.nuxt/b24ui/sidebar.ts +2 -10
  46. package/.nuxt/b24ui/skeleton.ts +2 -10
  47. package/.nuxt/b24ui/slideover.ts +2 -10
  48. package/.nuxt/b24ui/stacked-layout.ts +2 -10
  49. package/.nuxt/b24ui/switch.ts +2 -10
  50. package/.nuxt/b24ui/tabs.ts +6 -13
  51. package/.nuxt/b24ui/textarea.ts +4 -17
  52. package/.nuxt/b24ui/toast.ts +2 -15
  53. package/.nuxt/b24ui/toaster.ts +3 -11
  54. package/.nuxt/b24ui/tooltip.ts +3 -11
  55. package/.nuxt/b24ui.css +1 -1
  56. package/cli/templates.mjs +2 -2
  57. package/dist/meta.d.mts +35333 -15836
  58. package/dist/meta.mjs +35333 -15836
  59. package/dist/module.json +1 -1
  60. package/dist/module.mjs +11 -3
  61. package/dist/runtime/air-design-tokens.css +1 -0
  62. package/dist/runtime/components/Accordion.vue +96 -0
  63. package/dist/runtime/components/Accordion.vue.d.ts +78 -0
  64. package/dist/runtime/components/Advice.vue +1 -1
  65. package/dist/runtime/components/Alert.vue +1 -1
  66. package/dist/runtime/components/App.vue +1 -1
  67. package/dist/runtime/components/Avatar.vue +11 -3
  68. package/dist/runtime/components/Avatar.vue.d.ts +2 -1
  69. package/dist/runtime/components/AvatarGroup.vue +1 -1
  70. package/dist/runtime/components/Badge.vue +5 -3
  71. package/dist/runtime/components/Badge.vue.d.ts +2 -0
  72. package/dist/runtime/components/Button.vue +2 -3
  73. package/dist/runtime/components/Button.vue.d.ts +1 -1
  74. package/dist/runtime/components/Calendar.vue +1 -1
  75. package/dist/runtime/components/Checkbox.vue +13 -4
  76. package/dist/runtime/components/Checkbox.vue.d.ts +9 -0
  77. package/dist/runtime/components/Chip.vue +1 -1
  78. package/dist/runtime/components/Collapsible.vue +1 -1
  79. package/dist/runtime/components/Countdown.vue +1 -1
  80. package/dist/runtime/components/Countdown.vue.d.ts +2 -2
  81. package/dist/runtime/components/DescriptionList.vue +3 -2
  82. package/dist/runtime/components/DescriptionList.vue.d.ts +1 -1
  83. package/dist/runtime/components/DropdownMenu.vue +1 -1
  84. package/dist/runtime/components/DropdownMenu.vue.d.ts +2 -0
  85. package/dist/runtime/components/DropdownMenuContent.vue +74 -72
  86. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +4 -20
  87. package/dist/runtime/components/Form.vue +6 -6
  88. package/dist/runtime/components/Form.vue.d.ts +12 -11
  89. package/dist/runtime/components/FormField.vue +4 -4
  90. package/dist/runtime/components/Input.vue +12 -8
  91. package/dist/runtime/components/Input.vue.d.ts +31 -30
  92. package/dist/runtime/components/InputMenu.vue +23 -20
  93. package/dist/runtime/components/InputMenu.vue.d.ts +6 -4
  94. package/dist/runtime/components/InputNumber.vue +17 -10
  95. package/dist/runtime/components/InputNumber.vue.d.ts +6 -3
  96. package/dist/runtime/components/Link.vue +5 -13
  97. package/dist/runtime/components/Modal.vue +22 -14
  98. package/dist/runtime/components/Modal.vue.d.ts +18 -5
  99. package/dist/runtime/components/Navbar.vue +1 -1
  100. package/dist/runtime/components/NavbarDivider.vue +1 -1
  101. package/dist/runtime/components/NavbarSection.vue +1 -1
  102. package/dist/runtime/components/NavbarSpacer.vue +1 -1
  103. package/dist/runtime/components/NavigationMenu.vue +186 -44
  104. package/dist/runtime/components/NavigationMenu.vue.d.ts +39 -8
  105. package/dist/runtime/components/OverlayProvider.vue +2 -2
  106. package/dist/runtime/components/Popover.vue +4 -0
  107. package/dist/runtime/components/Popover.vue.d.ts +2 -1
  108. package/dist/runtime/components/Progress.vue +3 -2
  109. package/dist/runtime/components/Progress.vue.d.ts +2 -2
  110. package/dist/runtime/components/RadioGroup.vue +24 -8
  111. package/dist/runtime/components/RadioGroup.vue.d.ts +3 -1
  112. package/dist/runtime/components/Range.vue +2 -2
  113. package/dist/runtime/components/Range.vue.d.ts +19 -20
  114. package/dist/runtime/components/Select.vue +57 -31
  115. package/dist/runtime/components/Select.vue.d.ts +110 -2
  116. package/dist/runtime/components/SelectMenu.vue +77 -23
  117. package/dist/runtime/components/SelectMenu.vue.d.ts +111 -5
  118. package/dist/runtime/components/Separator.vue +3 -3
  119. package/dist/runtime/components/Sidebar.vue +1 -1
  120. package/dist/runtime/components/SidebarBody.vue +1 -1
  121. package/dist/runtime/components/SidebarFooter.vue +1 -1
  122. package/dist/runtime/components/SidebarHeader.vue +1 -1
  123. package/dist/runtime/components/SidebarHeading.vue +1 -1
  124. package/dist/runtime/components/SidebarLayout.vue +1 -1
  125. package/dist/runtime/components/SidebarSection.vue +1 -1
  126. package/dist/runtime/components/SidebarSpacer.vue +1 -1
  127. package/dist/runtime/components/Slideover.vue +23 -15
  128. package/dist/runtime/components/Slideover.vue.d.ts +18 -5
  129. package/dist/runtime/components/StackedLayout.vue +1 -1
  130. package/dist/runtime/components/Switch.vue +1 -1
  131. package/dist/runtime/components/Tabs.vue +28 -7
  132. package/dist/runtime/components/Tabs.vue.d.ts +6 -1
  133. package/dist/runtime/components/Textarea.vue +13 -9
  134. package/dist/runtime/components/Textarea.vue.d.ts +31 -30
  135. package/dist/runtime/components/Toast.vue +7 -6
  136. package/dist/runtime/components/Toast.vue.d.ts +6 -0
  137. package/dist/runtime/components/Toaster.vue +4 -4
  138. package/dist/runtime/components/Toaster.vue.d.ts +6 -0
  139. package/dist/runtime/components/Tooltip.vue +9 -2
  140. package/dist/runtime/components/Tooltip.vue.d.ts +2 -1
  141. package/dist/runtime/components/content/TableWrapper.vue +1 -1
  142. package/dist/runtime/composables/defineLocale.d.ts +2 -0
  143. package/dist/runtime/composables/defineLocale.js +4 -0
  144. package/dist/runtime/composables/defineShortcuts.js +8 -2
  145. package/dist/runtime/composables/useFormField.d.ts +1 -1
  146. package/dist/runtime/composables/useFormField.js +2 -1
  147. package/dist/runtime/composables/useKbd.d.ts +1 -0
  148. package/dist/runtime/composables/useKbd.js +4 -3
  149. package/dist/runtime/composables/useOverlay.d.ts +11 -11
  150. package/dist/runtime/composables/useOverlay.js +17 -11
  151. package/dist/runtime/index.css +1 -1
  152. package/dist/runtime/inertia/components/Link.vue +45 -60
  153. package/dist/runtime/inertia/components/Link.vue.d.ts +1 -1
  154. package/dist/runtime/inertia/components/LinkBase.vue +68 -0
  155. package/dist/runtime/inertia/components/LinkBase.vue.d.ts +25 -0
  156. package/dist/runtime/inertia/stubs.d.ts +1 -1
  157. package/dist/runtime/inertia/stubs.js +1 -1
  158. package/dist/runtime/prose/A.vue +1 -1
  159. package/dist/runtime/prose/Blockquote.vue +1 -1
  160. package/dist/runtime/prose/Code.vue +1 -1
  161. package/dist/runtime/prose/Em.vue +1 -1
  162. package/dist/runtime/prose/H1.vue +1 -1
  163. package/dist/runtime/prose/H2.vue +1 -1
  164. package/dist/runtime/prose/H3.vue +1 -1
  165. package/dist/runtime/prose/H4.vue +1 -1
  166. package/dist/runtime/prose/H5.vue +1 -1
  167. package/dist/runtime/prose/H6.vue +1 -1
  168. package/dist/runtime/prose/Hr.vue +1 -1
  169. package/dist/runtime/prose/Img.vue +1 -1
  170. package/dist/runtime/prose/Li.vue +1 -1
  171. package/dist/runtime/prose/Ol.vue +1 -1
  172. package/dist/runtime/prose/P.vue +1 -1
  173. package/dist/runtime/prose/Pre.vue +1 -1
  174. package/dist/runtime/prose/Strong.vue +1 -1
  175. package/dist/runtime/prose/Table.vue +1 -1
  176. package/dist/runtime/prose/Tbody.vue +1 -1
  177. package/dist/runtime/prose/Td.vue +1 -1
  178. package/dist/runtime/prose/Th.vue +1 -1
  179. package/dist/runtime/prose/Thead.vue +1 -1
  180. package/dist/runtime/prose/Tr.vue +1 -1
  181. package/dist/runtime/prose/Ul.vue +1 -1
  182. package/dist/runtime/types/form.d.ts +11 -10
  183. package/dist/runtime/types/index.d.ts +1 -0
  184. package/dist/runtime/types/index.js +1 -0
  185. package/dist/runtime/types/locale.d.ts +1 -0
  186. package/dist/runtime/types/tv.d.ts +53 -0
  187. package/dist/runtime/types/tv.js +0 -0
  188. package/dist/runtime/types/utils.d.ts +4 -51
  189. package/dist/runtime/types/utils.js +1 -0
  190. package/dist/runtime/utils/link.d.ts +1 -0
  191. package/dist/runtime/utils/link.js +12 -0
  192. package/dist/runtime/vue/components/Link.vue +26 -40
  193. package/dist/runtime/vue/composables/useAppConfig.js +3 -1
  194. package/dist/runtime/vue/stubs.d.ts +1 -1
  195. package/dist/runtime/vue/stubs.js +1 -1
  196. package/dist/shared/{b24ui-nuxt.jU270f-Q.mjs → b24ui-nuxt.CxsFEY3M.mjs} +268 -122
  197. package/dist/unplugin.d.mts +2 -2
  198. package/dist/unplugin.mjs +6 -3
  199. package/dist/vite.d.mts +1 -1
  200. package/dist/vite.mjs +2 -2
  201. package/package.json +30 -29
@@ -10,13 +10,12 @@ function _useOverlay() {
10
10
  component: markRaw(component),
11
11
  isMounted: !!defaultOpen,
12
12
  destroyOnClose: !!destroyOnClose,
13
- props: props || {}
13
+ originalProps: props || {},
14
+ props: { ...props || {} }
14
15
  });
15
16
  overlays.push(options);
16
17
  return {
17
18
  ...options,
18
- result: new Promise(() => {
19
- }),
20
19
  open: (props2) => open(options.id, props2),
21
20
  close: (value) => close(options.id, value),
22
21
  patch: (props2) => patch(options.id, props2)
@@ -26,6 +25,8 @@ function _useOverlay() {
26
25
  const overlay = getOverlay(id);
27
26
  if (props) {
28
27
  patch(overlay.id, props);
28
+ } else {
29
+ patch(overlay.id, overlay.originalProps);
29
30
  }
30
31
  overlay.isOpen = true;
31
32
  overlay.isMounted = true;
@@ -33,9 +34,7 @@ function _useOverlay() {
33
34
  id,
34
35
  isMounted: overlay.isMounted,
35
36
  isOpen: overlay.isOpen,
36
- result: new Promise((resolve) => {
37
- overlay.resolvePromise = resolve;
38
- })
37
+ result: new Promise((resolve) => overlay.resolvePromise = resolve)
39
38
  };
40
39
  };
41
40
  const close = (id, value) => {
@@ -46,7 +45,10 @@ function _useOverlay() {
46
45
  overlay.resolvePromise = void 0;
47
46
  }
48
47
  };
49
- const unMount = (id) => {
48
+ const closeAll = () => {
49
+ overlays.forEach((overlay) => close(overlay.id));
50
+ };
51
+ const unmount = (id) => {
50
52
  const overlay = getOverlay(id);
51
53
  overlay.isMounted = false;
52
54
  if (overlay.destroyOnClose) {
@@ -56,9 +58,7 @@ function _useOverlay() {
56
58
  };
57
59
  const patch = (id, props) => {
58
60
  const overlay = getOverlay(id);
59
- Object.entries(props).forEach(([key, value]) => {
60
- overlay.props[key] = value;
61
- });
61
+ overlay.props = { ...props };
62
62
  };
63
63
  const getOverlay = (id) => {
64
64
  const overlay = overlays.find((overlay2) => overlay2.id === id);
@@ -67,13 +67,19 @@ function _useOverlay() {
67
67
  }
68
68
  return overlay;
69
69
  };
70
+ const isOpen = (id) => {
71
+ const overlay = getOverlay(id);
72
+ return overlay.isOpen;
73
+ };
70
74
  return {
71
75
  overlays,
72
76
  open,
73
77
  close,
78
+ closeAll,
74
79
  create,
75
80
  patch,
76
- unMount
81
+ unmount,
82
+ isOpen
77
83
  };
78
84
  }
79
85
  export const useOverlay = /* @__PURE__ */ createSharedComposable(_useOverlay);
@@ -1 +1 @@
1
- @plugin "@bitrix24/b24style";@import "#build/b24ui.css";@import "./keyframes.css";@variant light (&:where(.light, .light *));@variant dark (&:where(.dark, .dark *));@layer base{--b24ui-header-height:calc(var(--spacing)*16);body{@apply antialiased scheme-light dark:scheme-dark}}@layer theme{:host,:root{--spacing:.25rem}}.scrollbar-thin{scrollbar-width:thin}.scrollbar-transparent{scrollbar-color:transparent transparent;scrollbar-gutter:stable}.scrollbar-transparent:hover{scrollbar-color:rgba(82,92,105,.36) transparent}.dark .scrollbar-transparent{scrollbar-color:rgba(0,0,0,.21) transparent}.dark .scrollbar-transparent:hover{scrollbar-color:#515a67 transparent}.clip-path-viewport-wrapper{clip-path:inset(0 -24px -28px -24px round 10px)}
1
+ @plugin "@bitrix24/b24style";@import "#build/b24ui.css";@import "./keyframes.css";@import "./air-design-tokens.css";@variant light (&:where(.light, .light *));@variant dark (&:where(.dark, .dark *));@layer base{--b24ui-header-height:calc(var(--spacing)*16);body{@apply antialiased scheme-light dark:scheme-dark}}@layer theme{:host,:root{--spacing:.25rem}}.scrollbar-thin{scrollbar-width:thin}.scrollbar-transparent{scrollbar-color:transparent transparent;scrollbar-gutter:stable}.scrollbar-transparent:hover{scrollbar-color:rgba(82,92,105,.36) transparent}.dark .scrollbar-transparent{scrollbar-color:rgba(0,0,0,.21) transparent}.dark .scrollbar-transparent:hover{scrollbar-color:#515a67 transparent}.clip-path-viewport-wrapper{clip-path:inset(0 -24px -28px -24px round 10px)}
@@ -7,7 +7,7 @@ import { computed } from "vue";
7
7
  import { defu } from "defu";
8
8
  import { useForwardProps } from "reka-ui";
9
9
  import { reactiveOmit } from "@vueuse/core";
10
- import { usePage, Link as InertiaLink } from "@inertiajs/vue3";
10
+ import { usePage } from "@inertiajs/vue3";
11
11
  import { hasProtocol } from "ufo";
12
12
  import { useAppConfig } from "#imports";
13
13
  import { tv } from "../../utils/tv";
@@ -33,7 +33,6 @@ const props = defineProps({
33
33
  data: { type: Object, required: false },
34
34
  method: { type: String, required: false },
35
35
  headers: { type: Object, required: false },
36
- onClick: { type: Function, required: false },
37
36
  preserveScroll: { type: [Boolean, String, Function], required: false },
38
37
  preserveState: { type: [Boolean, String, Function], required: false },
39
38
  replace: { type: Boolean, required: false },
@@ -53,8 +52,9 @@ const props = defineProps({
53
52
  cacheFor: { type: [Number, String, Array], required: false }
54
53
  });
55
54
  defineSlots();
55
+ const page = usePage();
56
56
  const appConfig = useAppConfig();
57
- const routerLinkProps = useForwardProps(reactiveOmit(props, "as", "type", "disabled", "active", "exact", "activeClass", "inactiveClass", "to", "raw", "class"));
57
+ const routerLinkProps = useForwardProps(reactiveOmit(props, "as", "type", "disabled", "active", "exact", "activeClass", "inactiveClass", "to", "href", "raw", "custom", "class"));
58
58
  const b24ui = computed(() => tv({
59
59
  extend: tv(theme),
60
60
  ...defu({
@@ -66,12 +66,33 @@ const b24ui = computed(() => tv({
66
66
  }
67
67
  }, appConfig.b24ui?.link || {})
68
68
  }));
69
+ const href = computed(() => props.to ?? props.href);
69
70
  const isExternal = computed(() => {
70
- if (!props.to) return false;
71
- return typeof props.to === "string" && hasProtocol(props.to, { acceptRelative: true });
71
+ if (props.external) {
72
+ return true;
73
+ }
74
+ if (!href.value) {
75
+ return false;
76
+ }
77
+ return typeof href.value === "string" && hasProtocol(href.value, { acceptRelative: true });
78
+ });
79
+ const isLinkActive = computed(() => {
80
+ if (props.active !== void 0) {
81
+ return props.active;
82
+ }
83
+ if (!href.value) {
84
+ return false;
85
+ }
86
+ if (props.exact && page.url === href.value) {
87
+ return true;
88
+ }
89
+ if (!props.exact && page.url.startsWith(href.value)) {
90
+ return true;
91
+ }
92
+ return false;
72
93
  });
73
94
  const linkClass = computed(() => {
74
- const active = isActive.value;
95
+ const active = isLinkActive.value;
75
96
  if (props.raw) {
76
97
  return [props.class, active ? props.activeClass : props.inactiveClass];
77
98
  }
@@ -82,72 +103,36 @@ const linkClass = computed(() => {
82
103
  isAction: Boolean(props.isAction)
83
104
  });
84
105
  });
85
- const page = usePage();
86
- const url = computed(() => props.to ?? props.href ?? "#");
87
- const isActive = computed(() => props.active || (props.exact ? url.value === props.href : page?.url.startsWith(url.value)));
88
106
  </script>
89
107
 
90
108
  <template>
91
- <template v-if="!isExternal">
92
- <InertiaLink v-bind="routerLinkProps" :href="url" custom>
93
- <template v-if="custom">
94
- <slot
95
- v-bind="{
96
- ...$attrs,
97
- as,
98
- type,
99
- disabled,
100
- href: url,
101
- active: isActive
102
- }"
103
- />
104
- </template>
105
- <B24LinkBase
106
- v-else
107
- v-bind="{
109
+ <template v-if="custom">
110
+ <slot
111
+ v-bind="{
108
112
  ...$attrs,
113
+ ...routerLinkProps,
109
114
  as,
110
115
  type,
111
116
  disabled,
112
- href: url,
113
- active: isActive
117
+ href,
118
+ active: isLinkActive,
119
+ isExternal
114
120
  }"
115
- :class="linkClass"
116
- >
117
- <slot :active="isActive" />
118
- </B24LinkBase>
119
- </InertiaLink>
121
+ />
120
122
  </template>
121
-
122
- <template v-else>
123
- <template v-if="custom">
124
- <slot
125
- v-bind="{
123
+ <B24LinkBase
124
+ v-else
125
+ v-bind="{
126
126
  ...$attrs,
127
+ ...routerLinkProps,
127
128
  as,
128
129
  type,
129
130
  disabled,
130
- href: to,
131
- target: isExternal ? '_blank' : void 0,
132
- active: isActive
131
+ href,
132
+ isExternal
133
133
  }"
134
- />
135
- </template>
136
- <B24LinkBase
137
- v-else
138
- v-bind="{
139
- ...$attrs,
140
- as,
141
- type,
142
- disabled,
143
- href: url,
144
- target: isExternal ? '_blank' : void 0,
145
- active: isActive
146
- }"
147
- :is-external="isExternal"
148
- :class="linkClass"
149
- >
150
- <slot :active="isActive" />
151
- </B24LinkBase>
152
- </template>
134
+ :class="linkClass"
135
+ >
136
+ <slot :active="isLinkActive" />
137
+ </B24LinkBase>
153
138
  </template>
@@ -1,6 +1,6 @@
1
1
  import type { ButtonHTMLAttributes } from 'vue';
2
2
  import type { InertiaLinkProps } from '@inertiajs/vue3';
3
- interface NuxtLinkProps extends Omit<InertiaLinkProps, 'href'> {
3
+ interface NuxtLinkProps extends Omit<InertiaLinkProps, 'href' | 'onClick'> {
4
4
  activeClass?: string;
5
5
  /**
6
6
  * Route Location the link should navigate to when clicked on.
@@ -0,0 +1,68 @@
1
+ <script>
2
+
3
+ </script>
4
+
5
+ <script setup>
6
+ import { Primitive } from "reka-ui";
7
+ import { Link as InertiaLink } from "@inertiajs/vue3";
8
+ defineOptions({ inheritAttrs: false });
9
+ const props = defineProps({
10
+ as: { type: String, required: false, default: "button" },
11
+ type: { type: String, required: false, default: "button" },
12
+ disabled: { type: Boolean, required: false },
13
+ onClick: { type: [Function, Array], required: false },
14
+ href: { type: String, required: false },
15
+ target: { type: [String, Object, null], required: false },
16
+ active: { type: Boolean, required: false },
17
+ isExternal: { type: Boolean, required: false }
18
+ });
19
+ function onClickWrapper(e) {
20
+ if (props.disabled) {
21
+ e.stopPropagation();
22
+ e.preventDefault();
23
+ return;
24
+ }
25
+ if (props.onClick) {
26
+ for (const onClick of Array.isArray(props.onClick) ? props.onClick : [props.onClick]) {
27
+ onClick(e);
28
+ }
29
+ }
30
+ }
31
+ </script>
32
+
33
+ <template>
34
+ <InertiaLink
35
+ v-if="!!href && !isExternal && !disabled"
36
+ :href="href"
37
+ v-bind="{
38
+ target: target || (isExternal ? '_blank' : void 0),
39
+ ...$attrs
40
+ }"
41
+ @click="onClickWrapper"
42
+ >
43
+ <slot />
44
+ </InertiaLink>
45
+ <Primitive
46
+ v-else
47
+ v-bind="href ? {
48
+ 'as': 'a',
49
+ 'href': disabled ? void 0 : href,
50
+ 'aria-disabled': disabled ? 'true' : void 0,
51
+ 'role': disabled ? 'link' : void 0,
52
+ 'tabindex': disabled ? -1 : void 0,
53
+ 'target': target || (isExternal ? '_blank' : void 0),
54
+ ...$attrs
55
+ } : as === 'button' ? {
56
+ as,
57
+ type,
58
+ disabled,
59
+ ...$attrs
60
+ } : {
61
+ as,
62
+ ...$attrs
63
+ }"
64
+ @click="onClickWrapper"
65
+ >
66
+ <slot />
67
+ </Primitive>
68
+ </template>
@@ -0,0 +1,25 @@
1
+ import type { LinkProps } from '../../types';
2
+ export interface LinkBaseProps {
3
+ as?: string;
4
+ type?: string;
5
+ disabled?: boolean;
6
+ onClick?: ((e: MouseEvent) => void | Promise<void>) | Array<((e: MouseEvent) => void | Promise<void>)>;
7
+ href?: string;
8
+ target?: LinkProps['target'];
9
+ active?: boolean;
10
+ isExternal?: boolean;
11
+ }
12
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<LinkBaseProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LinkBaseProps> & Readonly<{}>, {
13
+ as: string;
14
+ type: string;
15
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
16
+ default?: (props: {}) => any;
17
+ } & {
18
+ default?: (props: {}) => any;
19
+ }>;
20
+ export default _default;
21
+ type __VLS_WithSlots<T, S> = T & {
22
+ new (): {
23
+ $slots: S;
24
+ };
25
+ };
@@ -1,6 +1,7 @@
1
1
  import type { Ref } from 'vue';
2
2
  import type { NuxtApp } from '#app';
3
3
  export { useHead } from '@unhead/vue';
4
+ export { useAppConfig } from '../vue/composables/useAppConfig';
4
5
  export { defineShortcuts } from '../composables/defineShortcuts';
5
6
  export { defineLocale } from '../composables/defineLocale';
6
7
  export { useLocale } from '../composables/useLocale';
@@ -19,7 +20,6 @@ export declare const useColorMode: () => {
19
20
  readonly value: import("@vueuse/core").BasicColorMode;
20
21
  forced: boolean;
21
22
  };
22
- export declare const useAppConfig: () => any;
23
23
  export declare const useCookie: <T = string>(_name: string, _options?: Record<string, any>) => {
24
24
  value: Ref<T, T>;
25
25
  get: () => T;
@@ -4,6 +4,7 @@ import appConfig from "#build/app.config";
4
4
  import { useColorMode as useColorModeVueUse } from "@vueuse/core";
5
5
  import { usePage } from "@inertiajs/vue3";
6
6
  export { useHead } from "@unhead/vue";
7
+ export { useAppConfig } from "../vue/composables/useAppConfig.js";
7
8
  export { defineShortcuts } from "../composables/defineShortcuts.js";
8
9
  export { defineLocale } from "../composables/defineLocale.js";
9
10
  export { useLocale } from "../composables/useLocale.js";
@@ -37,7 +38,6 @@ export const useColorMode = () => {
37
38
  forced: false
38
39
  };
39
40
  };
40
- export const useAppConfig = () => appConfig;
41
41
  export const useCookie = (_name, _options = {}) => {
42
42
  const value = ref(null);
43
43
  return {
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <a :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <a :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </a>
22
22
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <blockquote :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <blockquote :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </blockquote>
22
22
  </template>
@@ -20,6 +20,6 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
20
20
 
21
21
  <template>
22
22
  <code
23
- :class="b24ui.base({ class: [props.class, props.b24ui?.base] })"
23
+ :class="b24ui.base({ class: [props.b24ui?.base, props.class] })"
24
24
  ><slot /></code>
25
25
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <em :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <em :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </em>
22
22
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <h1 :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <h1 :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </h1>
22
22
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <h2 :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <h2 :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </h2>
22
22
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <h3 :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <h3 :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </h3>
22
22
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <h4 :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <h4 :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </h4>
22
22
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <h5 :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <h5 :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </h5>
22
22
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <h6 :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <h6 :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </h6>
22
22
  </template>
@@ -15,5 +15,5 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
15
15
  </script>
16
16
 
17
17
  <template>
18
- <hr :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
18
+ <hr :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
19
19
  </template>
@@ -15,5 +15,5 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
15
15
  </script>
16
16
 
17
17
  <template>
18
- <img :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
18
+ <img :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
19
19
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <li :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <li :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </li>
22
22
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <ol :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <ol :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </ol>
22
22
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <p :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <p :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </p>
22
22
  </template>
@@ -20,7 +20,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
20
20
  </script>
21
21
 
22
22
  <template>
23
- <Primitive :as="as" :class="b24ui.root({ class: [props.class, props.b24ui?.root] })" :style="props.style">
23
+ <Primitive :as="as" :class="b24ui.root({ class: [props.b24ui?.root, props.class] })" :style="props.style">
24
24
  <pre
25
25
  :class="b24ui.base({ class: props.b24ui?.base })"
26
26
  ><slot /></pre>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <strong :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <strong :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </strong>
22
22
  </template>
@@ -25,7 +25,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
25
25
  <template>
26
26
  <B24TableWrapper
27
27
  :as="as"
28
- :class="b24ui.root({ class: [props.class, props.b24ui?.root] })"
28
+ :class="b24ui.root({ class: [props.b24ui?.root, props.class] })"
29
29
  :zebra="props.zebra"
30
30
  :row-hover="props.rowHover"
31
31
  :rounded="props.rounded"
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <tbody :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <tbody :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </tbody>
22
22
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <td :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <td :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </td>
22
22
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <th :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <th :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </th>
22
22
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <thead :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <thead :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </thead>
22
22
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <tr :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <tr :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </tr>
22
22
  </template>
@@ -16,7 +16,7 @@ const b24ui = computed(() => tv({ extend: tv(theme), ...appConfig.b24ui?.prose?.
16
16
  </script>
17
17
 
18
18
  <template>
19
- <ul :class="b24ui.base({ class: [props.class, props.b24ui?.base] })">
19
+ <ul :class="b24ui.base({ class: [props.b24ui?.base, props.class] })">
20
20
  <slot />
21
21
  </ul>
22
22
  </template>