naive-ui 2.32.2 → 2.33.0

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 (121) hide show
  1. package/dist/index.js +40930 -2060
  2. package/dist/index.prod.js +2 -2
  3. package/es/_internal/select-menu/src/SelectOption.js +1 -2
  4. package/es/_utils/cssr/index.js +1 -1
  5. package/es/card/src/Card.d.ts +24 -1
  6. package/es/card/src/Card.js +8 -4
  7. package/es/card/src/styles/index.cssr.js +17 -8
  8. package/es/card/styles/dark.js +3 -1
  9. package/es/card/styles/light.d.ts +2 -0
  10. package/es/card/styles/light.js +1 -1
  11. package/es/countdown/src/Countdown.js +0 -5
  12. package/es/data-table/src/use-sorter.js +1 -1
  13. package/es/dialog/index.d.ts +1 -1
  14. package/es/dialog/index.js +1 -1
  15. package/es/dialog/src/DialogEnvironment.d.ts +3 -0
  16. package/es/dialog/src/DialogEnvironment.js +2 -2
  17. package/es/dialog/src/DialogProvider.d.ts +4 -0
  18. package/es/dialog/src/DialogProvider.js +2 -1
  19. package/es/dialog/src/composables.d.ts +4 -0
  20. package/es/dialog/src/composables.js +17 -0
  21. package/es/dialog/src/context.d.ts +2 -1
  22. package/es/dialog/src/context.js +1 -0
  23. package/es/form/src/FormItem.d.ts +1 -0
  24. package/es/form/src/FormItem.js +28 -18
  25. package/es/form/src/styles/form-item.cssr.js +31 -19
  26. package/es/form/src/utils.d.ts +1 -0
  27. package/es/form/src/utils.js +15 -10
  28. package/es/input/src/utils.js +1 -1
  29. package/es/locales/common/frFR.js +8 -11
  30. package/es/menu/src/Menu.d.ts +13 -0
  31. package/es/menu/src/Menu.js +7 -1
  32. package/es/modal/src/BodyWrapper.d.ts +2 -0
  33. package/es/modal/src/Modal.d.ts +18 -0
  34. package/es/modal/src/presetProps.d.ts +1 -1
  35. package/es/modal/styles/light.d.ts +2 -0
  36. package/es/pagination/src/Pagination.js +5 -1
  37. package/es/radio/src/Radio.d.ts +6 -32
  38. package/es/radio/src/Radio.js +5 -5
  39. package/es/radio/src/RadioButton.d.ts +6 -9
  40. package/es/radio/src/RadioButton.js +7 -11
  41. package/es/radio/src/RadioGroup.d.ts +8 -8
  42. package/es/radio/src/RadioGroup.js +2 -2
  43. package/es/radio/src/interface.d.ts +2 -2
  44. package/es/radio/src/use-radio.d.ts +4 -32
  45. package/es/radio/src/use-radio.js +12 -10
  46. package/es/rate/src/Rate.d.ts +23 -14
  47. package/es/rate/src/Rate.js +32 -12
  48. package/es/rate/src/interface.d.ts +2 -0
  49. package/es/rate/src/interface.js +1 -0
  50. package/es/rate/src/styles/index.cssr.js +13 -13
  51. package/es/slider/src/Slider.d.ts +13 -0
  52. package/es/slider/src/Slider.js +6 -3
  53. package/es/theme-editor/src/ThemeEditor.d.ts +4 -0
  54. package/es/theme-editor/src/ThemeEditor.js +25 -10
  55. package/es/tree/src/styles/index.cssr.js +4 -3
  56. package/es/version.d.ts +1 -1
  57. package/es/version.js +1 -1
  58. package/lib/_internal/select-menu/src/SelectOption.js +1 -2
  59. package/lib/_utils/cssr/index.js +2 -5
  60. package/lib/card/src/Card.d.ts +24 -1
  61. package/lib/card/src/Card.js +8 -4
  62. package/lib/card/src/styles/index.cssr.js +17 -8
  63. package/lib/card/styles/dark.js +3 -1
  64. package/lib/card/styles/light.d.ts +2 -0
  65. package/lib/card/styles/light.js +1 -1
  66. package/lib/countdown/src/Countdown.js +0 -5
  67. package/lib/data-table/src/use-sorter.js +1 -1
  68. package/lib/dialog/index.d.ts +1 -1
  69. package/lib/dialog/index.js +4 -3
  70. package/lib/dialog/src/DialogEnvironment.d.ts +3 -0
  71. package/lib/dialog/src/DialogEnvironment.js +2 -2
  72. package/lib/dialog/src/DialogProvider.d.ts +4 -0
  73. package/lib/dialog/src/DialogProvider.js +1 -0
  74. package/lib/dialog/src/composables.d.ts +4 -0
  75. package/lib/dialog/src/{use-dialog.js → composables.js} +9 -1
  76. package/lib/dialog/src/context.d.ts +2 -1
  77. package/lib/dialog/src/context.js +2 -1
  78. package/lib/form/src/FormItem.d.ts +1 -0
  79. package/lib/form/src/FormItem.js +28 -18
  80. package/lib/form/src/styles/form-item.cssr.js +31 -19
  81. package/lib/form/src/utils.d.ts +1 -0
  82. package/lib/form/src/utils.js +15 -10
  83. package/lib/input/src/utils.js +1 -1
  84. package/lib/locales/common/frFR.js +8 -11
  85. package/lib/menu/src/Menu.d.ts +13 -0
  86. package/lib/menu/src/Menu.js +7 -1
  87. package/lib/modal/src/BodyWrapper.d.ts +2 -0
  88. package/lib/modal/src/Modal.d.ts +18 -0
  89. package/lib/modal/src/presetProps.d.ts +1 -1
  90. package/lib/modal/styles/light.d.ts +2 -0
  91. package/lib/pagination/src/Pagination.js +5 -1
  92. package/lib/radio/src/Radio.d.ts +6 -32
  93. package/lib/radio/src/Radio.js +5 -5
  94. package/lib/radio/src/RadioButton.d.ts +6 -9
  95. package/lib/radio/src/RadioButton.js +7 -14
  96. package/lib/radio/src/RadioGroup.d.ts +8 -8
  97. package/lib/radio/src/RadioGroup.js +2 -2
  98. package/lib/radio/src/interface.d.ts +2 -2
  99. package/lib/radio/src/use-radio.d.ts +4 -32
  100. package/lib/radio/src/use-radio.js +11 -9
  101. package/lib/rate/src/Rate.d.ts +23 -14
  102. package/lib/rate/src/Rate.js +32 -12
  103. package/lib/rate/src/interface.d.ts +2 -0
  104. package/lib/rate/src/interface.js +2 -0
  105. package/lib/rate/src/styles/index.cssr.js +13 -13
  106. package/lib/slider/src/Slider.d.ts +13 -0
  107. package/lib/slider/src/Slider.js +6 -3
  108. package/lib/theme-editor/src/ThemeEditor.d.ts +4 -0
  109. package/lib/theme-editor/src/ThemeEditor.js +25 -10
  110. package/lib/tree/src/styles/index.cssr.js +4 -3
  111. package/lib/version.d.ts +1 -1
  112. package/lib/version.js +1 -1
  113. package/package.json +4 -4
  114. package/web-types.json +36 -5
  115. package/es/countdown/src/utils.d.ts +0 -0
  116. package/es/countdown/src/utils.js +0 -1
  117. package/es/dialog/src/use-dialog.d.ts +0 -2
  118. package/es/dialog/src/use-dialog.js +0 -10
  119. package/lib/countdown/src/utils.d.ts +0 -0
  120. package/lib/countdown/src/utils.js +0 -1
  121. package/lib/dialog/src/use-dialog.d.ts +0 -2
