@bitrix24/b24ui-nuxt 0.3.3 → 0.3.4

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 (35) hide show
  1. package/.nuxt/b24ui/container.ts +1 -1
  2. package/.nuxt/b24ui/index.ts +1 -0
  3. package/.nuxt/b24ui/slideover.ts +101 -0
  4. package/dist/meta.cjs +467 -4
  5. package/dist/meta.d.cts +467 -4
  6. package/dist/meta.d.mts +467 -4
  7. package/dist/meta.d.ts +467 -4
  8. package/dist/meta.mjs +467 -4
  9. package/dist/module.cjs +1 -2
  10. package/dist/module.json +1 -1
  11. package/dist/module.mjs +1 -2
  12. package/dist/runtime/components/App.vue +3 -4
  13. package/dist/runtime/components/Modal.vue +4 -2
  14. package/dist/runtime/components/OverlayProvider.vue +29 -0
  15. package/dist/runtime/components/Slideover.vue +193 -0
  16. package/dist/runtime/composables/useOverlay.d.ts +30 -0
  17. package/dist/runtime/composables/useOverlay.js +71 -0
  18. package/dist/runtime/types/index.d.ts +1 -0
  19. package/dist/runtime/types/index.js +1 -0
  20. package/dist/runtime/vue/composables/useAppConfig.d.ts +1 -0
  21. package/dist/runtime/vue/composables/useAppConfig.js +2 -0
  22. package/dist/runtime/vue/stubs.d.ts +10 -0
  23. package/dist/runtime/vue/stubs.js +22 -0
  24. package/dist/shared/{b24ui-nuxt.ngV6AJEg.cjs → b24ui-nuxt.BpFAFOHo.cjs} +120 -1
  25. package/dist/shared/{b24ui-nuxt.BTln9cW-.mjs → b24ui-nuxt.BqTJ-9uP.mjs} +120 -1
  26. package/dist/unplugin.cjs +3 -3
  27. package/dist/unplugin.mjs +3 -3
  28. package/dist/vite.cjs +1 -1
  29. package/dist/vite.mjs +1 -1
  30. package/package.json +1 -1
  31. package/dist/runtime/components/ModalProvider.vue +0 -12
  32. package/dist/runtime/composables/useModal.d.ts +0 -17
  33. package/dist/runtime/composables/useModal.js +0 -46
  34. package/dist/runtime/plugins/modal.d.ts +0 -2
  35. package/dist/runtime/plugins/modal.js +0 -10
package/dist/meta.mjs CHANGED
@@ -22310,13 +22310,13 @@ const B24UIMeta = {
22310
22310
  "exposed": []
22311
22311
  }
22312
22312
  },
