@unbxd-ui/unbxd-react-components 0.2.145-beta.8 → 0.2.145-beta.9

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.
@@ -3,9 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = exports.WithErrorHandling = exports.WithCustomLoader = exports.MultipleRequests = exports.Interactive = exports.Default = void 0;
6
+ exports["default"] = exports.WithErrorHandling = exports.WithDifferentLoaderStates = exports.WithCustomLoader = exports.MultipleRequests = exports.Interactive = exports.Default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _DataLoader = _interopRequireDefault(require("./DataLoader"));
9
+ var _PageLoader = _interopRequireDefault(require("../PageLoader"));
9
10
  var _dataLoader = _interopRequireDefault(require("../../core/dataLoader"));
10
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
11
12
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
@@ -47,17 +48,13 @@ var mockRequests = [{
47
48
  }
48
49
  }];
49
50
 
50
- // Custom loader component example
51
+ // Custom loader component using PageLoader
51
52
  var CustomLoader = function CustomLoader() {
52
- return /*#__PURE__*/_react["default"].createElement("div", {
53
- style: {
54
- padding: '20px',
55
- border: '1px solid #ccc',
56
- borderRadius: '4px',
57
- textAlign: 'center',
58
- background: '#f5f5f5'
59
- }
60
- }, "Loading data...");
53
+ return /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], {
54
+ header: "Loading Data",
55
+ messages: ['Fetching from API...', 'Processing data...', 'Almost ready...'],
56
+ showLoader: true
57
+ });
61
58
  };
62
59
 
63
60
  // Custom error component example
@@ -149,7 +146,8 @@ var WithErrorHandling = exports.WithErrorHandling = {
149
146
  onDataFailed: function onDataFailed(err) {
150
147
  console.error('Error:', err);
151
148
  setError(err);
152
- }
149
+ },
150
+ Loader: CustomLoader
153
151
  }, error ? /*#__PURE__*/_react["default"].createElement(ErrorDisplay, {
154
152
  error: error
155
153
  }) : /*#__PURE__*/_react["default"].createElement("div", null, "Data loaded successfully!")));
@@ -182,7 +180,8 @@ var MultipleRequests = exports.MultipleRequests = {
182
180
  },
183
181
  onDataFailed: function onDataFailed(error) {
184
182
  return console.error('Error:', error);
185
- }
183
+ },
184
+ Loader: CustomLoader
186
185
  }, /*#__PURE__*/_react["default"].createElement("div", null, "Multiple requests completed!"));
187
186
  }
188
187
  };
@@ -193,4 +192,69 @@ var Interactive = exports.Interactive = {
193
192
  requests: mockRequests,
194
193
  children: /*#__PURE__*/_react["default"].createElement("div", null, "Data loaded successfully!")
195
194
  }
