@nova-design-system/nova-react 3.14.0 → 3.15.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 (60) hide show
  1. package/dist/cjs/{collapse.animation-acda1bf5-BuORVmQv.js → collapse.animation-6e0b08df-AHWzNGm_.js} +4 -1
  2. package/dist/cjs/{constants-d0f19e7b-s0SCO_vi.js → constants-69bafca2-DpB_ghPF.js} +9 -0
  3. package/dist/cjs/{fade.animation-eb454088-Bma0SpTf.js → fade.animation-9b939939-DV--bM4S.js} +2 -2
  4. package/dist/cjs/{index-CKAZvszR.js → index-BK1_MpRZ.js} +583 -327
  5. package/dist/cjs/index.js +9 -1
  6. package/dist/cjs/{nv-accordion-item.entry-CjBcmF8t.js → nv-accordion-item.entry-BPaDkIFa.js} +5 -4
  7. package/dist/cjs/{nv-accordion.entry-CRk2Wvt3.js → nv-accordion.entry-BaHER2iL.js} +2 -1
  8. package/dist/cjs/{nv-alert.entry-D5qB5xZg.js → nv-alert.entry-Hv-y3Bwl.js} +12 -11
  9. package/dist/cjs/{nv-avatar.entry-CuNYdZl_.js → nv-avatar.entry-BTmGyeGF.js} +8 -7
  10. package/dist/cjs/{nv-badge_2.entry-BDuX1qOQ.js → nv-badge_2.entry-CwlWa72m.js} +11 -10
  11. package/dist/cjs/{nv-breadcrumb.entry-BE9U6AF_.js → nv-breadcrumb.entry-BvHgDgxV.js} +2 -1
  12. package/dist/cjs/{nv-breadcrumbs.entry-DJXqtmMR.js → nv-breadcrumbs.entry-BdptRKYA.js} +2 -1
  13. package/dist/cjs/{nv-button.entry-CF5IDcG3.js → nv-button.entry-6O39hBHY.js} +8 -7
  14. package/dist/cjs/{nv-buttongroup.entry-C0Zc2lOi.js → nv-buttongroup.entry-Bh0f3bAn.js} +2 -1
  15. package/dist/cjs/{nv-calendar.entry-NbVLStMN.js → nv-calendar.entry-BZLITXEC.js} +8 -7
  16. package/dist/cjs/{nv-col.entry-ahFf8a1Z.js → nv-col.entry-I3bCSLB5.js} +2 -1
  17. package/dist/cjs/{nv-datagrid.entry-C-MJXEdi.js → nv-datagrid.entry-BzIkgOV6.js} +7 -6
  18. package/dist/cjs/{nv-datagridcolumn.entry-CxU7soW7.js → nv-datagridcolumn.entry-BuFhEECG.js} +2 -1
  19. package/dist/cjs/{nv-dialog.entry-WlnaC-w2.js → nv-dialog.entry-DIbIIXo2.js} +4 -3
  20. package/dist/cjs/{nv-dialogfooter_2.entry-CEWmTnJc.js → nv-dialogfooter_2.entry-Thzk1kVd.js} +5 -4
  21. package/dist/cjs/{nv-fieldcheckbox.entry-BYhFVrYb.js → nv-fieldcheckbox.entry-mkas423y.js} +3 -2
  22. package/dist/cjs/{nv-fielddate.entry-DVVnRiOT.js → nv-fielddate.entry-Cek70TQM.js} +2 -1
  23. package/dist/cjs/{nv-fielddaterange.entry-Cb4X5Q-C.js → nv-fielddaterange.entry-C3BYAnVq.js} +2 -1
  24. package/dist/cjs/{nv-fielddropdown.entry-D2PKGkpx.js → nv-fielddropdown.entry-Djz5-R1T.js} +2 -1
  25. package/dist/cjs/{nv-fielddropdownitem.entry-BqgMRnIc.js → nv-fielddropdownitem.entry-B2z13jEI.js} +2 -1
  26. package/dist/cjs/{nv-fieldmultiselect.entry-Dzw4c9wO.js → nv-fieldmultiselect.entry-uJ9i2gtz.js} +2 -1
  27. package/dist/cjs/{nv-fieldnumber.entry-Cm5g6tw7.js → nv-fieldnumber.entry-zpWCDG_-.js} +2 -1
  28. package/dist/cjs/{nv-fieldpassword.entry-BMI5M4RR.js → nv-fieldpassword.entry-C835HE_i.js} +2 -1
  29. package/dist/cjs/{nv-fieldradio.entry-BrCJvkMR.js → nv-fieldradio.entry-CzLMbo4W.js} +2 -1
  30. package/dist/cjs/{nv-fieldselect.entry-Cz76Y4Fb.js → nv-fieldselect.entry-BzcYzmqe.js} +2 -1
  31. package/dist/cjs/{nv-fieldslider.entry-C2ynnMK8.js → nv-fieldslider.entry-B5vyrQZw.js} +2 -1
  32. package/dist/cjs/{nv-fieldtext.entry-B6ciu2fU.js → nv-fieldtext.entry-DnPQxVqp.js} +2 -1
  33. package/dist/cjs/{nv-fieldtextarea.entry-BL_gMvTp.js → nv-fieldtextarea.entry-n2MJK2Jg.js} +2 -1
  34. package/dist/cjs/{nv-fieldtime.entry-Be5fujXA.js → nv-fieldtime.entry-DChhvqKi.js} +61 -60
  35. package/dist/cjs/nv-icon.entry-agdqxUMS.js +80 -0
  36. package/dist/cjs/{nv-iconbutton_2.entry-Dlk96yHi.js → nv-iconbutton_2.entry-u0l16LeW.js} +2 -1
  37. package/dist/cjs/{nv-menu.entry-CDn1Tk9J.js → nv-menu.entry-OYVh6iMu.js} +2 -1
  38. package/dist/cjs/{nv-menuitem.entry-DIkQnha9.js → nv-menuitem.entry-Dj6N1n9X.js} +2 -1
  39. package/dist/cjs/nv-notification.entry-D1dVSEYZ.js +262 -0
  40. package/dist/cjs/nv-notificationcontainer.entry-Bp2NR_fe.js +41 -0
  41. package/dist/cjs/{nv-popover.entry-Bz9ZWGlN.js → nv-popover.entry-Bf2AEn9B.js} +7 -6
  42. package/dist/cjs/{nv-row.entry-iJGXINmZ.js → nv-row.entry-Bi9eoQEh.js} +3 -2
  43. package/dist/cjs/{nv-stack.entry-CifEjR2g.js → nv-stack.entry-Dd680LIT.js} +3 -2
  44. package/dist/cjs/{nv-table.entry-Dxg0j3fe.js → nv-table.entry-wxn9GDDo.js} +4 -3
  45. package/dist/cjs/{nv-tablecolumn.entry--29MFEe9.js → nv-tablecolumn.entry-Bo0z0XyB.js} +2 -1
  46. package/dist/cjs/{nv-toggle.entry-D0eQoEqf.js → nv-toggle.entry-gBokGnGe.js} +4 -3
  47. package/dist/cjs/{nv-togglebutton.entry-X4eLeP-C.js → nv-togglebutton.entry-ZpltTrQe.js} +3 -2
  48. package/dist/cjs/{nv-togglebuttongroup.entry-BYO58vql.js → nv-togglebuttongroup.entry-Bu0C6Iq3.js} +3 -2
  49. package/dist/cjs/{nv-tooltip.entry-DaxjQSt1.js → nv-tooltip.entry-DR4aj5qF.js} +3 -2
  50. package/dist/generated/components.js +8 -0
  51. package/dist/generated/components.server.js +8 -1
  52. package/dist/index.js +1 -0
  53. package/dist/providers/NotificationProvider.js +83 -0
  54. package/dist/types/generated/components.d.ts +3 -0
  55. package/dist/types/generated/components.server.d.ts +3 -0
  56. package/dist/types/index.d.ts +1 -0
  57. package/dist/types/providers/NotificationProvider.d.ts +36 -0
  58. package/package.json +4 -1
  59. package/dist/cjs/nv-icon.entry-C-wbfOy3.js +0 -79
  60. package/dist/cjs/nv-notification.entry-BiwnZCkF.js +0 -178