@@ -32,7 +32,7 @@ export declare const cardBaseProps: {
32
32
  readonly role: StringConstructor;
33
33
  readonly onClose: PropType<MaybeArray<() => void>>;
34
34
  };
35
- export declare const cardBasePropKeys: ("size" | "title" | "role" | "bordered" | "closable" | "contentStyle" | "onClose" | "headerStyle" | "footerStyle" | "hoverable" | "headerExtraStyle" | "embedded" | "segmented")[];
35
+ export declare const cardBasePropKeys: ("size" | "title" | "role" | "bordered" | "closable" | "contentStyle" | "onClose" | "headerStyle" | "footerStyle" | "hoverable" | "embedded" | "headerExtraStyle" | "segmented")[];
36
36
  export declare const cardProps: {
37
37
  title: StringConstructor;
38
38
  contentStyle: PropType<string | CSSProperties>;
@@ -66,6 +66,8 @@ export declare const cardProps: {
66
66
  colorPopover: string;
67
67
  colorTarget: string;
68
68
  colorEmbedded: string;
69
+ colorEmbeddedModal: string;
70
+ colorEmbeddedPopover: string;
69
71
  textColor: string;
70
72
  titleTextColor: string;
71
73
  borderColor: string;
@@ -101,6 +103,8 @@ export declare const cardProps: {
101
103
  colorPopover: string;
102
104
  colorTarget: string;
103
105
  colorEmbedded: string;
106
+ colorEmbeddedModal: string;
107
+ colorEmbeddedPopover: string;
104
108
  textColor: string;
105
109
  titleTextColor: string;
106
110
  borderColor: string;
@@ -136,6 +140,8 @@ export declare const cardProps: {
136
140
  colorPopover: string;
137
141
  colorTarget: string;
138
142
  colorEmbedded: string;
143
+ colorEmbeddedModal: string;
144
+ colorEmbeddedPopover: string;
139
145
  textColor: string;
140
146
  titleTextColor: string;
141
147
  borderColor: string;
@@ -199,6 +205,8 @@ declare const _default: import("vue").DefineComponent<{
199
205
  colorPopover: string;
200
206
  colorTarget: string;
201
207
  colorEmbedded: string;
208
+ colorEmbeddedModal: string;
209
+ colorEmbeddedPopover: string;
202
210
  textColor: string;
203
211
  titleTextColor: string;
204
212
  borderColor: string;
@@ -234,6 +242,8 @@ declare const _default: import("vue").DefineComponent<{
234
242
  colorPopover: string;
235
243
  colorTarget: string;
236
244
  colorEmbedded: string;
245
+ colorEmbeddedModal: string;
246
+ colorEmbeddedPopover: string;
237
247
  textColor: string;
238
248
  titleTextColor: string;
239
249
  borderColor: string;
@@ -269,6 +279,8 @@ declare const _default: import("vue").DefineComponent<{
269
279
  colorPopover: string;
270
280
  colorTarget: string;
271
281
  colorEmbedded: string;
282
+ colorEmbeddedModal: string;
283
+ colorEmbeddedPopover: string;
272
284
  textColor: string;
273
285
  titleTextColor: string;
274
286
  borderColor: string;
@@ -413,6 +425,8 @@ declare const _default: import("vue").DefineComponent<{
413
425
  colorPopover: string;
414
426
  colorTarget: string;
415
427
  colorEmbedded: string;
428
+ colorEmbeddedModal: string;
429
+ colorEmbeddedPopover: string;
416
430
  textColor: string;
417
431
  titleTextColor: string;
418
432
  borderColor: string;
@@ -453,6 +467,9 @@ declare const _default: import("vue").DefineComponent<{
453
467
  '--n-color': string;
454
468
  '--n-color-modal': string;
455
469
  '--n-color-popover': string;
470
+ '--n-color-embedded': string;
471
+ '--n-color-embedded-modal': string;
472
+ '--n-color-embedded-popover': string;
456
473
  '--n-color-target': string;
457
474
  '--n-text-color': string;
458
475
  '--n-line-height': string;
@@ -510,6 +527,8 @@ declare const _default: import("vue").DefineComponent<{
510
527
  colorPopover: string;
511
528
  colorTarget: string;
512
529
  colorEmbedded: string;
530
+ colorEmbeddedModal: string;
531
+ colorEmbeddedPopover: string;
513
532
  textColor: string;
514
533
  titleTextColor: string;
515
534
  borderColor: string;
@@ -545,6 +564,8 @@ declare const _default: import("vue").DefineComponent<{
545
564
  colorPopover: string;
546
565
  colorTarget: string;
547
566
  colorEmbedded: string;
567
+ colorEmbeddedModal: string;
568
+ colorEmbeddedPopover: string;
548
569
  textColor: string;
549
570
  titleTextColor: string;
550
571
  borderColor: string;
@@ -580,6 +601,8 @@ declare const _default: import("vue").DefineComponent<{
580
601
  colorPopover: string;
581
602
  colorTarget: string;
582
603
  colorEmbedded: string;
604
+ colorEmbeddedModal: string;
605
+ colorEmbeddedPopover: string;
583
606
  textColor: string;
584
607
  titleTextColor: string;
585
608
  borderColor: string;
@@ -55,14 +55,17 @@ exports.default = (0, vue_1.defineComponent)({
55
55
  const rtlEnabledRef = (0, use_rtl_1.useRtl)('Card', mergedRtlRef, mergedClsPrefixRef);
56
56
  const cssVarsRef = (0, vue_1.computed)(() => {
57
57
  const { size } = props;
58
- const { self: { color, colorModal, colorTarget, textColor, titleTextColor, titleFontWeight, borderColor, actionColor, borderRadius, lineHeight, closeIconColor, closeIconColorHover, closeIconColorPressed, closeColorHover, closeColorPressed, closeBorderRadius, closeIconSize, closeSize, boxShadow, colorPopover, colorEmbedded, [(0, _utils_1.createKey)('padding', size)]: padding, [(0, _utils_1.createKey)('fontSize', size)]: fontSize, [(0, _utils_1.createKey)('titleFontSize', size)]: titleFontSize }, common: { cubicBezierEaseInOut } } = themeRef.value;
58
+ const { self: { color, colorModal, colorTarget, textColor, titleTextColor, titleFontWeight, borderColor, actionColor, borderRadius, lineHeight, closeIconColor, closeIconColorHover, closeIconColorPressed, closeColorHover, closeColorPressed, closeBorderRadius, closeIconSize, closeSize, boxShadow, colorPopover, colorEmbedded, colorEmbeddedModal, colorEmbeddedPopover, [(0, _utils_1.createKey)('padding', size)]: padding, [(0, _utils_1.createKey)('fontSize', size)]: fontSize, [(0, _utils_1.createKey)('titleFontSize', size)]: titleFontSize }, common: { cubicBezierEaseInOut } } = themeRef.value;
59
59
  const { top: paddingTop, left: paddingLeft, bottom: paddingBottom } = (0, seemly_1.getPadding)(padding);
60
60
  return {
61
61
  '--n-bezier': cubicBezierEaseInOut,
62
62
  '--n-border-radius': borderRadius,
63
- '--n-color': props.embedded ? colorEmbedded : color,
63
+ '--n-color': color,
64
64
  '--n-color-modal': colorModal,
65
65
  '--n-color-popover': colorPopover,
66
+ '--n-color-embedded': colorEmbedded,
67
+ '--n-color-embedded-modal': colorEmbeddedModal,
68
+ '--n-color-embedded-popover': colorEmbeddedPopover,
66
69
  '--n-color-target': colorTarget,
67
70
  '--n-text-color': textColor,
68
71
  '--n-line-height': lineHeight,
@@ -103,11 +106,12 @@ exports.default = (0, vue_1.defineComponent)({
103
106
  };
104
107
  },
105
108
  render() {
106
- const { segmented, bordered, hoverable, mergedClsPrefix, rtlEnabled, onRender, $slots } = this;
109
+ const { segmented, bordered, hoverable, mergedClsPrefix, rtlEnabled, onRender, embedded, $slots } = this;
107
110
  onRender === null || onRender === void 0 ? void 0 : onRender();
108
111
  return ((0, vue_1.h)("div", { class: [
109
112
  `${mergedClsPrefix}-card`,
110
113
  this.themeClass,
114
+ embedded && `${mergedClsPrefix}-card--embedded`,
111
115
  {
112
116
  [`${mergedClsPrefix}-card--rtl`]: rtlEnabled,
113
117
  [`${mergedClsPrefix}-card--content${typeof segmented !== 'boolean' && segmented.content === 'soft'
@@ -124,7 +128,7 @@ exports.default = (0, vue_1.defineComponent)({
124
128
  (0, _utils_1.resolveWrappedSlot)($slots.cover, (children) => children && ((0, vue_1.h)("div", { class: `${mergedClsPrefix}-card-cover`, role: "none" }, children))),
125
129
  (0, _utils_1.resolveWrappedSlot)($slots.header, (children) => {
126
130
  return children || this.title || this.closable ? ((0, vue_1.h)("div", { class: `${mergedClsPrefix}-card-header`, style: this.headerStyle },
127
- (0, vue_1.h)("div", { class: `${mergedClsPrefix}-card-header__main`, role: "heading" }, children || [this.title]),
131
+ (0, vue_1.h)("div", { class: `${mergedClsPrefix}-card-header__main`, role: "heading" }, children || this.title),
128
132
  (0, _utils_1.resolveWrappedSlot)($slots['header-extra'], (children) => children && ((0, vue_1.h)("div", { class: `${mergedClsPrefix}-card-header__extra`, style: this.headerExtraStyle }, children))),
129
133
  this.closable ? ((0, vue_1.h)(_internal_1.NBaseClose, { clsPrefix: mergedClsPrefix, class: `${mergedClsPrefix}-card-header__close`, onClick: this.handleCloseClick, absolute: true })) : null)) : null;
130
134
  }),
@@ -29,6 +29,9 @@ const cssr_1 = require("../../../_utils/cssr"); // vars:
29
29
  // --n-close-icon-color-pressed
30
30
  // --n-border-color
31
31
  // --n-box-shadow
32
+ // --n-color-embedded
33
+ // --n-color-embedded-modal
34
+ // --n-color-embedded-popover
32
35
 
33
36
 
34
37
  exports.default = (0, cssr_1.c)([(0, cssr_1.cB)('card', `
@@ -48,7 +51,9 @@ exports.default = (0, cssr_1.c)([(0, cssr_1.cB)('card', `
48
51
  background-color .3s var(--n-bezier),
49
52
  box-shadow .3s var(--n-bezier),
50
53
  border-color .3s var(--n-bezier);
51
- `, [(0, cssr_1.cM)('hoverable', [(0, cssr_1.c)('&:hover', 'box-shadow: var(--n-box-shadow);')]), (0, cssr_1.cM)('content-segmented', [(0, cssr_1.c)('>', [(0, cssr_1.cE)('content', {
54
+ `, [(0, cssr_1.asModal)({
55
+ background: 'var(--n-color-modal)'
56
+ }), (0, cssr_1.cM)('hoverable', [(0, cssr_1.c)('&:hover', 'box-shadow: var(--n-box-shadow);')]), (0, cssr_1.cM)('content-segmented', [(0, cssr_1.c)('>', [(0, cssr_1.cE)('content', {
52
57
  paddingTop: 'var(--n-padding-bottom)'
53
58
  })])]), (0, cssr_1.cM)('content-soft-segmented', [(0, cssr_1.c)('>', [(0, cssr_1.cE)('content', `
54
59
  margin: 0 var(--n-padding-left);
@@ -122,10 +127,14 @@ exports.default = (0, cssr_1.c)([(0, cssr_1.cB)('card', `
122
127
  transition: 'border-color 0.3s var(--n-bezier)'
123
128
  }, [(0, cssr_1.c)('&:not(:first-child)', {
124
129
  borderTop: '1px solid var(--n-border-color)'
125
- })])])])]), (0, cssr_1.insideModal)((0, cssr_1.cB)('card', {
126
- background: 'var(--n-color-modal)'
127
- })), (0, cssr_1.insidePopover)((0, cssr_1.cB)('card', {
128
- background: 'var(--n-color-popover)'
129
- })), (0, cssr_1.cB)('card', [(0, cssr_1.asModal)({
130
- background: 'var(--n-color-modal)'
131
- })])]);
130
+ })])])]), (0, cssr_1.cM)('embedded', `
131
+ background-color: var(--n-color-embedded);
132
+ `)]), (0, cssr_1.insideModal)((0, cssr_1.cB)('card', `
133
+ background: var(--n-color-modal);
134
+ `, [(0, cssr_1.cM)('embedded', `
135
+ background-color: var(--n-color-embedded-modal);
136
+ `)])), (0, cssr_1.insidePopover)((0, cssr_1.cB)('card', `
137
+ background: var(--n-color-popover);
138
+ `, [(0, cssr_1.cM)('embedded', `
139
+ background-color: var(--n-color-embedded-popover);
140
+ `)]))]);
@@ -7,8 +7,10 @@ const cardDark = {
7
7
  common: common_1.commonDark,
8
8
  self(vars) {
9
9
  const commonSelf = (0, light_1.self)(vars);
10
- const { cardColor } = vars;
10
+ const { cardColor, modalColor, popoverColor } = vars;
11
11
  commonSelf.colorEmbedded = cardColor;
12
+ commonSelf.colorEmbeddedModal = modalColor;
13
+ commonSelf.colorEmbeddedPopover = popoverColor;
12
14
  return commonSelf;
13
15
  }
14
16
  };
@@ -7,6 +7,8 @@ export declare const self: (vars: ThemeCommonVars) => {
7
7
  colorPopover: string;
8
8
  colorTarget: string;
9
9
  colorEmbedded: string;
10
+ colorEmbeddedModal: string;
11
+ colorEmbeddedPopover: string;
10
12
  textColor: string;
11
13
  titleTextColor: string;
12
14
  borderColor: string;
@@ -8,7 +8,7 @@ const common_1 = require("../../_styles/common");
8
8
  const _common_1 = __importDefault(require("./_common"));
9
9
  const self = (vars) => {
10
10
  const { primaryColor, borderRadius, lineHeight, fontSize, cardColor, textColor2, textColor1, dividerColor, fontWeightStrong, closeIconColor, closeIconColorHover, closeIconColorPressed, closeColorHover, closeColorPressed, modalColor, boxShadow1, popoverColor, actionColor } = vars;
11
- return Object.assign(Object.assign({}, _common_1.default), { lineHeight, color: cardColor, colorModal: modalColor, colorPopover: popoverColor, colorTarget: primaryColor, colorEmbedded: actionColor, textColor: textColor2, titleTextColor: textColor1, borderColor: dividerColor, actionColor, titleFontWeight: fontWeightStrong, closeColorHover,
11
+ return Object.assign(Object.assign({}, _common_1.default), { lineHeight, color: cardColor, colorModal: modalColor, colorPopover: popoverColor, colorTarget: primaryColor, colorEmbedded: actionColor, colorEmbeddedModal: actionColor, colorEmbeddedPopover: actionColor, textColor: textColor2, titleTextColor: textColor1, borderColor: dividerColor, actionColor, titleFontWeight: fontWeightStrong, closeColorHover,
12
12
  closeColorPressed, closeBorderRadius: borderRadius, closeIconColor,
13
13
  closeIconColorHover,
14
14
  closeIconColorPressed, fontSizeSmall: fontSize, fontSizeMedium: fontSize, fontSizeLarge: fontSize, fontSizeHuge: fontSize, boxShadow: boxShadow1, borderRadius });
@@ -23,7 +23,6 @@ exports.default = (0, vue_1.defineComponent)({
23
23
  props: exports.countdownProps,
24
24
  setup(props) {
25
25
  let timerId = null;
26
- let rafId = null;
27
26
  let elapsed = 0;
28
27
  let finished = false;
29
28
  // in ms
@@ -92,10 +91,6 @@ exports.default = (0, vue_1.defineComponent)({
92
91
  window.clearTimeout(timerId);
93
92
  timerId = null;
94
93
  }
95
- if (rafId !== null) {
96
- window.cancelAnimationFrame(rafId);
97
- rafId = null;
98
- }
99
94
  };
100
95
  (0, vue_1.onMounted)(() => {
101
96
  (0, vue_1.watchEffect)(() => {
@@ -162,7 +162,7 @@ function useSorter(props, { dataRelatedColsRef, filteredDataRef }) {
162
162
  const columnToSort = dataRelatedColsRef.value.find((column) => column.type !== 'selection' &&
163
163
  column.type !== 'expand' &&
164
164
  column.key === columnKey);
165
- if (!columnToSort || !columnToSort.sorter)
165
+ if (!(columnToSort === null || columnToSort === void 0 ? void 0 : columnToSort.sorter))
166
166
  return;
167
167
  const sorter = columnToSort.sorter;
168
168
  deriveNextSorter({
@@ -3,4 +3,4 @@ export { dialogProps } from './src/dialogProps';
3
3
  export type { DialogProps } from './src/dialogProps';
4
4
  export { NDialogProvider, dialogProviderProps } from './src/DialogProvider';
5
5
  export type { DialogProviderProps, DialogProviderInst, DialogOptions, DialogReactive, DialogApiInjection as DialogApi } from './src/DialogProvider';
6
- export { useDialog } from './src/use-dialog';
6
+ export { useDialog, useDialogReactiveList } from './src/composables';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useDialog = exports.dialogProviderProps = exports.NDialogProvider = exports.dialogProps = exports.NDialog = void 0;
3
+ exports.useDialogReactiveList = exports.useDialog = exports.dialogProviderProps = exports.NDialogProvider = exports.dialogProps = exports.NDialog = void 0;
4
4
  var Dialog_1 = require("./src/Dialog");
5
5
  Object.defineProperty(exports, "NDialog", { enumerable: true, get: function () { return Dialog_1.NDialog; } });
6
6
  var dialogProps_1 = require("./src/dialogProps");
@@ -8,5 +8,6 @@ Object.defineProperty(exports, "dialogProps", { enumerable: true, get: function
8
8
  var DialogProvider_1 = require("./src/DialogProvider");
9
9
  Object.defineProperty(exports, "NDialogProvider", { enumerable: true, get: function () { return DialogProvider_1.NDialogProvider; } });
10
10
  Object.defineProperty(exports, "dialogProviderProps", { enumerable: true, get: function () { return DialogProvider_1.dialogProviderProps; } });
11
- var use_dialog_1 = require("./src/use-dialog");
12
- Object.defineProperty(exports, "useDialog", { enumerable: true, get: function () { return use_dialog_1.useDialog; } });
11
+ var composables_1 = require("./src/composables");
12
+ Object.defineProperty(exports, "useDialog", { enumerable: true, get: function () { return composables_1.useDialog; } });
13
+ Object.defineProperty(exports, "useDialogReactiveList", { enumerable: true, get: function () { return composables_1.useDialogReactiveList; } });
@@ -1,5 +1,6 @@
1
1
  import { PropType, CSSProperties } from 'vue';
2
2
  export declare const exposedDialogEnvProps: {
3
+ readonly onAfterEnter: PropType<() => void>;
3
4
  readonly blockScroll: {
4
5
  readonly type: BooleanConstructor;
5
6
  readonly default: true;
@@ -56,6 +57,7 @@ export declare const NDialogEnvironment: import("vue").DefineComponent<{
56
57
  type: PropType<(key: string) => void>;
57
58
  required: true;
58
59
  };
60
+ onAfterEnter: PropType<() => void>;
59
61
  blockScroll: {
60
62
  readonly type: BooleanConstructor;
61
63
  readonly default: true;
@@ -121,6 +123,7 @@ export declare const NDialogEnvironment: import("vue").DefineComponent<{
121
123
  type: PropType<(key: string) => void>;
122
124
  required: true;
123
125
  };
126
+ onAfterEnter: PropType<() => void>;
124
127
  blockScroll: {
125
128
  readonly type: BooleanConstructor;
126
129
  readonly default: true;
@@ -11,7 +11,7 @@ const Modal_1 = __importDefault(require("../../modal/src/Modal"));
11
11
  const _utils_1 = require("../../_utils");
12
12
  const Dialog_1 = require("./Dialog");
13
13
  const dialogProps_1 = require("./dialogProps");
14
- exports.exposedDialogEnvProps = Object.assign(Object.assign({}, dialogProps_1.dialogProps), { blockScroll: { type: Boolean, default: true }, closeOnEsc: { type: Boolean, default: true }, onEsc: Function, autoFocus: {
14
+ exports.exposedDialogEnvProps = Object.assign(Object.assign({}, dialogProps_1.dialogProps), { onAfterEnter: Function, blockScroll: { type: Boolean, default: true }, closeOnEsc: { type: Boolean, default: true }, onEsc: Function, autoFocus: {
15
15
  type: Boolean,
16
16
  default: true
17
17
  }, internalStyle: [String, Object], maskClosable: {
@@ -106,7 +106,7 @@ exports.NDialogEnvironment = (0, vue_1.defineComponent)({
106
106
  },
107
107
  render() {
108
108
  const { handlePositiveClick, handleUpdateShow, handleNegativeClick, handleCloseClick, handleAfterLeave, handleMaskClick, handleEsc, to, maskClosable, show } = this;
109
- return ((0, vue_1.h)(Modal_1.default, { show: show, onUpdateShow: handleUpdateShow, onMaskClick: handleMaskClick, onEsc: handleEsc, to: to, maskClosable: maskClosable, onAfterLeave: handleAfterLeave, closeOnEsc: this.closeOnEsc, blockScroll: this.blockScroll, autoFocus: this.autoFocus, internalAppear: true, internalDialog: true }, {
109
+ return ((0, vue_1.h)(Modal_1.default, { show: show, onUpdateShow: handleUpdateShow, onMaskClick: handleMaskClick, onEsc: handleEsc, to: to, maskClosable: maskClosable, onAfterEnter: this.onAfterEnter, onAfterLeave: handleAfterLeave, closeOnEsc: this.closeOnEsc, blockScroll: this.blockScroll, autoFocus: this.autoFocus, internalAppear: true, internalDialog: true }, {
110
110
  default: () => ((0, vue_1.h)(Dialog_1.NDialog, Object.assign({}, (0, _utils_1.keep)(this.$props, dialogProps_1.dialogPropKeys), { style: this.internalStyle, onClose: handleCloseClick, onNegativeClick: handleNegativeClick, onPositiveClick: handlePositiveClick })))
111
111
  }));
112
112
  }
@@ -2,6 +2,7 @@ import { ExtractPropTypes, PropType, Ref, CSSProperties } from 'vue';
2
2
  import type { ExtractPublicPropTypes, Mutable } from '../../_utils';
3
3
  import { exposedDialogEnvProps } from './DialogEnvironment';
4
4
  export declare type DialogOptions = Mutable<Omit<Partial<ExtractPropTypes<typeof exposedDialogEnvProps>>, 'internalStyle'> & {
5
+ class?: any;
5
6
  style?: string | CSSProperties;
6
7
  }>;
7
8
  export declare type DialogReactive = {
@@ -23,6 +24,7 @@ export interface DialogProviderInjection {
23
24
  y: number;
24
25
  } | null>;
25
26
  }
27
+ export declare type DialogReactiveListInjection = Ref<DialogReactive[]>;
26
28
  interface DialogInst {
27
29
  hide: () => void;
28
30
  }
@@ -42,6 +44,7 @@ export declare const NDialogProvider: import("vue").DefineComponent<{
42
44
  type?: "default" | "error" | "info" | "success" | "warning" | undefined;
43
45
  content?: string | (() => import("vue").VNodeChild) | undefined;
44
46
  icon?: (() => import("vue").VNodeChild) | undefined;
47
+ onAfterEnter?: (() => void) | undefined;
45
48
  title?: string | (() => import("vue").VNodeChild) | undefined;
46
49
  action?: (() => import("vue").VNodeChild) | undefined;
47
50
  autoFocus?: boolean | undefined;
@@ -736,6 +739,7 @@ export declare const NDialogProvider: import("vue").DefineComponent<{
736
739
  onMaskClick?: ((e: MouseEvent) => void) | undefined;
737
740
  maskClosable?: boolean | undefined;
738
741
  closeOnEsc?: boolean | undefined;
742
+ class?: any;
739
743
  style?: any;
740
744
  }[]>;
741
745
  dialogInstRefs: Record<string, DialogInst>;
@@ -48,6 +48,7 @@ exports.NDialogProvider = (0, vue_1.defineComponent)({
48
48
  clickedRef: (0, vooks_1.useClicked)(64),
49
49
  clickPositionRef: (0, vooks_1.useClickPosition)()
50
50
  });
51
+ (0, vue_1.provide)(context_1.dialogReactiveListInjectionKey, dialogListRef);
51
52
  return Object.assign(Object.assign({}, api), { dialogList: dialogListRef, dialogInstRefs,
52
53
  handleAfterLeave });
53
54
  },
@@ -0,0 +1,4 @@
1
+ import { Ref } from 'vue';
2
+ import type { DialogApiInjection, DialogReactive } from './DialogProvider';
3
+ export declare function useDialog(): DialogApiInjection;
4
+ export declare function useDialogReactiveList(): Ref<readonly DialogReactive[]>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useDialog = void 0;
3
+ exports.useDialogReactiveList = exports.useDialog = void 0;
4
4
  const vue_1 = require("vue");
5
5
  const context_1 = require("./context");
6
6
  const _utils_1 = require("../../_utils");
@@ -12,3 +12,11 @@ function useDialog() {
12
12
  return dialog;
13
13
  }
14
14
  exports.useDialog = useDialog;
15
+ function useDialogReactiveList() {
16
+ const dialogReactiveList = (0, vue_1.inject)(context_1.dialogReactiveListInjectionKey, null);
17
+ if (dialogReactiveList === null) {
18
+ (0, _utils_1.throwError)('use-dialog-reactive-list', 'No outer <n-dialog-provider /> founded.');
19
+ }
20
+ return dialogReactiveList;
21
+ }
22
+ exports.useDialogReactiveList = useDialogReactiveList;
@@ -1,3 +1,4 @@
1
- import type { DialogApiInjection, DialogProviderInjection } from './DialogProvider';
1
+ import type { DialogApiInjection, DialogProviderInjection, DialogReactiveListInjection } from './DialogProvider';
2
2
  export declare const dialogProviderInjectionKey: import("vue").InjectionKey<DialogProviderInjection>;
3
3
  export declare const dialogApiInjectionKey: import("vue").InjectionKey<DialogApiInjection>;
4
+ export declare const dialogReactiveListInjectionKey: import("vue").InjectionKey<DialogReactiveListInjection>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dialogApiInjectionKey = exports.dialogProviderInjectionKey = void 0;
3
+ exports.dialogReactiveListInjectionKey = exports.dialogApiInjectionKey = exports.dialogProviderInjectionKey = void 0;
4
4
  const _utils_1 = require("../../_utils");
5
5
  exports.dialogProviderInjectionKey = (0, _utils_1.createInjectionKey)('n-dialog-provider');
6
6
  exports.dialogApiInjectionKey = (0, _utils_1.createInjectionKey)('n-dialog-api');
7
+ exports.dialogReactiveListInjectionKey = (0, _utils_1.createInjectionKey)('n-dialog-reactive-list');
@@ -283,6 +283,7 @@ declare const _default: import("vue").DefineComponent<{
283
283
  mergedValidationStatus: import("vue").ComputedRef<"error" | "success" | "warning" | undefined>;
284
284
  mergedShowFeedback: import("vue").ComputedRef<boolean>;
285
285
  mergedShowLabel: import("vue").ComputedRef<boolean>;
286
+ isAutoLabelWidth: import("vue").ComputedRef<boolean>;
286
287
  labelElementRef: import("vue").Ref<HTMLLabelElement | null>;
287
288
  mergedClsPrefix: import("vue").ComputedRef<string>;
288
289
  mergedRequired: import("vue").ComputedRef<boolean>;
@@ -255,8 +255,15 @@ exports.default = (0, vue_1.defineComponent)({
255
255
  };
256
256
  const labelElementRef = (0, vue_1.ref)(null);
257
257
  (0, vue_1.onMounted)(() => {
258
- if (labelElementRef.value !== null) {
259
- NForm === null || NForm === void 0 ? void 0 : NForm.deriveMaxChildLabelWidth(Number(getComputedStyle(labelElementRef.value).width.slice(0, -2)));
258
+ if (!formItemMiscRefs.isAutoLabelWidth.value)
259
+ return;
260
+ const labelElement = labelElementRef.value;
261
+ if (labelElement !== null) {
262
+ const memoizedWhitespace = labelElement.style.whiteSpace;
263
+ labelElement.style.whiteSpace = 'nowrap';
264
+ labelElement.style.width = '';
265
+ NForm === null || NForm === void 0 ? void 0 : NForm.deriveMaxChildLabelWidth(Number(getComputedStyle(labelElement).width.slice(0, -2)));
266
+ labelElement.style.whiteSpace = memoizedWhitespace;
260
267
  }
261
268
  });
262
269
  const cssVarsRef = (0, vue_1.computed)(() => {
@@ -296,34 +303,37 @@ exports.default = (0, vue_1.defineComponent)({
296
303
  return Object.assign(Object.assign(Object.assign(Object.assign({ labelElementRef, mergedClsPrefix: mergedClsPrefixRef, mergedRequired: mergedRequiredRef, feedbackId: feedbackIdRef, renderExplains: renderExplainsRef }, formItemMiscRefs), formItemSizeRefs), exposedRef), { cssVars: inlineThemeDisabled ? undefined : cssVarsRef, themeClass: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.themeClass, onRender: themeClassHandle === null || themeClassHandle === void 0 ? void 0 : themeClassHandle.onRender });
297
304
  },
298
305
  render() {
299
- var _a;
300
306
  const { $slots, mergedClsPrefix, mergedShowLabel, mergedShowRequireMark, mergedRequireMarkPlacement, onRender } = this;
301
307
  const renderedShowRequireMark = mergedShowRequireMark !== undefined
302
308
  ? mergedShowRequireMark
303
309
  : this.mergedRequired;
304
310
  onRender === null || onRender === void 0 ? void 0 : onRender();
311
+ const renderLabel = () => {
312
+ const labelText = this.$slots.label ? this.$slots.label() : this.label;
313
+ if (!labelText)
314
+ return null;
315
+ const textNode = ((0, vue_1.h)("span", { class: `${mergedClsPrefix}-form-item-label__text` }, labelText));
316
+ const markNode = renderedShowRequireMark ? ((0, vue_1.h)("span", { class: `${mergedClsPrefix}-form-item-label__asterisk` }, mergedRequireMarkPlacement !== 'left' ? '\u00A0*' : '*\u00A0')) : (mergedRequireMarkPlacement === 'right-hanging' && ((0, vue_1.h)("span", { class: `${mergedClsPrefix}-form-item-label__asterisk-placeholder` }, '\u00A0*')));
317
+ let labelContent;
318
+ if (mergedRequireMarkPlacement === 'left') {
319
+ labelContent = [markNode, textNode];
320
+ }
321
+ else {
322
+ labelContent = [textNode, markNode];
323
+ }
324
+ const { labelProps } = this;
325
+ return ((0, vue_1.h)("label", Object.assign({}, labelProps, { class: [labelProps === null || labelProps === void 0 ? void 0 : labelProps.class, `${mergedClsPrefix}-form-item-label`], style: this.mergedLabelStyle, ref: "labelElementRef" }), labelContent));
326
+ };
305
327
  return ((0, vue_1.h)("div", { class: [
306
328
  `${mergedClsPrefix}-form-item`,
307
329
  this.themeClass,
308
330
  `${mergedClsPrefix}-form-item--${this.mergedSize}-size`,
309
331
  `${mergedClsPrefix}-form-item--${this.mergedLabelPlacement}-labelled`,
332
+ this.isAutoLabelWidth &&
333
+ `${mergedClsPrefix}-form-item--auto-label-width`,
310
334
  !mergedShowLabel && `${mergedClsPrefix}-form-item--no-label`
311
335
  ], style: this.cssVars },
312
- mergedShowLabel && (this.label || $slots.label) ? ((0, vue_1.h)("label", Object.assign({}, this.labelProps, { class: [
313
- (_a = this.labelProps) === null || _a === void 0 ? void 0 : _a.class,
314
- `${mergedClsPrefix}-form-item-label`
315
- ], style: this.mergedLabelStyle, ref: "labelElementRef" }),
316
- mergedRequireMarkPlacement !== 'left'
317
- ? $slots.label
318
- ? $slots.label()
319
- : this.label
320
- : null,
321
- renderedShowRequireMark ? ((0, vue_1.h)("span", { class: `${mergedClsPrefix}-form-item-label__asterisk` }, mergedRequireMarkPlacement !== 'left' ? '\u00A0*' : '*\u00A0')) : (mergedRequireMarkPlacement === 'right-hanging' && ((0, vue_1.h)("span", { class: `${mergedClsPrefix}-form-item-label__asterisk-placeholder` }, '\u00A0*'))),
322
- mergedRequireMarkPlacement === 'left'
323
- ? $slots.label
324
- ? $slots.label()
325
- : this.label
326
- : null)) : null,
336
+ mergedShowLabel && renderLabel(),
327
337
  (0, vue_1.h)("div", { class: [
328
338
  `${mergedClsPrefix}-form-item-blank`,
329
339
  this.mergedValidationStatus &&
@@ -25,21 +25,22 @@ const fade_down_cssr_1 = require("../../../_styles/transitions/fade-down.cssr");
25
25
  // --n-label-padding
26
26
 
27
27
 
28
- exports.default = (0, cssr_1.cB)('form-item', {
29
- display: 'grid',
30
- lineHeight: 'var(--n-line-height)'
31
- }, [(0, cssr_1.cB)('form-item-label', `
28
+ exports.default = (0, cssr_1.cB)('form-item', `
29
+ display: grid;
30
+ line-height: var(--n-line-height);
31
+ `, [(0, cssr_1.cB)('form-item-label', `
32
32
  grid-area: label;
33
33
  align-items: center;
34
34
  line-height: 1.25;
35
35
  text-align: var(--n-label-text-align);
36
36
  font-size: var(--n-label-font-size);
37
- height: var(--n-label-height);
37
+ min-height: var(--n-label-height);
38
38
  padding: var(--n-label-padding);
39
39
  color: var(--n-label-text-color);
40
40
  transition: color .3s var(--n-bezier);
41
41
  box-sizing: border-box;
42
42
  `, [(0, cssr_1.cE)('asterisk', `
43
+ white-space: nowrap;
43
44
  user-select: none;
44
45
  -webkit-user-select: none;
45
46
  color: var(--n-asterisk-color);
@@ -48,38 +49,49 @@ exports.default = (0, cssr_1.cB)('form-item', {
48
49
  user-select: none;
49
50
  -webkit-user-select: none;
50
51
  visibility: hidden;
51
- `)]), (0, cssr_1.cB)('form-item-blank', {
52
- gridArea: 'blank',
53
- minHeight: 'var(--n-blank-height)'
54
- }), (0, cssr_1.cM)('left-labelled', `
52
+ `)]), (0, cssr_1.cB)('form-item-blank', `
53
+ grid-area: blank;
54
+ min-height: var(--n-blank-height);
55
+ `), (0, cssr_1.cM)('auto-label-width', [(0, cssr_1.cB)('form-item-label', 'white-space: nowrap;')]), (0, cssr_1.cM)('left-labelled', `
55
56
  grid-template-areas:
56
57
  "label blank"
57
58
  "label feedback";
58
59
  grid-template-columns: auto minmax(0, 1fr);
60
+ grid-template-rows: auto 1fr;
61
+ align-items: start;
59
62
  `, [(0, cssr_1.cB)('form-item-label', `
60
- height: var(--n-blank-height);
61
- line-height: var(--n-blank-height);
63
+ display: grid;
64
+ grid-template-areas:
65
+ "text star"
66
+ "text .";
67
+ grid-template-columns: 1fr auto;
68
+ min-height: var(--n-blank-height);
69
+ height: auto;
62
70
  box-sizing: border-box;
63
- white-space: nowrap;
64
71
  flex-shrink: 0;
65
72
  flex-grow: 0;
66
- `)]), (0, cssr_1.cM)('top-labelled', `
73
+ `, [(0, cssr_1.cE)('text', `
74
+ grid-area: text;
75
+ `), (0, cssr_1.cE)('asterisk', `
76
+ grid-area: star;
77
+ align-self: end;
78
+ `)])]), (0, cssr_1.cM)('top-labelled', `
67
79
  grid-template-areas:
68
80
  "label"
69
81
  "blank"
70
82
  "feedback";
71
- grid-template-rows: var(--n-label-height) 1fr;
83
+ grid-template-rows: minmax(var(--n-label-height), auto) 1fr;
72
84
  grid-template-columns: minmax(0, 100%);
73
85
  `, [(0, cssr_1.cM)('no-label', `
74
86
  grid-template-areas:
75
87
  "blank"
76
88
  "feedback";
77
89
  grid-template-rows: 1fr;
78
- `), (0, cssr_1.cB)('form-item-label', {
79
- display: 'flex',
80
- alignItems: 'flex-end',
81
- justifyContent: 'var(--n-label-text-align)'
82
- })]), (0, cssr_1.cB)('form-item-blank', `
90
+ `), (0, cssr_1.cB)('form-item-label', `
91
+ display: flex;
92
+ align-items: flex-start;
93
+ justify-content: var(--n-label-text-align);
94
+ `)]), (0, cssr_1.cB)('form-item-blank', `
83
95
  box-sizing: border-box;
84
96
  display: flex;
85
97
  align-items: center;
@@ -14,6 +14,7 @@ export declare function formItemMisc(props: FormItemSetupProps): {
14
14
  mergedValidationStatus: ComputedRef<"error" | "success" | "warning" | undefined>;
15
15
  mergedShowFeedback: ComputedRef<boolean>;
16
16
  mergedShowLabel: ComputedRef<boolean>;
17
+ isAutoLabelWidth: ComputedRef<boolean>;
17
18
  };
18
19
  export declare function formItemRule(props: FormItemSetupProps): {
19
20
  mergedRules: ComputedRef<FormItemRule[]>;