@vinyasa/feedback 1.0.21
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.
- package/README.md +134 -0
- package/dist/cjs/alert.cjs +286 -0
- package/dist/cjs/alert.css +51 -0
- package/dist/cjs/banner.cjs +270 -0
- package/dist/cjs/banner.css +37 -0
- package/dist/cjs/circular-progress.cjs +286 -0
- package/dist/cjs/circular-progress.css +30 -0
- package/dist/cjs/empty-state.cjs +165 -0
- package/dist/cjs/empty-state.css +7 -0
- package/dist/cjs/error-boundary.cjs +234 -0
- package/dist/cjs/error-boundary.css +7 -0
- package/dist/cjs/index.cjs +1763 -0
- package/dist/cjs/index.css +448 -0
- package/dist/cjs/inline-message.cjs +366 -0
- package/dist/cjs/inline-message.css +29 -0
- package/dist/cjs/loading-overlay.cjs +451 -0
- package/dist/cjs/loading-overlay.css +61 -0
- package/dist/cjs/progress-bar.cjs +163 -0
- package/dist/cjs/progress-bar.css +15 -0
- package/dist/cjs/skeleton.cjs +282 -0
- package/dist/cjs/skeleton.css +42 -0
- package/dist/cjs/spinner.cjs +329 -0
- package/dist/cjs/spinner.css +34 -0
- package/dist/cjs/toaster.cjs +377 -0
- package/dist/cjs/toaster.css +176 -0
- package/dist/esm/147.css +176 -0
- package/dist/esm/147.js +164 -0
- package/dist/esm/158.css +21 -0
- package/dist/esm/158.js +31 -0
- package/dist/esm/266.css +30 -0
- package/dist/esm/266.js +75 -0
- package/dist/esm/277.js +8 -0
- package/dist/esm/288.css +7 -0
- package/dist/esm/288.js +38 -0
- package/dist/esm/474.js +76 -0
- package/dist/esm/495.css +39 -0
- package/dist/esm/495.js +61 -0
- package/dist/esm/516.css +29 -0
- package/dist/esm/516.js +66 -0
- package/dist/esm/703.css +34 -0
- package/dist/esm/703.js +56 -0
- package/dist/esm/872.css +15 -0
- package/dist/esm/872.js +29 -0
- package/dist/esm/880.js +47 -0
- package/dist/esm/903.css +51 -0
- package/dist/esm/903.js +61 -0
- package/dist/esm/953.js +87 -0
- package/dist/esm/989.css +37 -0
- package/dist/esm/989.js +46 -0
- package/dist/esm/alert.d.ts +2 -0
- package/dist/esm/alert.js +1 -0
- package/dist/esm/banner.d.ts +2 -0
- package/dist/esm/banner.js +1 -0
- package/dist/esm/circular-progress.d.ts +2 -0
- package/dist/esm/circular-progress.js +1 -0
- package/dist/esm/components/alert/Alert.css.d.ts +24 -0
- package/dist/esm/components/alert/Alert.d.ts +14 -0
- package/dist/esm/components/alert/index.d.ts +1 -0
- package/dist/esm/components/banner/Banner.css.d.ts +21 -0
- package/dist/esm/components/banner/Banner.d.ts +12 -0
- package/dist/esm/components/banner/index.d.ts +1 -0
- package/dist/esm/components/circular-progress/CircularProgress.css.d.ts +4 -0
- package/dist/esm/components/circular-progress/CircularProgress.d.ts +17 -0
- package/dist/esm/components/circular-progress/index.d.ts +1 -0
- package/dist/esm/components/empty-state/EmptyState.css.d.ts +1 -0
- package/dist/esm/components/empty-state/EmptyState.d.ts +15 -0
- package/dist/esm/components/empty-state/index.d.ts +1 -0
- package/dist/esm/components/error-boundary/ErrorBoundary.d.ts +32 -0
- package/dist/esm/components/error-boundary/index.d.ts +1 -0
- package/dist/esm/components/inline-message/InlineMessage.css.d.ts +17 -0
- package/dist/esm/components/inline-message/InlineMessage.d.ts +10 -0
- package/dist/esm/components/inline-message/index.d.ts +1 -0
- package/dist/esm/components/loading-overlay/LoadingOverlay.css.d.ts +3 -0
- package/dist/esm/components/loading-overlay/LoadingOverlay.d.ts +11 -0
- package/dist/esm/components/loading-overlay/index.d.ts +1 -0
- package/dist/esm/components/progress-bar/ProgressBar.css.d.ts +2 -0
- package/dist/esm/components/progress-bar/ProgressBar.d.ts +12 -0
- package/dist/esm/components/progress-bar/index.d.ts +1 -0
- package/dist/esm/components/skeleton/Skeleton.css.d.ts +15 -0
- package/dist/esm/components/skeleton/Skeleton.d.ts +35 -0
- package/dist/esm/components/skeleton/index.d.ts +1 -0
- package/dist/esm/components/spinner/Spinner.css.d.ts +16 -0
- package/dist/esm/components/spinner/Spinner.d.ts +10 -0
- package/dist/esm/components/spinner/index.d.ts +1 -0
- package/dist/esm/components/toaster/ToastItemView.d.ts +7 -0
- package/dist/esm/components/toaster/Toaster.css.d.ts +59 -0
- package/dist/esm/components/toaster/Toaster.d.ts +10 -0
- package/dist/esm/components/toaster/index.d.ts +2 -0
- package/dist/esm/components/toaster/toastStore.d.ts +25 -0
- package/dist/esm/empty-state.d.ts +2 -0
- package/dist/esm/empty-state.js +1 -0
- package/dist/esm/error-boundary.d.ts +2 -0
- package/dist/esm/error-boundary.js +1 -0
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.js +11 -0
- package/dist/esm/inline-message.d.ts +2 -0
- package/dist/esm/inline-message.js +1 -0
- package/dist/esm/loading-overlay.d.ts +2 -0
- package/dist/esm/loading-overlay.js +1 -0
- package/dist/esm/polymorphic.d.ts +5 -0
- package/dist/esm/progress-bar.d.ts +2 -0
- package/dist/esm/progress-bar.js +1 -0
- package/dist/esm/skeleton.d.ts +2 -0
- package/dist/esm/skeleton.js +1 -0
- package/dist/esm/spacing.d.ts +19 -0
- package/dist/esm/spinner.d.ts +2 -0
- package/dist/esm/spinner.js +1 -0
- package/dist/esm/status.d.ts +4 -0
- package/dist/esm/toaster.d.ts +2 -0
- package/dist/esm/toaster.js +1 -0
- package/package.json +147 -0
package/README.md
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# @vinyasa/feedback
|
|
2
|
+
|
|
3
|
+
11 feedback primitives: Spinner, ProgressBar, CircularProgress, Alert, Banner, InlineMessage, Skeleton, LoadingOverlay, EmptyState, ErrorBoundary, Toaster (+ the `toast` imperative API).
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @vinyasa/feedback @vinyasa/layout @vinyasa/typography @vinyasa/icons @vinyasa/button @vinyasa/tokens react react-dom
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
This is the one package that sits on top of every other category — it composes `@vinyasa/layout` (Box, Stack, Center), `@vinyasa/typography` (Heading, Paragraph), `@vinyasa/icons` (status icons), and `@vinyasa/button` (action slots), rather than being a peer to them. All five are peer dependencies. Rendering requires a `VinyasaProvider` (from `@vinyasa/tokens`) above these components in the tree — including `<Toaster />`, which renders in place (not via a portal — see its own docs below) and so must stay inside the same `VinyasaProvider` subtree as everything else.
|
|
12
|
+
|
|
13
|
+
## New tokens this package introduces
|
|
14
|
+
|
|
15
|
+
Alert/Banner/InlineMessage/Toast share one status system — four pale-background + readable-text pairs, purpose-built for status communication (distinct from `primary`/`secondary`/`tertiary`, which are Button's brand-hierarchy roles, and from the existing solid `error`/`onError` pair, which is built for Button's loud danger variant, not a pale alert box):
|
|
16
|
+
|
|
17
|
+
| Token | Value | Source |
|
|
18
|
+
| ------------------- | --------- | -------------------- |
|
|
19
|
+
| `statusInfoBg` | `#dbeafe` | existing `blue[100]` |
|
|
20
|
+
| `statusInfoText` | `#1d4ed8` | existing `blue[700]` |
|
|
21
|
+
| `statusSuccessBg` | `#dcfce7` | new `green[100]` |
|
|
22
|
+
| `statusSuccessText` | `#15803d` | new `green[700]` |
|
|
23
|
+
| `statusWarningBg` | `#fef3c7` | new `amber[100]` |
|
|
24
|
+
| `statusWarningText` | `#b45309` | new `amber[700]` |
|
|
25
|
+
| `statusErrorBg` | `#fee2e2` | existing `red[100]` |
|
|
26
|
+
| `statusErrorText` | `#dc2626` | existing `red[600]` |
|
|
27
|
+
|
|
28
|
+
Everything else (Spinner, Skeleton, both progress components, LoadingOverlay) reuses existing tokens — `primary`/`secondary`/`borderColorDefault`/`radiusFull`/`elevationOverlay`/`zIndexOverlay`/`zIndexToast`.
|
|
29
|
+
|
|
30
|
+
## Spacing
|
|
31
|
+
|
|
32
|
+
Every component accepts the same margin/padding props as `@vinyasa/layout` — see [its README](../layout/README.md#spacing) for the full prop and token tables.
|
|
33
|
+
|
|
34
|
+
## Usage
|
|
35
|
+
|
|
36
|
+
### Spinner
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
<Spinner size="md" />
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
A public, standalone spinner — distinct from the private one `@vinyasa/button` already uses internally for its own `loading` prop, not a shared dependency between the two.
|
|
43
|
+
|
|
44
|
+
### ProgressBar, CircularProgress
|
|
45
|
+
|
|
46
|
+
```tsx
|
|
47
|
+
<ProgressBar value={60} />
|
|
48
|
+
<CircularProgress value={60} />
|
|
49
|
+
<CircularProgress /> {/* indeterminate — omit value */}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Both expose `role="progressbar"` with `aria-valuenow`/`aria-valuemin`/`aria-valuemax`.
|
|
53
|
+
|
|
54
|
+
### Alert, Banner, InlineMessage
|
|
55
|
+
|
|
56
|
+
One shared status vocabulary — `status`: `info` / `success` / `warning` / `error` — differing only in layout: `Alert` is boxed (icon + title + description), `Banner` is edge-to-edge (for a page/section top), `InlineMessage` is bare (icon + colored text, e.g. under a form field).
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
<Alert status="success" title="Saved" description="Your changes have been saved." />
|
|
60
|
+
<Banner status="warning">Scheduled maintenance tonight at 10pm.</Banner>
|
|
61
|
+
<InlineMessage status="error">This field is required.</InlineMessage>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Skeleton
|
|
65
|
+
|
|
66
|
+
```tsx
|
|
67
|
+
<Skeleton width="100%" height="1rem" />
|
|
68
|
+
<Skeleton circle width="3rem" height="3rem" />
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### LoadingOverlay
|
|
72
|
+
|
|
73
|
+
```tsx
|
|
74
|
+
<LoadingOverlay visible={isLoading}>
|
|
75
|
+
<Content />
|
|
76
|
+
</LoadingOverlay>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### EmptyState
|
|
80
|
+
|
|
81
|
+
```tsx
|
|
82
|
+
<EmptyState
|
|
83
|
+
icon={<InboxIcon />}
|
|
84
|
+
title="No results"
|
|
85
|
+
description="Try adjusting your filters."
|
|
86
|
+
action={<Button>Clear filters</Button>}
|
|
87
|
+
/>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### ErrorBoundary
|
|
91
|
+
|
|
92
|
+
The one class component in the system — `getDerivedStateFromError`/`componentDidCatch` have no hook equivalent.
|
|
93
|
+
|
|
94
|
+
```tsx
|
|
95
|
+
<ErrorBoundary fallback={<EmptyState title="Something went wrong" />}>
|
|
96
|
+
<App />
|
|
97
|
+
</ErrorBoundary>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Toaster + toast
|
|
101
|
+
|
|
102
|
+
An imperative API: mount one `<Toaster />` inside `VinyasaProvider`, near the app root, then call `toast.show()` from anywhere.
|
|
103
|
+
|
|
104
|
+
```tsx
|
|
105
|
+
// once, inside VinyasaProvider, near the app root
|
|
106
|
+
<Toaster position="bottom-right" />;
|
|
107
|
+
|
|
108
|
+
// from anywhere
|
|
109
|
+
import { toast } from '@vinyasa/feedback';
|
|
110
|
+
toast.show({ status: 'success', title: 'Saved' });
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
`position` accepts `top-left` / `top-center` / `top-right` / `bottom-left` / `bottom-center` / `bottom-right`, defaulting to `bottom-right`. Mount exactly one `<Toaster />` — the `toast` API is backed by a single global store, same as Mantine/sonner, so multiple instances would all render the same list rather than partitioning it by position.
|
|
114
|
+
|
|
115
|
+
`Toaster` renders in place with `position: fixed`, deliberately not via a portal to `document.body`: `VinyasaProvider` injects its theme as CSS custom properties on its own wrapper element rather than on `:root`, so anything portaled outside that subtree would lose every token (transparent backgrounds, no radius, no shadow). `position: fixed` already floats the toast stack above the rest of the page without leaving the themed DOM subtree.
|
|
116
|
+
|
|
117
|
+
## Subpath imports
|
|
118
|
+
|
|
119
|
+
Every component can be imported directly instead of through the package root, e.g.:
|
|
120
|
+
|
|
121
|
+
```tsx
|
|
122
|
+
import Spinner from '@vinyasa/feedback/spinner';
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Development
|
|
126
|
+
|
|
127
|
+
From the repository root:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
pnpm --filter @vinyasa/feedback build
|
|
131
|
+
pnpm --filter @vinyasa/feedback test
|
|
132
|
+
pnpm --filter @vinyasa/feedback lint
|
|
133
|
+
pnpm storybook # Feedback/*
|
|
134
|
+
```
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.n = (module)=>{
|
|
5
|
+
var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
|
|
6
|
+
__webpack_require__.d(getter, {
|
|
7
|
+
a: getter
|
|
8
|
+
});
|
|
9
|
+
return getter;
|
|
10
|
+
};
|
|
11
|
+
})();
|
|
12
|
+
(()=>{
|
|
13
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
14
|
+
var define = (defs, kind)=>{
|
|
15
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
[kind]: defs[key]
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
define(getters, "get");
|
|
21
|
+
define(values, "value");
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
(()=>{
|
|
25
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
26
|
+
})();
|
|
27
|
+
(()=>{
|
|
28
|
+
__webpack_require__.r = (exports1)=>{
|
|
29
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
30
|
+
value: 'Module'
|
|
31
|
+
});
|
|
32
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
33
|
+
value: true
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
})();
|
|
37
|
+
var __webpack_exports__ = {};
|
|
38
|
+
__webpack_require__.r(__webpack_exports__);
|
|
39
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
40
|
+
default: ()=>alert_Alert
|
|
41
|
+
});
|
|
42
|
+
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
43
|
+
const box_namespaceObject = require("@vinyasa/layout/box");
|
|
44
|
+
var box_default = /*#__PURE__*/ __webpack_require__.n(box_namespaceObject);
|
|
45
|
+
const external_react_namespaceObject = require("react");
|
|
46
|
+
const icons_namespaceObject = require("@vinyasa/icons");
|
|
47
|
+
const statusIcons = {
|
|
48
|
+
info: icons_namespaceObject.InfoIcon,
|
|
49
|
+
success: icons_namespaceObject.CheckCircleIcon,
|
|
50
|
+
warning: icons_namespaceObject.AlertTriangleIcon,
|
|
51
|
+
error: icons_namespaceObject.XIcon
|
|
52
|
+
};
|
|
53
|
+
function toPrimitive(t, r) {
|
|
54
|
+
if ("object" != typeof t || !t) return t;
|
|
55
|
+
var e = t[Symbol.toPrimitive];
|
|
56
|
+
if (void 0 !== e) {
|
|
57
|
+
var i = e.call(t, r || "default");
|
|
58
|
+
if ("object" != typeof i) return i;
|
|
59
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
60
|
+
}
|
|
61
|
+
return ("string" === r ? String : Number)(t);
|
|
62
|
+
}
|
|
63
|
+
function toPropertyKey(t) {
|
|
64
|
+
var i = toPrimitive(t, "string");
|
|
65
|
+
return "symbol" == typeof i ? i : String(i);
|
|
66
|
+
}
|
|
67
|
+
function _defineProperty(obj, key, value) {
|
|
68
|
+
key = toPropertyKey(key);
|
|
69
|
+
if (key in obj) Object.defineProperty(obj, key, {
|
|
70
|
+
value: value,
|
|
71
|
+
enumerable: true,
|
|
72
|
+
configurable: true,
|
|
73
|
+
writable: true
|
|
74
|
+
});
|
|
75
|
+
else obj[key] = value;
|
|
76
|
+
return obj;
|
|
77
|
+
}
|
|
78
|
+
function createRuntimeFn_62c9670f_esm_ownKeys(e, r) {
|
|
79
|
+
var t = Object.keys(e);
|
|
80
|
+
if (Object.getOwnPropertySymbols) {
|
|
81
|
+
var o = Object.getOwnPropertySymbols(e);
|
|
82
|
+
r && (o = o.filter(function(r) {
|
|
83
|
+
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
|
84
|
+
})), t.push.apply(t, o);
|
|
85
|
+
}
|
|
86
|
+
return t;
|
|
87
|
+
}
|
|
88
|
+
function _objectSpread2(e) {
|
|
89
|
+
for(var r = 1; r < arguments.length; r++){
|
|
90
|
+
var t = null != arguments[r] ? arguments[r] : {};
|
|
91
|
+
r % 2 ? createRuntimeFn_62c9670f_esm_ownKeys(Object(t), !0).forEach(function(r) {
|
|
92
|
+
_defineProperty(e, r, t[r]);
|
|
93
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : createRuntimeFn_62c9670f_esm_ownKeys(Object(t)).forEach(function(r) {
|
|
94
|
+
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
return e;
|
|
98
|
+
}
|
|
99
|
+
function mapValues(input, fn) {
|
|
100
|
+
var result = {};
|
|
101
|
+
for(var _key in input)result[_key] = fn(input[_key], _key);
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
var shouldApplyCompound = (compoundCheck, selections, defaultVariants)=>{
|
|
105
|
+
for (var key of Object.keys(compoundCheck)){
|
|
106
|
+
var _selections$key;
|
|
107
|
+
if (compoundCheck[key] !== (null != (_selections$key = selections[key]) ? _selections$key : defaultVariants[key])) return false;
|
|
108
|
+
}
|
|
109
|
+
return true;
|
|
110
|
+
};
|
|
111
|
+
var createRuntimeFn = (config)=>{
|
|
112
|
+
var runtimeFn = (options)=>{
|
|
113
|
+
var className = config.defaultClassName;
|
|
114
|
+
var selections = _objectSpread2(_objectSpread2({}, config.defaultVariants), options);
|
|
115
|
+
for(var variantName in selections){
|
|
116
|
+
var _selections$variantNa;
|
|
117
|
+
var variantSelection = null != (_selections$variantNa = selections[variantName]) ? _selections$variantNa : config.defaultVariants[variantName];
|
|
118
|
+
if (null != variantSelection) {
|
|
119
|
+
var selection = variantSelection;
|
|
120
|
+
if ('boolean' == typeof selection) selection = true === selection ? 'true' : 'false';
|
|
121
|
+
var selectionClassName = config.variantClassNames[variantName][selection];
|
|
122
|
+
if (selectionClassName) className += ' ' + selectionClassName;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
for (var [compoundCheck, compoundClassName] of config.compoundVariants)if (shouldApplyCompound(compoundCheck, selections, config.defaultVariants)) className += ' ' + compoundClassName;
|
|
126
|
+
return className;
|
|
127
|
+
};
|
|
128
|
+
runtimeFn.variants = ()=>Object.keys(config.variantClassNames);
|
|
129
|
+
runtimeFn.classNames = {
|
|
130
|
+
get base () {
|
|
131
|
+
return config.defaultClassName.split(' ')[0];
|
|
132
|
+
},
|
|
133
|
+
get variants () {
|
|
134
|
+
return mapValues(config.variantClassNames, (classNames)=>mapValues(classNames, (className)=>className.split(' ')[0]));
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
return runtimeFn;
|
|
138
|
+
};
|
|
139
|
+
var Alert_css_alert = createRuntimeFn({
|
|
140
|
+
defaultClassName: '_1313gq0',
|
|
141
|
+
variantClassNames: {
|
|
142
|
+
status: {
|
|
143
|
+
info: '_1313gq1',
|
|
144
|
+
success: '_1313gq2',
|
|
145
|
+
warning: '_1313gq3',
|
|
146
|
+
error: '_1313gq4'
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
defaultVariants: {
|
|
150
|
+
status: 'info'
|
|
151
|
+
},
|
|
152
|
+
compoundVariants: []
|
|
153
|
+
});
|
|
154
|
+
var body = '_1313gq6';
|
|
155
|
+
var Alert_css_description = '_1313gq8';
|
|
156
|
+
var icon = '_1313gq5';
|
|
157
|
+
var Alert_css_title = '_1313gq7';
|
|
158
|
+
function _define_property(obj, key, value) {
|
|
159
|
+
if (key in obj) Object.defineProperty(obj, key, {
|
|
160
|
+
value: value,
|
|
161
|
+
enumerable: true,
|
|
162
|
+
configurable: true,
|
|
163
|
+
writable: true
|
|
164
|
+
});
|
|
165
|
+
else obj[key] = value;
|
|
166
|
+
return obj;
|
|
167
|
+
}
|
|
168
|
+
function _object_spread(target) {
|
|
169
|
+
for(var i = 1; i < arguments.length; i++){
|
|
170
|
+
var source = null != arguments[i] ? arguments[i] : {};
|
|
171
|
+
var ownKeys = Object.keys(source);
|
|
172
|
+
if ("function" == typeof Object.getOwnPropertySymbols) ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
173
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
174
|
+
}));
|
|
175
|
+
ownKeys.forEach(function(key) {
|
|
176
|
+
_define_property(target, key, source[key]);
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
return target;
|
|
180
|
+
}
|
|
181
|
+
function Alert_ownKeys(object, enumerableOnly) {
|
|
182
|
+
var keys = Object.keys(object);
|
|
183
|
+
if (Object.getOwnPropertySymbols) {
|
|
184
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
185
|
+
if (enumerableOnly) symbols = symbols.filter(function(sym) {
|
|
186
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
187
|
+
});
|
|
188
|
+
keys.push.apply(keys, symbols);
|
|
189
|
+
}
|
|
190
|
+
return keys;
|
|
191
|
+
}
|
|
192
|
+
function _object_spread_props(target, source) {
|
|
193
|
+
source = null != source ? source : {};
|
|
194
|
+
if (Object.getOwnPropertyDescriptors) Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
195
|
+
else Alert_ownKeys(Object(source)).forEach(function(key) {
|
|
196
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
197
|
+
});
|
|
198
|
+
return target;
|
|
199
|
+
}
|
|
200
|
+
function _object_without_properties(source, excluded) {
|
|
201
|
+
if (null == source) return {};
|
|
202
|
+
var target = {}, sourceKeys, key, i;
|
|
203
|
+
if ("u" > typeof Reflect && Reflect.ownKeys) {
|
|
204
|
+
sourceKeys = Reflect.ownKeys(Object(source));
|
|
205
|
+
for(i = 0; i < sourceKeys.length; i++){
|
|
206
|
+
key = sourceKeys[i];
|
|
207
|
+
if (!(excluded.indexOf(key) >= 0)) {
|
|
208
|
+
if (Object.prototype.propertyIsEnumerable.call(source, key)) target[key] = source[key];
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return target;
|
|
212
|
+
}
|
|
213
|
+
target = _object_without_properties_loose(source, excluded);
|
|
214
|
+
if (Object.getOwnPropertySymbols) {
|
|
215
|
+
sourceKeys = Object.getOwnPropertySymbols(source);
|
|
216
|
+
for(i = 0; i < sourceKeys.length; i++){
|
|
217
|
+
key = sourceKeys[i];
|
|
218
|
+
if (!(excluded.indexOf(key) >= 0)) {
|
|
219
|
+
if (Object.prototype.propertyIsEnumerable.call(source, key)) target[key] = source[key];
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return target;
|
|
224
|
+
}
|
|
225
|
+
function _object_without_properties_loose(source, excluded) {
|
|
226
|
+
if (null == source) return {};
|
|
227
|
+
var target = {}, sourceKeys = Object.getOwnPropertyNames(source), key, i;
|
|
228
|
+
for(i = 0; i < sourceKeys.length; i++){
|
|
229
|
+
key = sourceKeys[i];
|
|
230
|
+
if (!(excluded.indexOf(key) >= 0)) {
|
|
231
|
+
if (Object.prototype.propertyIsEnumerable.call(source, key)) target[key] = source[key];
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return target;
|
|
235
|
+
}
|
|
236
|
+
const Alert = /*#__PURE__*/ (0, external_react_namespaceObject.forwardRef)((_0, _1)=>{
|
|
237
|
+
let _ref = [
|
|
238
|
+
_0,
|
|
239
|
+
_1
|
|
240
|
+
], [_ref1, ..._rest] = _ref, { status = 'info', title, description, className } = _ref1, rest = _object_without_properties(_ref1, [
|
|
241
|
+
"status",
|
|
242
|
+
"title",
|
|
243
|
+
"description",
|
|
244
|
+
"className"
|
|
245
|
+
]), [ref] = _rest;
|
|
246
|
+
const Icon = statusIcons[status];
|
|
247
|
+
const classes = className ? `${Alert_css_alert({
|
|
248
|
+
status
|
|
249
|
+
})} ${className}` : Alert_css_alert({
|
|
250
|
+
status
|
|
251
|
+
});
|
|
252
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(box_default(), _object_spread_props(_object_spread({
|
|
253
|
+
ref: ref,
|
|
254
|
+
role: "alert",
|
|
255
|
+
className: classes
|
|
256
|
+
}, rest), {
|
|
257
|
+
children: [
|
|
258
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(Icon, {
|
|
259
|
+
className: icon,
|
|
260
|
+
"aria-hidden": "true"
|
|
261
|
+
}),
|
|
262
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)("div", {
|
|
263
|
+
className: body,
|
|
264
|
+
children: [
|
|
265
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("p", {
|
|
266
|
+
className: Alert_css_title,
|
|
267
|
+
children: title
|
|
268
|
+
}),
|
|
269
|
+
description ? /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("p", {
|
|
270
|
+
className: Alert_css_description,
|
|
271
|
+
children: description
|
|
272
|
+
}) : null
|
|
273
|
+
]
|
|
274
|
+
})
|
|
275
|
+
]
|
|
276
|
+
}));
|
|
277
|
+
});
|
|
278
|
+
Alert.displayName = 'Alert';
|
|
279
|
+
const alert_Alert = Alert;
|
|
280
|
+
exports["default"] = __webpack_exports__["default"];
|
|
281
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
282
|
+
"default"
|
|
283
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
284
|
+
Object.defineProperty(exports, '__esModule', {
|
|
285
|
+
value: true
|
|
286
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
._1313gq0 {
|
|
2
|
+
align-items: flex-start;
|
|
3
|
+
gap: var(--vinyasa-space3);
|
|
4
|
+
padding: var(--vinyasa-space4);
|
|
5
|
+
border-radius: var(--vinyasa-radius-md);
|
|
6
|
+
font-family: var(--vinyasa-font-family-sans);
|
|
7
|
+
display: flex;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
._1313gq1 {
|
|
11
|
+
background-color: var(--vinyasa-status-info-bg);
|
|
12
|
+
color: var(--vinyasa-status-info-text);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
._1313gq2 {
|
|
16
|
+
background-color: var(--vinyasa-status-success-bg);
|
|
17
|
+
color: var(--vinyasa-status-success-text);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
._1313gq3 {
|
|
21
|
+
background-color: var(--vinyasa-status-warning-bg);
|
|
22
|
+
color: var(--vinyasa-status-warning-text);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
._1313gq4 {
|
|
26
|
+
background-color: var(--vinyasa-status-error-bg);
|
|
27
|
+
color: var(--vinyasa-status-error-text);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
._1313gq5 {
|
|
31
|
+
flex-shrink: 0;
|
|
32
|
+
margin-top: .125em;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
._1313gq6 {
|
|
36
|
+
gap: var(--vinyasa-space1);
|
|
37
|
+
flex-direction: column;
|
|
38
|
+
display: flex;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
._1313gq7 {
|
|
42
|
+
font-size: var(--vinyasa-font-size-sm);
|
|
43
|
+
font-weight: var(--vinyasa-font-weight-semibold);
|
|
44
|
+
margin: 0;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
._1313gq8 {
|
|
48
|
+
font-size: var(--vinyasa-font-size-sm);
|
|
49
|
+
margin: 0;
|
|
50
|
+
}
|
|
51
|
+
|