@@ -1,178 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('./index-CKAZvszR.js');
4
- var constantsD0f19e7b = require('./constants-d0f19e7b-s0SCO_vi.js');
5
- var collapse_animationAcda1bf5 = require('./collapse.animation-acda1bf5-BuORVmQv.js');
6
- var fade_animationEb454088 = require('./fade.animation-eb454088-Bma0SpTf.js');
7
- var styleValueTypes_esF5d10b79 = require('./style-value-types.es-f5d10b79-D0QCM8OB.js');
8
- var timeline_animation79215cd4 = require('./timeline.animation-79215cd4-KteJaZPb.js');
9
- var v4A79185f4 = require('./v4-a79185f4-2n0dOd_Y.js');
10
- require('react');
11
-
12
- const useSlide = (node, { duration } = { duration: 200 }) => {
13
- const nodeStyler = fade_animationEb454088.index(node);
14
- /**
15
- * Will animate the translateX to 100%, sliding the element to the right.
16
- */
17
- function slideOut() {
18
- return new Promise(resolve => {
19
- styleValueTypes_esF5d10b79.animate({
20
- from: { x: 0 },
21
- to: { x: 100 },
22
- ease: styleValueTypes_esF5d10b79.easeOut,
23
- duration,
24
- onUpdate(latest) {
25
- nodeStyler.set({ transform: `translateX(${latest.x}%)` });
26
- },
27
- onComplete() {
28
- resolve();
29
- },
30
- });
31
- });
32
- }
33
- /**
34
- * Applies the slideOut styles without animating, useful when initial state
35
- * is slid out.
36
- */
37
- function setSlideOut() {
38
- node.style.transform = 'translateX(100%)';
39
- }
40
- /**
41
- * Applies the slideIn styles without animating, useful when initial state
42
- * is slid in.
43
- */
44
- function setSlideIn() {
45
- node.style.transform = '';
46
- }
47
- /**
48
- * Will animate the translateX from 100% to 0%, sliding the element in from the right.
49
- */
50
- function slideIn() {
51
- return new Promise(resolve => {
52
- styleValueTypes_esF5d10b79.animate({
53
- from: { x: 100 },
54
- to: { x: 0 },
55
- duration,
56
- onUpdate(latest) {
57
- nodeStyler.set({ transform: `translateX(${latest.x}%)` });
58
- },
59
- onComplete() {
60
- resolve();
61
- node.style.removeProperty('transform');
62
- },
63
- });
64
- });
65
- }
66
- return {
67
- slideIn,
68
- slideOut,
69
- setSlideOut,
70
- setSlideIn,
71
- };
72
- };
73
-
74
- const nvNotificationCss = "nv-notification{display:block}nv-notification [data-scope=container]{display:flex;position:relative;max-width:512px;width:100%;padding:var(--notification-padding);align-items:flex-start;gap:var(--notification-gap-x);border-radius:var(--notification-radius);border-style:solid;box-shadow:0 var(--shadow-y-axis-lg-1, 4px) var(--shadow-blur-lg-1, 6px) var(--shadow-spread-lg-1, -2px) var(--shadow-color-opacity-1, rgba(14, 14, 14, 0.06)), 0 var(--shadow-y-axis-lg-2, 10px) var(--shadow-blur-lg-2, 15px) var(--shadow-spread-lg-2, -3px) var(--shadow-color-opacity-2, rgba(14, 14, 14, 0.1))}nv-notification [data-scope=container]>nv-icon{flex-shrink:0}nv-notification [data-scope=container] [data-scope=dismiss]{padding:var(--button-sm-icon-button-padding, 8px);justify-content:center;align-items:center;gap:var(--button-sm-gap, 6px);display:flex;position:absolute;right:8px;top:8px;border-radius:var(--button-sm-border-radius, 4px);background:var(--components-button-lower-background, rgba(255, 255, 255, 0));color:var(--components-button-lower-icon)}nv-notification [data-scope=container] [data-scope=content]{display:flex;padding-right:var(--notification-padding-right);flex-direction:column;align-items:flex-start;gap:var(--notification-gap-y);flex:1 0 0}nv-notification [data-scope=container] [data-scope=content] [data-scope=heading]{display:flex;align-items:flex-start;gap:var(--notification-gap-x);align-self:stretch;color:var(--components-notification-content-title);font-size:var(--notification-title-font-size);font-style:normal;font-weight:500;line-height:20px;}nv-notification [data-scope=container] [data-scope=content] [data-scope=message]{display:flex;flex-direction:column;align-items:flex-start;gap:var(--notification-gap-y);align-self:stretch;color:var(--components-notification-content-description);font-variant-numeric:lining-nums tabular-nums slashed-zero;font-size:var(--font-size-sm, 14px);font-style:normal;font-weight:400;line-height:var(--line-height-sm, 20px)}nv-notification [data-scope=container] [data-scope=content] [data-scope=actions]{display:flex;padding:var(--spacing-2, 8px) 0;padding-bottom:0px;align-items:flex-start;gap:var(--notification-gap-x);align-self:stretch;margin-left:calc(-1 * var(--button-sm-padding-x))}nv-notification[feedback=information] [data-scope=container]{background-color:var(--components-notification-information-background);border-color:var(--components-notification-information-border)}nv-notification[feedback=information] [data-scope=container]>nv-icon{color:var(--components-notification-information-icon)}nv-notification[feedback=information]>[data-scope=close]:focus,nv-notification[feedback=information]>[data-scope=close]:focus-within{outline:none}nv-notification[feedback=information]>[data-scope=close]:focus-visible,nv-notification[feedback=information]>[data-scope=close]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-notification-information-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-notification[feedback=warning] [data-scope=container]{background-color:var(--components-notification-warning-background);border-color:var(--components-notification-warning-border)}nv-notification[feedback=warning] [data-scope=container]>nv-icon{color:var(--components-notification-warning-icon)}nv-notification[feedback=warning]>[data-scope=close]:focus,nv-notification[feedback=warning]>[data-scope=close]:focus-within{outline:none}nv-notification[feedback=warning]>[data-scope=close]:focus-visible,nv-notification[feedback=warning]>[data-scope=close]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-notification-warning-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-notification[feedback=error] [data-scope=container]{background-color:var(--components-notification-error-background);border-color:var(--components-notification-error-border)}nv-notification[feedback=error] [data-scope=container]>nv-icon{color:var(--components-notification-error-icon)}nv-notification[feedback=error]>[data-scope=close]:focus,nv-notification[feedback=error]>[data-scope=close]:focus-within{outline:none}nv-notification[feedback=error]>[data-scope=close]:focus-visible,nv-notification[feedback=error]>[data-scope=close]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-notification-error-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-notification[feedback=success] [data-scope=container]{background-color:var(--components-notification-success-background);border-color:var(--components-notification-success-border)}nv-notification[feedback=success] [data-scope=container]>nv-icon{color:var(--components-notification-success-icon)}nv-notification[feedback=success]>[data-scope=close]:focus,nv-notification[feedback=success]>[data-scope=close]:focus-within{outline:none}nv-notification[feedback=success]>[data-scope=close]:focus-visible,nv-notification[feedback=success]>[data-scope=close]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-notification-success-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-notification[feedback=neutral] [data-scope=container]{background-color:var(--components-notification-neutral-background);border-color:var(--components-notification-neutral-border)}nv-notification[feedback=neutral] [data-scope=container]>nv-icon{color:var(--components-notification-neutral-icon)}nv-notification[feedback=neutral]>[data-scope=close]:focus,nv-notification[feedback=neutral]>[data-scope=close]:focus-within{outline:none}nv-notification[feedback=neutral]>[data-scope=close]:focus-visible,nv-notification[feedback=neutral]>[data-scope=close]:has(:focus-visible){outline:calc(var(--focus-outline-stroke) * 1) solid var(--components-notification-neutral-border);outline-offset:calc(var(--focus-outline-offset) * 1)}nv-notification[emphasis=high] [data-scope=container]{border-width:1px;border-left-width:var(--notification-border-width-high-emphasis);padding-left:calc(var(--notification-padding) - var(--notification-border-width-high-emphasis) + 1px)}nv-notification[emphasis=medium] [data-scope=container]{border-width:var(--notification-border-width-low-emphasis);border-color:var(--color-content-low-border, #E3E3E3)}";
75
- const NvNotificationStyle0 = nvNotificationCss;
76
-
77
- const NvNotification = class {
78
- constructor(hostRef) {
79
- index.registerInstance(this, hostRef);
80
- this.hiddenChanged = index.createEvent(this, "hiddenChanged");
81
- /****************************************************************************/
82
- //#region PROPERTIES
83
- /**
84
- * Set a unique ID for the notification. Used for aria attributes and managing
85
- * multiple notifications.
86
- */
87
- this.uid = v4A79185f4.v4();
88
- /**
89
- * Specifies the notification type which determines the color and default icon.
90
- */
91
- this.feedback = 'information';
92
- /**
93
- * Adjusts the emphasis to make the notification more or less visually
94
- * prominent to users. Use this to draw attention to important actions or
95
- * reduce focus on less critical ones
96
- */
97
- this.emphasis = 'medium';
98
- /**
99
- * Allows the notification to be dismissed via a close button (x). The
100
- * notification is not dismissible unless explicitly enabled.
101
- */
102
- this.dismissible = false;
103
- /**
104
- * Controls the visibility of the notification.
105
- */
106
- this.hidden = false; // eslint-disable-line @stencil-community/reserved-member-names
107
- //#endregion EVENTS
108
- /****************************************************************************/
109
- //#region INTERNAL
110
- this.iconByFeedback = {
111
- [constantsD0f19e7b.FeedbackColors.Warning]: 'alert-circle',
112
- [constantsD0f19e7b.FeedbackColors.Information]: 'info-circle',
113
- [constantsD0f19e7b.FeedbackColors.Success]: 'circle-check',
114
- [constantsD0f19e7b.FeedbackColors.Error]: 'alert-triangle',
115
- [constantsD0f19e7b.FeedbackColors.Neutral]: 'help',
116
- };
117
- this.roleByFeedback = {
118
- [constantsD0f19e7b.FeedbackColors.Error]: 'alert',
119
- [constantsD0f19e7b.FeedbackColors.Warning]: 'alert',
120
- [constantsD0f19e7b.FeedbackColors.Information]: 'status',
121
- [constantsD0f19e7b.FeedbackColors.Success]: 'status',
122
- [constantsD0f19e7b.FeedbackColors.Neutral]: 'status',
123
- };
124
- }
125
- //#endregion PROPERTIES
126
- /****************************************************************************/
127
- //#region METHODS
128
- async dismiss() {
129
- await this.dismissAnimation();
130
- }
131
- getDefaultIcon() {
132
- var _a;
133
- return (_a = this.iconByFeedback[this.feedback]) !== null && _a !== void 0 ? _a : 'info-circle';
134
- }
135
- getAriaRole() {
136
- var _a;
137
- return (_a = this.roleByFeedback[this.feedback]) !== null && _a !== void 0 ? _a : 'status';
138
- }
139
- getAriaLive() {
140
- return this.getAriaRole() === 'alert' ? 'assertive' : 'polite';
141
- }
142
- getHeadingId() {
143
- return this.heading ? `nv-notification-${this.uid}-heading` : null;
144
- }
145
- getMessageId() {
146
- return this.message ? `nv-notification-${this.uid}-message` : null;
147
- }
148
- async dismissAnimation() {
149
- const { fadeOut } = fade_animationEb454088.useFade(this.container, { duration: 300 });
150
- const { slideOut } = useSlide(this.container, { duration: 800 });
151
- const { collapse } = collapse_animationAcda1bf5.useCollapse(this.el, {
152
- duration: 800,
153
- overflow: 'visible',
154
- });
155
- await timeline_animation79215cd4.parallel(fadeOut, slideOut, collapse).start();
156
- this.hidden = true;
157
- this.hiddenChanged.emit(true);
158
- }
159
- //#endregion INTERNAL
160
- /****************************************************************************/
161
- //#region LIFECYCLE
162
- componentWillLoad() {
163
- this.headingSlot = this.el.querySelector('[slot="heading"]');
164
- this.messageSlot = this.el.querySelector('[slot="content"]');
165
- this.actionsSlot = this.el.querySelector('[slot="actions"]');
166
- }
167
- //#endregion LIFECYCLE
168
- /****************************************************************************/
169
- //#region RENDER
170
- render() {
171
- var _a, _b, _c;
172
- return (index.h(index.Host, { key: '9146cea4ed72801aadf2fb4b7e44895038c98437', role: this.getAriaRole(), "aria-live": this.getAriaLive(), "aria-atomic": true, "aria-labelledby": (_a = this.getHeadingId()) !== null && _a !== void 0 ? _a : null, "aria-describedby": (_b = this.getMessageId()) !== null && _b !== void 0 ? _b : null, tabindex: "-1" }, index.h("div", { key: 'beed9ae5f6fac1b0c6d103dd75a41e0aede84041', "data-scope": "container", ref: el => (this.container = el) }, this.dismissible && (index.h("button", { key: '8e17f33867c2563de719dc1b0f0e2d4ae39ad1a6', "data-scope": "dismiss", type: "button", onClick: this.dismiss.bind(this) }, index.h("nv-icon", { key: 'cb8850135bb2383e33a16671569547611b55e434', name: "x", size: "sm" }))), index.h("nv-icon", { key: 'f5f58e1c3a94d854841271eb12af047322b2f0b4', name: (_c = this.icon) !== null && _c !== void 0 ? _c : this.getDefaultIcon(), size: "md" }), index.h("div", { key: '9c6f6bb0315cd25260d483472a24832031ce45da', "data-scope": "content" }, (this.heading || this.headingSlot) && (index.h("p", { key: '1013d6b6790f75682a1db0e43293b61e614f1c07', id: this.getHeadingId(), "data-scope": "heading" }, index.h("slot", { key: '844a7bccf6f365d4e59dfdec9b3c9096cbeda798', name: "heading" }, this.heading))), (this.message || this.messageSlot) && (index.h("p", { key: '6688e9dc927f6164ce60f27b84fdbeb257296504', id: this.getMessageId(), "data-scope": "message" }, index.h("slot", { key: 'f0c0790faa40411970575240a081f0f0bf0e9aff', name: "content" }, this.message))), this.actionsSlot && (index.h("div", { key: '0ba946edf5b3a8410da3b375e589613a2674fd15', "data-scope": "actions" }, index.h("slot", { key: '0360ab92db66957f0290569c39307ced2be5922d', name: "actions" })))))));
173
- }
174
- get el() { return index.getElement(this); }
175
- };
176
- NvNotification.style = NvNotificationStyle0;
177
-
178
- exports.nv_notification = NvNotification;