@bbki.ng/components 2.1.40 → 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
@@ -144,13 +144,32 @@ var Logo = React3.memo(
144
144
  var import_react6 = __toESM(require("react"), 1);
145
145
 
146
146
  // lib/breadcrumb/Breadcrumb.tsx
147
- var import_react4 = __toESM(require("react"), 1);
148
- var import_classnames3 = __toESM(require("classnames"), 1);
147
+ var import_react5 = __toESM(require("react"), 1);
148
+ var import_classnames4 = __toESM(require("classnames"), 1);
149
149
 
150
150
  // lib/link/Link.tsx
151
- var import_classnames2 = __toESM(require("classnames"), 1);
151
+ var import_classnames3 = __toESM(require("classnames"), 1);
152
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);
153
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
154
173
  var LinkColor = /* @__PURE__ */ ((LinkColor2) => {
155
174
  LinkColor2["BLUE"] = "blue";
156
175
  LinkColor2["RED"] = "red";
@@ -178,9 +197,11 @@ var Link = (props) => {
178
197
  external,
179
198
  className,
180
199
  children,
200
+ status,
201
+ readonly,
181
202
  ...rest
182
203
  } = props;
183
- const linkCls = (0, import_classnames2.default)(
204
+ const linkCls = (0, import_classnames3.default)(
184
205
  className,
185
206
  "rounded",
186
207
  "!no-underline",
@@ -191,60 +212,58 @@ var Link = (props) => {
191
212
  FOCUS_BG_COLOR_MAPPING[color]
192
213
  );
193
214
  if (external) {
194
- return /* @__PURE__ */ import_react3.default.createElement("a", {
215
+ return /* @__PURE__ */ import_react4.default.createElement("a", {
195
216
  href: props.to,
196
217
  className: linkCls,
197
218
  target: "_blank",
198
219
  rel: "noreferrer"
199
220
  }, children);
200
221
  }
201
- 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, {
202
233
  ...rest,
203
- className: linkCls
204
- }, 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
+ }));
205
240
  };
206
241
 
207
242
  // lib/breadcrumb/Breadcrumb.tsx
208
243
  var Breadcrumb = (props) => {
209
- const { paths } = props;
244
+ const { paths, loading } = props;
210
245
  const PathElements = paths.map(({ path, name }, index) => {
211
- const slash = index === 0 ? null : /* @__PURE__ */ import_react4.default.createElement("span", {
246
+ const slash = index === 0 ? null : /* @__PURE__ */ import_react5.default.createElement("span", {
212
247
  className: "text-gray-400"
213
248
  }, "/");
214
249
  const isNonEnName = !/^[a-zA-Z~]+$/.test(name);
215
- const offsetCls = (0, import_classnames3.default)({ "relative top-[2px]": isNonEnName });
216
- const link = path ? /* @__PURE__ */ import_react4.default.createElement(Link, {
217
- to: path,
218
- className: offsetCls,
219
- style: { padding: 4 }
220
- }, name) : /* @__PURE__ */ import_react4.default.createElement("span", {
221
- className: (0, import_classnames3.default)("text-gray-400", offsetCls),
222
- style: { padding: 4 }
223
- }, name);
224
- 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", {
225
254
  key: path || name
226
- }, slash, link);
255
+ }, slash, /* @__PURE__ */ import_react5.default.createElement(Link, {
256
+ to: path ?? "",
257
+ className: offsetCls,
258
+ readonly: !path,
259
+ status
260
+ }, name));
227
261
  });
228
- return /* @__PURE__ */ import_react4.default.createElement("div", {
262
+ return /* @__PURE__ */ import_react5.default.createElement("div", {
229
263
  className: "breadcrumb"
230
264
  }, PathElements);
231
265
  };
232
266
 
233
- // lib/blink-dot/BlinkDot.tsx
234
- var import_classnames4 = __toESM(require("classnames"), 1);
235
- var import_react5 = __toESM(require("react"), 1);
236
- var BlinkDot = (props) => {
237
- const { className } = props;
238
- return /* @__PURE__ */ import_react5.default.createElement("span", {
239
- className: (0, import_classnames4.default)(
240
- "inline-flex h-1 w-1 justify-center items-center relative",
241
- className
242
- )
243
- }, /* @__PURE__ */ import_react5.default.createElement("span", {
244
- className: "animate-ping-fast absolute inline-flex h-full w-full rounded-full bg-red-600"
245
- }));
246
- };
247
-
248
267
  // lib/nav/Nav.tsx
249
268
  var import_react_router_dom2 = require("react-router-dom");
250
269
  var Nav = (props) => {
@@ -264,9 +283,8 @@ var Nav = (props) => {
264
283
  nav("/");
265
284
  }
266
285
  }), /* @__PURE__ */ import_react6.default.createElement(Breadcrumb, {
267
- paths: props.paths
268
- }), props.loading && /* @__PURE__ */ import_react6.default.createElement(BlinkDot, {
269
- className: "-top-2 left-1"
286
+ paths: props.paths,
287
+ loading: props.loading
270
288
  }));
271
289
  };
272
290
 
@@ -486,11 +504,12 @@ var TitledList = (props) => {
486
504
  };
487
505
  var LinkList = (props) => {
488
506
  const { title, description, links, ...rest } = props;
489
- const renderLink = ({ name, to, external }) => {
507
+ const renderLink = ({ name, to, external, ...rest2 }) => {
490
508
  return /* @__PURE__ */ import_react13.default.createElement(Link, {
491
509
  to,
492
510
  key: name,
493
- external
511
+ external,
512
+ ...rest2
494
513
  }, name);
495
514
  };
496
515
  return /* @__PURE__ */ import_react13.default.createElement(TitledList, {