@bbki.ng/components 2.1.39 → 2.1.41

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/dist/index.cjs CHANGED
@@ -111,6 +111,7 @@ var Logo = React3.memo(
111
111
  height: "48",
112
112
  viewBox: "0 0 48 48",
113
113
  fill: "none",
114
+ onClick: props.onClick,
114
115
  className: props.className
115
116
  }, /* @__PURE__ */ React3.createElement("path", {
116
117
  d: "M29.1152 21.3106C32.0605 21.3106 34.4481 18.9101 34.4481 15.9489V24.6457C34.4481 25.7585 33.5508 26.6607 32.444 26.6607H15.1207C14.0138 26.6607 13.1166 25.7585 13.1166 24.6457V15.9489C13.1166 18.9101 15.5042 21.3106 18.4494 21.3106C21.3947 21.3106 23.7823 18.9101 23.7823 15.9489C23.7823 18.9101 26.17 21.3106 29.1152 21.3106Z",
@@ -143,13 +144,32 @@ var Logo = React3.memo(
143
144
  var import_react6 = __toESM(require("react"), 1);
144
145
 
145
146
  // lib/breadcrumb/Breadcrumb.tsx
146
- var import_react4 = __toESM(require("react"), 1);
147
- var import_classnames3 = __toESM(require("classnames"), 1);
147
+ var import_react5 = __toESM(require("react"), 1);
148
+ var import_classnames4 = __toESM(require("classnames"), 1);
148
149
 
149
150
  // lib/link/Link.tsx
150
- var import_classnames2 = __toESM(require("classnames"), 1);
151
+ var import_classnames3 = __toESM(require("classnames"), 1);
151
152
  var import_react_router_dom = require("react-router-dom");
153
+ var import_react4 = __toESM(require("react"), 1);
154
+
155
+ // lib/blink-dot/BlinkDot.tsx
156
+ var import_classnames2 = __toESM(require("classnames"), 1);
152
157
  var import_react3 = __toESM(require("react"), 1);
158
+ var BlinkDot = (props) => {
159
+ const { className } = props;
160
+ const status = props.status || "hidden";
161
+ const statusCls = (0, import_classnames2.default)({
162
+ "animate-ping-fast": status === "blink",
163
+ hidden: status === "hidden"
164
+ });
165
+ return /* @__PURE__ */ import_react3.default.createElement("span", {
166
+ className: (0, import_classnames2.default)("inline-flex justify-center items-center relative")
167
+ }, /* @__PURE__ */ import_react3.default.createElement("span", {
168
+ className: `absolute inline-flex h-full w-full rounded-full text-red-600 -top-[28px] -left-[3px] ${statusCls}`
169
+ }, "."));
170
+ };
171
+
172
+ // lib/link/Link.tsx
153
173
  var LinkColor = /* @__PURE__ */ ((LinkColor2) => {
154
174
  LinkColor2["BLUE"] = "blue";
155
175
  LinkColor2["RED"] = "red";
@@ -177,9 +197,11 @@ var Link = (props) => {
177
197
  external,
178
198
  className,
179
199
  children,
200
+ status,
201
+ readonly,
180
202
  ...rest
181
203
  } = props;
182
- const linkCls = (0, import_classnames2.default)(
204
+ const linkCls = (0, import_classnames3.default)(
183
205
  className,
184
206
  "rounded",
185
207
  "!no-underline",
@@ -190,61 +212,60 @@ var Link = (props) => {
190
212
  FOCUS_BG_COLOR_MAPPING[color]
191
213
  );
192
214
  if (external) {
193
- return /* @__PURE__ */ import_react3.default.createElement("a", {
215
+ return /* @__PURE__ */ import_react4.default.createElement("a", {
194
216
  href: props.to,
195
217
  className: linkCls,
196
218
  target: "_blank",
197
219
  rel: "noreferrer"
198
220
  }, children);
199
221
  }
200
- return /* @__PURE__ */ import_react3.default.createElement(import_react_router_dom.Link, {
222
+ if (readonly) {
223
+ const isNonEnName = !/^[a-zA-Z~]+$/.test(children);
224
+ const offsetCls = (0, import_classnames3.default)({ "relative top-[2px]": isNonEnName });
225
+ return /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement("span", {
226
+ className: (0, import_classnames3.default)("text-gray-400", offsetCls),
227
+ style: { padding: 4 }
228
+ }, children), /* @__PURE__ */ import_react4.default.createElement(BlinkDot, {
229
+ status
230
+ }));
231
+ }
232
+ return /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react_router_dom.Link, {
201
233
  ...rest,
202
- className: linkCls
203
- }, children);
234
+ className: linkCls,
235
+ style: { padding: 4 }
236
+ }, children), /* @__PURE__ */ import_react4.default.createElement(BlinkDot, {
237
+ className: "-top-3 left-1",
238
+ status
239
+ }));
204
240
  };
205
241
 
206
242
  // lib/breadcrumb/Breadcrumb.tsx
207
243
  var Breadcrumb = (props) => {
208
- const { paths } = props;
244
+ const { paths, loading } = props;
209
245
  const PathElements = paths.map(({ path, name }, index) => {
210
- const slash = index === 0 ? null : /* @__PURE__ */ import_react4.default.createElement("span", {
246
+ const slash = index === 0 ? null : /* @__PURE__ */ import_react5.default.createElement("span", {
211
247
  className: "text-gray-400"
212
248
  }, "/");
213
249
  const isNonEnName = !/^[a-zA-Z~]+$/.test(name);
214
- const offsetCls = (0, import_classnames3.default)({ "relative top-[2px]": isNonEnName });
215
- const link = path ? /* @__PURE__ */ import_react4.default.createElement(Link, {
216
- to: path,
217
- className: offsetCls,
218
- style: { padding: 4 }
219
- }, name) : /* @__PURE__ */ import_react4.default.createElement("span", {
220
- className: (0, import_classnames3.default)("text-gray-400", offsetCls),
221
- style: { padding: 4 }
222
- }, name);
223
- return /* @__PURE__ */ import_react4.default.createElement("span", {
250
+ const offsetCls = (0, import_classnames4.default)({ "relative top-[2px]": isNonEnName });
251
+ const isLast = index === paths.length - 1;
252
+ const status = loading && isLast ? "blink" : "hidden";
253
+ return /* @__PURE__ */ import_react5.default.createElement("span", {
224
254
  key: path || name
225
- }, slash, link);
255
+ }, slash, /* @__PURE__ */ import_react5.default.createElement(Link, {
256
+ to: path ?? "",
257
+ className: offsetCls,
258
+ readonly: !path,
259
+ status
260
+ }, name));
226
261
  });
227
- return /* @__PURE__ */ import_react4.default.createElement("div", {
262
+ return /* @__PURE__ */ import_react5.default.createElement("div", {
228
263
  className: "breadcrumb"
229
264
  }, PathElements);
230
265
  };
231
266
 
232
- // lib/blink-dot/BlinkDot.tsx
233
- var import_classnames4 = __toESM(require("classnames"), 1);
234
- var import_react5 = __toESM(require("react"), 1);
235
- var BlinkDot = (props) => {
236
- const { className } = props;
237
- return /* @__PURE__ */ import_react5.default.createElement("span", {
238
- className: (0, import_classnames4.default)(
239
- "inline-flex h-1 w-1 justify-center items-center relative",
240
- className
241
- )
242
- }, /* @__PURE__ */ import_react5.default.createElement("span", {
243
- className: "animate-ping-fast absolute inline-flex h-full w-full rounded-full bg-red-600"
244
- }));
245
- };
246
-
247
267
  // lib/nav/Nav.tsx
268
+ var import_react_router_dom2 = require("react-router-dom");
248
269
  var Nav = (props) => {
249
270
  if (props.mini) {
250
271
  return /* @__PURE__ */ import_react6.default.createElement("div", {
@@ -253,14 +274,17 @@ var Nav = (props) => {
253
274
  paths: props.paths
254
275
  }));
255
276
  }
277
+ const nav = (0, import_react_router_dom2.useNavigate)();
256
278
  return /* @__PURE__ */ import_react6.default.createElement("div", {
257
279
  className: `p-8 w-full flex items-center ${props.className}`
258
280
  }, /* @__PURE__ */ import_react6.default.createElement(Logo, {
259
- className: "mr-8"
281
+ className: "mr-8",
282
+ onClick: () => {
283
+ nav("/");
284
+ }
260
285
  }), /* @__PURE__ */ import_react6.default.createElement(Breadcrumb, {
261
- paths: props.paths
262
- }), props.loading && /* @__PURE__ */ import_react6.default.createElement(BlinkDot, {
263
- className: "-top-2 left-1"
286
+ paths: props.paths,
287
+ loading: props.loading
264
288
  }));
265
289
  };
266
290
 
@@ -480,11 +504,12 @@ var TitledList = (props) => {
480
504
  };
481
505
  var LinkList = (props) => {
482
506
  const { title, description, links, ...rest } = props;
483
- const renderLink = ({ name, to, external }) => {
507
+ const renderLink = ({ name, to, external, ...rest2 }) => {
484
508
  return /* @__PURE__ */ import_react13.default.createElement(Link, {
485
509
  to,
486
510
  key: name,
487
- external
511
+ external,
512
+ ...rest2
488
513
  }, name);
489
514
  };
490
515
  return /* @__PURE__ */ import_react13.default.createElement(TitledList, {