22313
- "B24ModalProvider": {
22313
+ "B24OverlayProvider": {
22314
22314
  "mode": "all",
22315
22315
  "prefetch": false,
22316
22316
  "preload": false,
22317
- "pascalName": "B24ModalProvider",
22318
- "kebabName": "b24-modal-provider",
22319
- "chunkName": "components/b24-modal-provider",
22317
+ "pascalName": "B24OverlayProvider",
22318
+ "kebabName": "b24-overlay-provider",
22319
+ "chunkName": "components/b24-overlay-provider",
22320
22320
  "priority": 0,
22321
22321
  "_scanned": true,
22322
22322
  "meta": {
@@ -31840,6 +31840,469 @@ const B24UIMeta = {
31840
31840
  "exposed": []
31841
31841
  }
31842
31842
  },
31843
+ "B24Slideover": {
31844
+ "mode": "all",
31845
+ "prefetch": false,
31846
+ "preload": false,
31847
+ "pascalName": "B24Slideover",
31848
+ "kebabName": "b24-slideover",
31849
+ "chunkName": "components/b24-slideover",
31850
+ "priority": 0,
31851
+ "_scanned": true,
31852
+ "meta": {
31853
+ "type": 0,
31854
+ "props": [
31855
+ {
31856
+ "name": "title",
31857
+ "global": false,
31858
+ "description": "",
31859
+ "tags": [],
31860
+ "required": false,
31861
+ "type": "string | undefined",
31862
+ "schema": {
31863
+ "kind": "enum",
31864
+ "type": "string | undefined",
31865
+ "schema": {
31866
+ "0": "undefined",
31867
+ "1": "string"
31868
+ }
31869
+ }
31870
+ },
31871
+ {
31872
+ "name": "description",
31873
+ "global": false,
31874
+ "description": "",
31875
+ "tags": [],
31876
+ "required": false,
31877
+ "type": "string | undefined",
31878
+ "schema": {
31879
+ "kind": "enum",
31880
+ "type": "string | undefined",
31881
+ "schema": {
31882
+ "0": "undefined",
31883
+ "1": "string"
31884
+ }
31885
+ }
31886
+ },
31887
+ {
31888
+ "name": "content",
31889
+ "global": false,
31890
+ "description": "The content of the slideover.",
31891
+ "tags": [],
31892
+ "required": false,
31893
+ "type": "Omit<DialogContentProps, \"as\" | \"asChild\" | \"forceMount\"> | undefined",
31894
+ "schema": {
31895
+ "kind": "enum",
31896
+ "type": "Omit<DialogContentProps, \"as\" | \"asChild\" | \"forceMount\"> | undefined",
31897
+ "schema": {
31898
+ "0": "undefined",
31899
+ "1": "Omit<DialogContentProps, \"as\" | \"asChild\" | \"forceMount\">"
31900
+ }
31901
+ }
31902
+ },
31903
+ {
31904
+ "name": "overlay",
31905
+ "global": false,
31906
+ "description": "Render an overlay behind the slideover.",
31907
+ "tags": [
31908
+ {
31909
+ "name": "defaultValue",
31910
+ "text": "true"
31911
+ }
31912
+ ],
31913
+ "required": false,
31914
+ "type": "boolean | undefined",
31915
+ "schema": {
31916
+ "kind": "enum",
31917
+ "type": "boolean | undefined",
31918
+ "schema": {
31919
+ "0": "undefined",
31920
+ "1": "false",
31921
+ "2": "true"
31922
+ }
31923
+ },
31924
+ "default": "true"
31925
+ },
31926
+ {
31927
+ "name": "transition",
31928
+ "global": false,
31929
+ "description": "Animate the slideover when opening or closing.",
31930
+ "tags": [
31931
+ {
31932
+ "name": "defaultValue",
31933
+ "text": "true"
31934
+ }
31935
+ ],
31936
+ "required": false,
31937
+ "type": "boolean | undefined",
31938
+ "schema": {
31939
+ "kind": "enum",
31940
+ "type": "boolean | undefined",
31941
+ "schema": {
31942
+ "0": "undefined",
31943
+ "1": "false",
31944
+ "2": "true"
31945
+ }
31946
+ },
31947
+ "default": "true"
31948
+ },
31949
+ {
31950
+ "name": "side",
31951
+ "global": false,
31952
+ "description": "",
31953
+ "tags": [],
31954
+ "required": false,
31955
+ "type": "\"bottom\" | \"top\" | \"left\" | \"right\" | undefined",
31956
+ "schema": {
31957
+ "kind": "enum",
31958
+ "type": "\"bottom\" | \"top\" | \"left\" | \"right\" | undefined",
31959
+ "schema": {
31960
+ "0": "undefined",
31961
+ "1": "\"bottom\"",
31962
+ "2": "\"top\"",
31963
+ "3": "\"left\"",
31964
+ "4": "\"right\""
31965
+ }
31966
+ },
31967
+ "default": "\"right\""
31968
+ },
31969
+ {
31970
+ "name": "portal",
31971
+ "global": false,
31972
+ "description": "Render the slideover in a portal.",
31973
+ "tags": [
31974
+ {
31975
+ "name": "defaultValue",
31976
+ "text": "true"
31977
+ }
31978
+ ],
31979
+ "required": false,
31980
+ "type": "boolean | undefined",
31981
+ "schema": {
31982
+ "kind": "enum",
31983
+ "type": "boolean | undefined",
31984
+ "schema": {
31985
+ "0": "undefined",
31986
+ "1": "false",
31987
+ "2": "true"
31988
+ }
31989
+ },
31990
+ "default": "true"
31991
+ },
31992
+ {
31993
+ "name": "close",
31994
+ "global": false,
31995
+ "description": "Display a close button to dismiss the slideover.\n`{ color: 'primary' }`{lang=\"ts\"} for `left`, `right`\n`{ color: 'link' }`{lang=\"ts\"} for `top`, `bottom`",
31996
+ "tags": [
31997
+ {
31998
+ "name": "defaultValue",
31999
+ "text": "true"
32000
+ }
32001
+ ],
32002
+ "required": false,
32003
+ "type": "boolean | Partial<ButtonProps> | undefined",
32004
+ "schema": {
32005
+ "kind": "enum",
32006
+ "type": "boolean | Partial<ButtonProps> | undefined",
32007
+ "schema": {
32008
+ "0": "undefined",
32009
+ "1": "false",
32010
+ "2": "true",
32011
+ "3": "Partial<ButtonProps>"
32012
+ }
32013
+ },
32014
+ "default": "true"
32015
+ },
32016
+ {
32017
+ "name": "closeIcon",
32018
+ "global": false,
32019
+ "description": "The icon displayed in the close button.",
32020
+ "tags": [
32021
+ {
32022
+ "name": "defaultValue",
32023
+ "text": "icons.close"
32024
+ }
32025
+ ],
32026
+ "required": false,
32027
+ "type": "IconComponent | undefined",
32028
+ "schema": {
32029
+ "kind": "enum",
32030
+ "type": "IconComponent | undefined",
32031
+ "schema": {
32032
+ "0": "undefined",
32033
+ "1": {
32034
+ "kind": "event",
32035
+ "type": "(props: HTMLAttributes & VNodeProps & {}, ctx: Omit<{ attrs: Data; slots: Readonly<InternalSlots>; emit: (event: string, ...args: any[]) => void; expose: <Exposed extends Record<string, any> = Record<...>>(exposed?: Exposed | undefined) => void; }, \"expose\">): any",
32036
+ "schema": []
32037
+ }
32038
+ }
32039
+ }
32040
+ },
32041
+ {
32042
+ "name": "dismissible",
32043
+ "global": false,
32044
+ "description": "When `false`, the slideover will not close when clicking outside or pressing escape.",
32045
+ "tags": [
32046
+ {
32047
+ "name": "defaultValue",
32048
+ "text": "true"
32049
+ }
32050
+ ],
32051
+ "required": false,
32052
+ "type": "boolean | undefined",
32053
+ "schema": {
32054
+ "kind": "enum",
32055
+ "type": "boolean | undefined",
32056
+ "schema": {
32057
+ "0": "undefined",
32058
+ "1": "false",
32059
+ "2": "true"
32060
+ }
32061
+ },
32062
+ "default": "true"
32063
+ },
32064
+ {
32065
+ "name": "scrollbarThin",
32066
+ "global": false,
32067
+ "description": "",
32068
+ "tags": [],
32069
+ "required": false,
32070
+ "type": "boolean | undefined",
32071
+ "schema": {
32072
+ "kind": "enum",
32073
+ "type": "boolean | undefined",
32074
+ "schema": {
32075
+ "0": "undefined",
32076
+ "1": "false",
32077
+ "2": "true"
32078
+ }
32079
+ },
32080
+ "default": "true"
32081
+ },
32082
+ {
32083
+ "name": "b24ui",
32084
+ "global": false,
32085
+ "description": "",
32086
+ "tags": [],
32087
+ "required": false,
32088
+ "type": "Partial<{ overlay: string; content: string; header: string; wrapper: string; body: string; footer: string; title: string; description: string; close: string; }> | undefined",
32089
+ "schema": {
32090
+ "kind": "enum",
32091
+ "type": "Partial<{ overlay: string; content: string; header: string; wrapper: string; body: string; footer: string; title: string; description: string; close: string; }> | undefined",
32092
+ "schema": {
32093
+ "0": "undefined",
32094
+ "1": "Partial<{ overlay: string; content: string; header: string; wrapper: string; body: string; footer: string; title: string; description: string; close: string; }>"
32095
+ }
32096
+ }
32097
+ },
32098
+ {
32099
+ "name": "open",
32100
+ "global": false,
32101
+ "description": "The controlled open state of the dialog. Can be binded as `v-model:open`.",
32102
+ "tags": [],
32103
+ "required": false,
32104
+ "type": "boolean | undefined",
32105
+ "schema": {
32106
+ "kind": "enum",
32107
+ "type": "boolean | undefined",
32108
+ "schema": {
32109
+ "0": "undefined",
32110
+ "1": "false",
32111
+ "2": "true"
32112
+ }
32113
+ }
32114
+ },
32115
+ {
32116
+ "name": "defaultOpen",
32117
+ "global": false,
32118
+ "description": "The open state of the dialog when it is initially rendered. Use when you do not need to control its open state.",
32119
+ "tags": [],
32120
+ "required": false,
32121
+ "type": "boolean | undefined",
32122
+ "schema": {
32123
+ "kind": "enum",
32124
+ "type": "boolean | undefined",
32125
+ "schema": {
32126
+ "0": "undefined",
32127
+ "1": "false",
32128
+ "2": "true"
32129
+ }
32130
+ }
32131
+ },
32132
+ {
32133
+ "name": "modal",
32134
+ "global": false,
32135
+ "description": "The modality of the dialog When set to `true`, <br>\r\ninteraction with outside elements will be disabled and only dialog content will be visible to screen readers.",
32136
+ "tags": [],
32137
+ "required": false,
32138
+ "type": "boolean | undefined",
32139
+ "schema": {
32140
+ "kind": "enum",
32141
+ "type": "boolean | undefined",
32142
+ "schema": {
32143
+ "0": "undefined",
32144
+ "1": "false",
32145
+ "2": "true"
32146
+ }
32147
+ },
32148
+ "default": "true"
32149
+ }
32150
+ ],
32151
+ "slots": [
32152
+ {
32153
+ "name": "default",
32154
+ "type": "{ open: boolean; }",
32155
+ "description": "",
32156
+ "schema": {
32157
+ "kind": "object",
32158
+ "type": "{ open: boolean; }",
32159
+ "schema": {
32160
+ "open": {
32161
+ "name": "open",
32162
+ "global": false,
32163
+ "description": "",
32164
+ "tags": [],
32165
+ "required": true,
32166
+ "type": "boolean",
32167
+ "schema": {
32168
+ "kind": "enum",
32169
+ "type": "boolean",
32170
+ "schema": {
32171
+ "0": "false",
32172
+ "1": "true"
32173
+ }
32174
+ }
32175
+ }
32176
+ }
32177
+ }
32178
+ },
32179
+ {
32180
+ "name": "content",
32181
+ "type": "{} | undefined",
32182
+ "description": "",
32183
+ "schema": {
32184
+ "kind": "enum",
32185
+ "type": "{} | undefined",
32186
+ "schema": {
32187
+ "0": "undefined",
32188
+ "1": {
32189
+ "kind": "object",
32190
+ "type": "{}",
32191
+ "schema": {}
32192
+ }
32193
+ }
32194
+ }
32195
+ },
32196
+ {
32197
+ "name": "header",
32198
+ "type": "{} | undefined",
32199
+ "description": "",
32200
+ "schema": {
32201
+ "kind": "enum",
32202
+ "type": "{} | undefined",
32203
+ "schema": {
32204
+ "0": "undefined",
32205
+ "1": {
32206
+ "kind": "object",
32207
+ "type": "{}",
32208
+ "schema": {}
32209
+ }
32210
+ }
32211
+ }
32212
+ },
32213
+ {
32214
+ "name": "title",
32215
+ "type": "{} | undefined",
32216
+ "description": "",
32217
+ "schema": {
32218
+ "kind": "enum",
32219
+ "type": "{} | undefined",
32220
+ "schema": {
32221
+ "0": "undefined",
32222
+ "1": {
32223
+ "kind": "object",
32224
+ "type": "{}",
32225
+ "schema": {}
32226
+ }
32227
+ }
32228
+ }
32229
+ },
32230
+ {
32231
+ "name": "description",
32232
+ "type": "{} | undefined",
32233
+ "description": "",
32234
+ "schema": {
32235
+ "kind": "enum",
32236
+ "type": "{} | undefined",
32237
+ "schema": {
32238
+ "0": "undefined",
32239
+ "1": {
32240
+ "kind": "object",
32241
+ "type": "{}",
32242
+ "schema": {}
32243
+ }
32244
+ }
32245
+ }
32246
+ },
32247
+ {
32248
+ "name": "close",
32249
+ "type": "{ b24ui: any; }",
32250
+ "description": "",
32251
+ "schema": {
32252
+ "kind": "object",
32253
+ "type": "{ b24ui: any; }",
32254
+ "schema": {
32255
+ "b24ui": {
32256
+ "name": "b24ui",
32257
+ "global": false,
32258
+ "description": "",
32259
+ "tags": [],
32260
+ "required": true,
32261
+ "type": "any",
32262
+ "schema": "any"
32263
+ }
32264
+ }
32265
+ }
32266
+ },
32267
+ {
32268
+ "name": "body",
32269
+ "type": "{} | undefined",
32270
+ "description": "",
32271
+ "schema": {
32272
+ "kind": "enum",
32273
+ "type": "{} | undefined",
32274
+ "schema": {
32275
+ "0": "undefined",
32276
+ "1": {
32277
+ "kind": "object",
32278
+ "type": "{}",
32279
+ "schema": {}
32280
+ }
32281
+ }
32282
+ }
32283
+ },
32284
+ {
32285
+ "name": "footer",
32286
+ "type": "{} | undefined",
32287
+ "description": "",
32288
+ "schema": {
32289
+ "kind": "enum",
32290
+ "type": "{} | undefined",
32291
+ "schema": {
32292
+ "0": "undefined",
32293
+ "1": {
32294
+ "kind": "object",
32295
+ "type": "{}",
32296
+ "schema": {}
32297
+ }
32298
+ }
32299
+ }
32300
+ }
32301
+ ],
32302
+ "events": [],
32303
+ "exposed": []
32304
+ }
32305
+ },
31843
32306
  "B24Switch": {
31844
32307
  "mode": "all",
31845
32308
  "prefetch": false,
package/dist/module.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  const defu = require('defu');
4
4
  const kit = require('@nuxt/kit');
5
- const templates = require('./shared/b24ui-nuxt.ngV6AJEg.cjs');
5
+ const templates = require('./shared/b24ui-nuxt.BpFAFOHo.cjs');
6
6
  require('node:url');
7
7
  require('scule');
8
8
 
@@ -41,7 +41,6 @@ const module$1 = kit.defineNuxtModule({
41
41
  await registerModule("@nuxtjs/color-mode", "colorMode", { classSuffix: "", disableTransition: true });
42
42
  }
43
43
  kit.addPlugin({ src: resolve("./runtime/plugins/colors") });
44
- kit.addPlugin({ src: resolve("./runtime/plugins/modal") });
45
44
  kit.addComponentsDir({
46
45
  path: resolve("./runtime/components"),
47
46
  prefix: "B24",
package/dist/module.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "nuxt": ">=3.13.1"
6
6
  },
7
7
  "docs": "https://bitrix24.github.io/b24ui/guide/installation-nuxt-app.html",
8
- "version": "0.3.3",
8
+ "version": "0.3.4",
9
9
  "builder": {
10
10
  "@nuxt/module-builder": "0.8.4",
11
11
  "unbuild": "2.0.0"
package/dist/module.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { defu } from 'defu';
2
2
  import { defineNuxtModule, createResolver, addVitePlugin, addPlugin, addComponentsDir, addImportsDir, hasNuxtModule, installModule } from '@nuxt/kit';
3
- import { d as defaultOptions, a as getDefaultUiConfig, b as addTemplates } from './shared/b24ui-nuxt.BTln9cW-.mjs';
3
+ import { d as defaultOptions, a as getDefaultUiConfig, b as addTemplates } from './shared/b24ui-nuxt.BqTJ-9uP.mjs';
4
4
  import 'node:url';
5
5
  import 'scule';
6
6
 
@@ -38,7 +38,6 @@ const module = defineNuxtModule({
38
38
  await registerModule("@nuxtjs/color-mode", "colorMode", { classSuffix: "", disableTransition: true });
39
39
  }
40
40
  addPlugin({ src: resolve("./runtime/plugins/colors") });
41
- addPlugin({ src: resolve("./runtime/plugins/modal") });
42
41
  addComponentsDir({
43
42
  path: resolve("./runtime/components"),
44
43
  prefix: "B24",
@@ -23,8 +23,7 @@ import { toRef, useId, provide } from 'vue'
23
23
  import { ConfigProvider, TooltipProvider, useForwardProps } from 'reka-ui'
24
24
  import { reactivePick } from '@vueuse/core'
25
25
  import B24Toaster from './Toaster.vue'
26
- import B24ModalProvider from './ModalProvider.vue'
27
- // import B24SlideoverProvider from './SlideoverProvider.vue'
26
+ import B24OverlayProvider from './OverlayProvider.vue'
28
27
 
29
28
  const props = defineProps<AppProps>()
30
29
  defineSlots<AppSlots>()
@@ -44,8 +43,8 @@ provide(localeContextInjectionKey, locale)
44
43
  <slot />
45
44
  </B24Toaster>
46
45
  <slot v-else />
47
- <B24ModalProvider />
48
- <!-- B24SlideoverProvider / -->
46
+
47
+ <B24OverlayProvider />
49
48
  </TooltipProvider>
50
49
  </ConfigProvider>
51
50
  </template>
@@ -56,7 +56,9 @@ export interface ModalProps extends DialogRootProps {
56
56
  b24ui?: Partial<typeof modal.slots>
57
57
  }
58
58
 
59
- export interface ModalEmits extends DialogRootEmits {}
59
+ export interface ModalEmits extends DialogRootEmits {
60
+ 'after:leave': []
61
+ }
60
62
 
61
63
  export interface ModalSlots {
62
64
  default(props: { open: boolean }): any
@@ -124,7 +126,7 @@ const b24ui = computed(() => modal({
124
126
  <DialogPortal :disabled="!portal">
125
127
  <DialogOverlay v-if="overlay" :class="b24ui.overlay({ class: props.b24ui?.overlay })" />
126
128
 
127
- <DialogContent :class="b24ui.content({ class: [!slots.default && props.class, props.b24ui?.content] })" v-bind="contentProps" v-on="contentEvents">
129
+ <DialogContent :class="b24ui.content({ class: [!slots.default && props.class, props.b24ui?.content] })" v-bind="contentProps" @after-leave="emits('after:leave')" v-on="contentEvents">
128
130
  <VisuallyHidden v-if="!!slots.content && ((title || !!slots.title) || (description || !!slots.description))">
129
131
  <DialogTitle v-if="title || !!slots.title">
130
132
  <slot name="title">
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import { computed } from 'vue'
3
+ import { useOverlay } from '../composables/useOverlay'
4
+
5
+ const { overlays, unMount, close } = useOverlay()
6
+
7
+ const mountedOverlays = computed(() => overlays.filter(overlay => overlay.isMounted))
8
+
9
+ const onAfterLeave = (id: symbol) => {
10
+ close(id)
11
+ unMount(id)
12
+ }
13
+
14
+ const onClose = (id: symbol, value: any) => {
15
+ close(id, value)
16
+ }
17
+ </script>
18
+
19
+ <template>
20
+ <component
21
+ :is="overlay.component"
22
+ v-for="overlay in mountedOverlays"
23
+ :key="overlay.id"
24
+ v-bind="overlay.props"
25
+ v-model:open="overlay.modelValue"
26
+ @close="(value:any) => onClose(overlay.id, value)"
27
+ @after:leave="onAfterLeave(overlay.id)"
28
+ />
29
+ </template>