195
+ };
196
+
197
+ // Example with different PageLoader configurations
198
+ var WithDifferentLoaderStates = exports.WithDifferentLoaderStates = {
199
+ render: function render() {
200
+ var _React$useState3 = _react["default"].useState('simple'),
201
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
202
+ loadingState = _React$useState4[0],
203
+ setLoadingState = _React$useState4[1];
204
+ var SimpleLoader = function SimpleLoader() {
205
+ return /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], {
206
+ showLoader: true
207
+ });
208
+ };
209
+ var HeaderLoader = function HeaderLoader() {
210
+ return /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], {
211
+ header: "Fetching User Data",
212
+ showLoader: true
213
+ });
214
+ };
215
+ var MessagesLoader = function MessagesLoader() {
216
+ return /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], {
217
+ header: "Loading Dashboard",
218
+ messages: ['Connecting to database...', 'Fetching user preferences...', 'Loading dashboard widgets...', 'Finalizing setup...'],
219
+ showLoader: true
220
+ });
221
+ };
222
+ var getLoader = function getLoader() {
223
+ switch (loadingState) {
224
+ case 'simple':
225
+ return SimpleLoader;
226
+ case 'header':
227
+ return HeaderLoader;
228
+ case 'messages':
229
+ return MessagesLoader;
230
+ default:
231
+ return SimpleLoader;
232
+ }
233
+ };
234
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
235
+ style: {
236
+ marginBottom: '20px'
237
+ }
238
+ }, /*#__PURE__*/_react["default"].createElement("label", null, "Loader Type: "), /*#__PURE__*/_react["default"].createElement("select", {
239
+ value: loadingState,
240
+ onChange: function onChange(e) {
241
+ return setLoadingState(e.target.value);
242
+ }
243
+ }, /*#__PURE__*/_react["default"].createElement("option", {
244
+ value: "simple"
245
+ }, "Simple Loader"), /*#__PURE__*/_react["default"].createElement("option", {
246
+ value: "header"
247
+ }, "With Header"), /*#__PURE__*/_react["default"].createElement("option", {
248
+ value: "messages"
249
+ }, "With Cycling Messages"))), /*#__PURE__*/_react["default"].createElement(_DataLoader["default"], {
250
+ requests: mockRequests,
251
+ Loader: getLoader(),
252
+ onDataLoaded: function onDataLoaded(results) {
253
+ return console.log('Data loaded:', results);
254
+ },
255
+ onDataFailed: function onDataFailed(error) {
256
+ return console.error('Error:', error);
257
+ }
258
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Data loaded successfully!")));
259
+ }
196
260
  };
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _excluded = ["className", "header", "messages", "showLoader", "messageInterval"];
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
13
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
14
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
15
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
17
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
18
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
19
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
20
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
21
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
22
+ var PageLoader = function PageLoader(_ref) {
23
+ var _ref$className = _ref.className,
24
+ className = _ref$className === void 0 ? "" : _ref$className,
25
+ header = _ref.header,
26
+ _ref$messages = _ref.messages,
27
+ messages = _ref$messages === void 0 ? [] : _ref$messages,
28
+ _ref$showLoader = _ref.showLoader,
29
+ showLoader = _ref$showLoader === void 0 ? true : _ref$showLoader,
30
+ _ref$messageInterval = _ref.messageInterval,
31
+ messageInterval = _ref$messageInterval === void 0 ? 2500 : _ref$messageInterval,
32
+ restProps = _objectWithoutProperties(_ref, _excluded);
33
+ var _useState = (0, _react.useState)(0),
34
+ _useState2 = _slicedToArray(_useState, 2),
35
+ currentMessageIndex = _useState2[0],
36
+ setCurrentMessageIndex = _useState2[1];
37
+ var _useState3 = (0, _react.useState)(true),
38
+ _useState4 = _slicedToArray(_useState3, 2),
39
+ fade = _useState4[0],
40
+ setFade = _useState4[1];
41
+ (0, _react.useEffect)(function () {
42
+ if (messages.length > 1) {
43
+ var interval = setInterval(function () {
44
+ setFade(false); // Start fade-out
45
+ setTimeout(function () {
46
+ setCurrentMessageIndex(function (prev) {
47
+ return (prev + 1) % messages.length;
48
+ });
49
+ setFade(true); // Start fade-in
50
+ }, 250); // Adjust for smoother transition (half of fade duration)
51
+ }, messageInterval); // Change message every messageInterval
52
+ return function () {
53
+ return clearInterval(interval);
54
+ };
55
+ }
56
+ }, [messages, messageInterval]); // Add messageInterval to dependency array
57
+
58
+ if (!showLoader) return null;
59
+ return /*#__PURE__*/_react["default"].createElement("div", {
60
+ className: "loader-wrapper"
61
+ }, /*#__PURE__*/_react["default"].createElement("div", _extends({
62
+ className: "page-loader ".concat(className)
63
+ }, restProps), /*#__PURE__*/_react["default"].createElement("img", {
64
+ src: "https://d3t0v15wul5tya.cloudfront.net/selfserve-ui/prod/assets/images/blueLoader.svg",
65
+ alt: "Loading..."
66
+ })), header && /*#__PURE__*/_react["default"].createElement("div", {
67
+ className: "loader-header"
68
+ }, header), messages.length > 0 && /*#__PURE__*/_react["default"].createElement("div", {
69
+ className: "loader-messages ".concat(fade ? "fade-in" : "fade-out")
70
+ }, messages[currentMessageIndex]));
71
+ };
72
+ PageLoader.propTypes = {
73
+ /** Additional CSS classes for the loader */
74
+ className: _propTypes["default"].string,
75
+ /** Header text to display above the loader */
76
+ header: _propTypes["default"].string,
77
+ /** Array of messages that cycle automatically */
78
+ messages: _propTypes["default"].arrayOf(_propTypes["default"].string),
79
+ /** Whether to show the loader */
80
+ showLoader: _propTypes["default"].bool,
81
+ /** Interval in milliseconds for message changes (default: 2500ms) */
82
+ messageInterval: _propTypes["default"].number
83
+ };
84
+ var _default = exports["default"] = PageLoader;
@@ -0,0 +1,276 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.WithSingleMessage = exports.WithHeader = exports.WithCyclingMessages = exports.SlowCyclingMessages = exports.MinimalLoader = exports.LongLoadingExample = exports.Interactive = exports.FastCyclingMessages = exports.Default = exports.DataLoadingSimulation = exports.CustomizableInterval = exports.CustomStyling = exports.AccessibilityFeatures = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _PageLoader = _interopRequireDefault(require("./PageLoader"));
10
+ var _Button = _interopRequireDefault(require("../Button/Button"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
13
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
14
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
15
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
17
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
18
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
19
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
20
+ var meta = {
21
+ title: 'Components/PageLoader',
22
+ component: _PageLoader["default"],
23
+ parameters: {
24
+ layout: 'fullscreen',
25
+ docs: {
26
+ description: {
27
+ component: 'A full-screen page loader with animated dots and cycling messages. Shows a wave-scanning animation with optional header and rotating status messages.'
28
+ }
29
+ }
30
+ },
31
+ tags: ['autodocs'],
32
+ argTypes: {
33
+ className: {
34
+ control: 'text',
35
+ description: 'Additional CSS classes for the loader'
36
+ },
37
+ header: {
38
+ control: 'text',
39
+ description: 'Header text to display above the loader'
40
+ },
41
+ messages: {
42
+ control: 'object',
43
+ description: 'Array of messages that cycle automatically'
44
+ },
45
+ showLoader: {
46
+ control: 'boolean',
47
+ description: 'Whether to show the loader'
48
+ },
49
+ messageInterval: {
50
+ control: {
51
+ type: 'range',
52
+ min: 500,
53
+ max: 10000,
54
+ step: 500
55
+ },
56
+ description: 'Interval in milliseconds for message changes (default: 2500ms)'
57
+ }
58
+ }
59
+ };
60
+ var _default = exports["default"] = meta; // Default story
61
+ var Default = exports.Default = {
62
+ args: {
63
+ showLoader: true
64
+ },
65
+ render: function render(args) {
66
+ return /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], args);
67
+ }
68
+ };
69
+
70
+ // With header only
71
+ var WithHeader = exports.WithHeader = {
72
+ args: {
73
+ showLoader: true,
74
+ header: "Loading Application"
75
+ },
76
+ render: function render(args) {
77
+ return /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], args);
78
+ }
79
+ };
80
+
81
+ // With header and single message
82
+ var WithSingleMessage = exports.WithSingleMessage = {
83
+ args: {
84
+ showLoader: true,
85
+ header: "Processing Request",
86
+ messages: ["Please wait while we process your request..."]
87
+ },
88
+ render: function render(args) {
89
+ return /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], args);
90
+ }
91
+ };
92
+
93
+ // With cycling messages
94
+ var WithCyclingMessages = exports.WithCyclingMessages = {
95
+ args: {
96
+ showLoader: true,
97
+ header: "Loading Dashboard",
98
+ messages: ["Initializing application...", "Loading user preferences...", "Fetching latest data...", "Almost ready..."],
99
+ messageInterval: 2000 // Slightly faster than default
100
+ },
101
+ render: function render(args) {
102
+ return /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], args);
103
+ }
104
+ };
105
+
106
+ // Fast cycling messages
107
+ var FastCyclingMessages = exports.FastCyclingMessages = {
108
+ args: {
109
+ showLoader: true,
110
+ header: "Fast Message Cycling",
111
+ messages: ["Message 1", "Message 2", "Message 3", "Message 4"],
112
+ messageInterval: 1000 // 1 second interval
113
+ },
114
+ render: function render(args) {
115
+ return /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], args);
116
+ }
117
+ };
118
+
119
+ // Slow cycling messages
120
+ var SlowCyclingMessages = exports.SlowCyclingMessages = {
121
+ args: {
122
+ showLoader: true,
123
+ header: "Slow Message Cycling",
124
+ messages: ["Taking time to process...", "This might take a while...", "Please be patient...", "Still working on it..."],
125
+ messageInterval: 5000 // 5 second interval
126
+ },
127
+ render: function render(args) {
128
+ return /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], args);
129
+ }
130
+ };
131
+
132
+ // Customizable interval demo
133
+ var CustomizableInterval = exports.CustomizableInterval = {
134
+ args: {
135
+ showLoader: true,
136
+ header: "Customizable Message Speed",
137
+ messages: ["Adjust the controls to change speed", "Use the messageInterval prop", "Perfect for different use cases", "From fast alerts to slow processes"],
138
+ messageInterval: 2500 // Default interval
139
+ },
140
+ render: function render(args) {
141
+ return /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], args);
142
+ }
143
+ };
144
+
145
+ // Long loading simulation
146
+ var LongLoadingExample = exports.LongLoadingExample = {
147
+ args: {
148
+ showLoader: true,
149
+ header: "Setting up your workspace",
150
+ messages: ["Connecting to servers...", "Downloading configuration...", "Installing dependencies...", "Optimizing performance...", "Finalizing setup...", "Almost there..."]
151
+ },
152
+ render: function render(args) {
153
+ return /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], args);
154
+ }
155
+ };
156
+
157
+ // Interactive demo with toggle
158
+ var Interactive = exports.Interactive = {
159
+ args: {
160
+ header: "Interactive Demo",
161
+ messages: ["Click the button to toggle the loader", "Watch the messages cycle", "Notice the smooth animations"]
162
+ },
163
+ render: function render(args) {
164
+ var _useState = (0, _react.useState)(false),
165
+ _useState2 = _slicedToArray(_useState, 2),
166
+ isLoading = _useState2[0],
167
+ setIsLoading = _useState2[1];
168
+ return /*#__PURE__*/_react["default"].createElement("div", {
169
+ style: {
170
+ padding: '2rem',
171
+ textAlign: 'center'
172
+ }
173
+ }, /*#__PURE__*/_react["default"].createElement("h2", null, "PageLoader Interactive Demo"), /*#__PURE__*/_react["default"].createElement("p", null, "Click the button below to show/hide the page loader:"), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
174
+ onClick: function onClick() {
175
+ return setIsLoading(!isLoading);
176
+ },
177
+ appearance: "primary"
178
+ }, isLoading ? 'Hide Loader' : 'Show Loader'), /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], _extends({}, args, {
179
+ showLoader: isLoading
180
+ })));
181
+ }
182
+ };
183
+
184
+ // Minimal loader (just animation)
185
+ var MinimalLoader = exports.MinimalLoader = {
186
+ args: {
187
+ showLoader: true
188
+ },
189
+ render: function render(args) {
190
+ return /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], args);
191
+ }
192
+ };
193
+
194
+ // Custom styling example
195
+ var CustomStyling = exports.CustomStyling = {
196
+ args: {
197
+ showLoader: true,
198
+ className: "custom-loader",
199
+ header: "Custom Styled Loader",
200
+ messages: ["This loader has custom styling applied"]
201
+ },
202
+ render: function render(args) {
203
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("style", null, "\n .custom-loader .RCB-page-loader-backdrop {\n background: rgba(0, 0, 0, 0.8);\n }\n .custom-loader .RCB-page-loader-title {\n color: #fff;\n }\n .custom-loader .RCB-page-loader-message {\n color: #ccc;\n }\n "), /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], args));
204
+ }
205
+ };
206
+
207
+ // Accessibility demo
208
+ var AccessibilityFeatures = exports.AccessibilityFeatures = {
209
+ args: {
210
+ showLoader: true,
211
+ header: "Accessibility Demo",
212
+ messages: ["This loader includes ARIA attributes", "Supports reduced motion preferences", "Screen reader friendly", "High contrast mode compatible"]
213
+ },
214
+ render: function render(args) {
215
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
216
+ style: {
217
+ padding: '2rem',
218
+ marginBottom: '1rem',
219
+ background: '#f5f5f5'
220
+ }
221
+ }, /*#__PURE__*/_react["default"].createElement("h3", null, "Accessibility Features:"), /*#__PURE__*/_react["default"].createElement("ul", {
222
+ style: {
223
+ textAlign: 'left',
224
+ maxWidth: '600px',
225
+ margin: '0 auto'
226
+ }
227
+ }, /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("strong", null, "ARIA Labels:"), " Proper role, aria-modal, aria-label, aria-live attributes"), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("strong", null, "Reduced Motion:"), " Respects prefers-reduced-motion setting"), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("strong", null, "High Contrast:"), " Adapts to high contrast mode"), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("strong", null, "Screen Readers:"), " Announces loading state and updates"), /*#__PURE__*/_react["default"].createElement("li", null, /*#__PURE__*/_react["default"].createElement("strong", null, "Keyboard Navigation:"), " Properly manages focus"))), /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], args));
228
+ }
229
+ };
230
+
231
+ // Data loading simulation
232
+ var DataLoadingSimulation = exports.DataLoadingSimulation = {
233
+ args: {
234
+ header: "Data Loading Simulation"
235
+ },
236
+ render: function render(args) {
237
+ var _useState3 = (0, _react.useState)(0),
238
+ _useState4 = _slicedToArray(_useState3, 2),
239
+ currentStep = _useState4[0],
240
+ setCurrentStep = _useState4[1];
241
+ var _useState5 = (0, _react.useState)(false),
242
+ _useState6 = _slicedToArray(_useState5, 2),
243
+ isLoading = _useState6[0],
244
+ setIsLoading = _useState6[1];
245
+ var loadingSteps = ["Connecting to database...", "Authenticating user...", "Fetching user data...", "Loading preferences...", "Preparing dashboard...", "Complete!"];
246
+ var startLoading = function startLoading() {
247
+ setIsLoading(true);
248
+ setCurrentStep(0);
249
+ var interval = setInterval(function () {
250
+ setCurrentStep(function (prev) {
251
+ if (prev >= loadingSteps.length - 1) {
252
+ clearInterval(interval);
253
+ setTimeout(function () {
254
+ return setIsLoading(false);
255
+ }, 1000);
256
+ return prev;
257
+ }
258
+ return prev + 1;
259
+ });
260
+ }, 1500);
261
+ };
262
+ return /*#__PURE__*/_react["default"].createElement("div", {
263
+ style: {
264
+ padding: '2rem',
265
+ textAlign: 'center'
266
+ }
267
+ }, /*#__PURE__*/_react["default"].createElement("h2", null, "Simulated Data Loading Process"), /*#__PURE__*/_react["default"].createElement("p", null, "This demo simulates a real loading sequence with step-by-step updates:"), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
268
+ onClick: startLoading,
269
+ disabled: isLoading,
270
+ appearance: "primary"
271
+ }, "Start Loading Simulation"), /*#__PURE__*/_react["default"].createElement(_PageLoader["default"], _extends({}, args, {
272
+ showLoader: isLoading,
273
+ messages: [loadingSteps[currentStep]]
274
+ })));
275
+ }
276
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _PageLoader = _interopRequireDefault(require("./PageLoader"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
9
+ var _default = exports["default"] = _PageLoader["default"];
@@ -0,0 +1 @@
1
+ .page-loader{width:100%;height:fit-content;display:flex;justify-content:center;align-items:center}.loader-wrapper{text-align:center}.loader-header{color:#17173A;font-weight:600;font-size:16px;margin-top:15px}.loader-messages{color:#6F6F8D;margin-top:5px;font-weight:400;font-size:14px;transition:opacity 0.4s ease-in-out}.loader-messages.fade-in{opacity:1}.loader-messages.fade-out{opacity:0}