@borisj74/bv-ds 0.1.4 → 0.1.5

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
@@ -2,6 +2,7 @@
2
2
 
3
3
  var React28 = require('react');
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
+ var bvDsIcons = require('@borisj74/bv-ds-icons');
5
6
 
6
7
  function _interopNamespace(e) {
7
8
  if (e && e.__esModule) return e;
@@ -31956,17 +31957,7 @@ function MultiSelect({
31956
31957
  hint && /* @__PURE__ */ jsxRuntime.jsx("span", { className: clsx_default("text-sm", invalid ? "text-text-error-primary" : "text-text-tertiary"), children: hint })
31957
31958
  ] });
31958
31959
  }
31959
- var ChevronSelector = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 16 16", fill: "none", className: "size-4", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M5 6l3-3 3 3M5 10l3 3 3-3", stroke: "currentColor", strokeWidth: "1.33", strokeLinecap: "round", strokeLinejoin: "round" }) });
31960
- var LogOut = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 16 16", fill: "none", className: "size-4", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx(
31961
- "path",
31962
- {
31963
- d: "M10.67 11.33 14 8m0 0-3.33-3.33M14 8H6M6 2H4.67c-.93 0-1.4 0-1.76.18-.31.16-.57.42-.73.73C2 3.27 2 3.73 2 4.67v6.66c0 .94 0 1.4.18 1.76.16.31.42.57.73.73.36.18.83.18 1.76.18H6",
31964
- stroke: "currentColor",
31965
- strokeWidth: "1.33",
31966
- strokeLinecap: "round",
31967
- strokeLinejoin: "round"
31968
- }
31969
- ) });
31960
+ var IconBox16 = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: "overflow-clip relative shrink-0 size-[16px] flex items-center justify-center", children });
31970
31961
  var LayeredAvatar = ({ src, online }) => /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative inline-flex size-10 shrink-0 rounded-full border-[0.75px] border-border-secondary-alt bg-bg-primary p-[1px] shadow-xs", children: [
31971
31962
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex size-full overflow-hidden rounded-full border-[0.5px] border-[rgba(0,0,0,0.16)]", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src, alt: "", className: "size-full rounded-full object-cover" }) }),
31972
31963
  online !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(
@@ -32022,7 +32013,7 @@ function NavAccountCard({
32022
32013
  onClick: onSignOut,
32023
32014
  "aria-label": "Sign out",
32024
32015
  className: "absolute right-0 top-[15px] flex items-center justify-center rounded-sm p-sm text-fg-quaternary transition-colors hover:text-fg-quaternary-hover",
32025
- children: /* @__PURE__ */ jsxRuntime.jsx(LogOut, {})
32016
+ children: /* @__PURE__ */ jsxRuntime.jsx(IconBox16, { children: /* @__PURE__ */ jsxRuntime.jsx(bvDsIcons.LogOut01, { className: "w-full h-full" }) })
32026
32017
  }
32027
32018
  )
32028
32019
  ]
@@ -32045,7 +32036,7 @@ function NavAccountCard({
32045
32036
  "absolute right-[7px] top-[7px] flex items-center justify-center rounded-sm p-sm text-fg-quaternary",
32046
32037
  open && "bg-bg-primary-hover"
32047
32038
  ),
32048
- children: /* @__PURE__ */ jsxRuntime.jsx(ChevronSelector, {})
32039
+ children: /* @__PURE__ */ jsxRuntime.jsx(IconBox16, { children: /* @__PURE__ */ jsxRuntime.jsx(bvDsIcons.ChevronSelectorVertical, { className: "w-full h-full" }) })
32049
32040
  }
32050
32041
  )
32051
32042
  ]
@@ -32186,7 +32177,6 @@ function NavFeaturedCard({
32186
32177
  }
32187
32178
  );
32188
32179
  }
32189
- var ChevronDown2 = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 16 16", fill: "none", className: "size-4", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 6l4 4 4-4", stroke: "currentColor", strokeWidth: "1.33", strokeLinecap: "round", strokeLinejoin: "round" }) });
32190
32180
  function NavItemBase({
32191
32181
  current = false,
32192
32182
  icon,
@@ -32221,14 +32211,13 @@ function NavItemBase({
32221
32211
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 truncate text-left text-sm font-semibold text-text-secondary", children: label })
32222
32212
  ] }),
32223
32213
  badge != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 rounded-full border border-utility-neutral-200 bg-utility-neutral-50 px-md py-xxs text-xs font-medium text-utility-neutral-700", children: badge }),
32224
- trailingChevron && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-fg-quaternary", children: /* @__PURE__ */ jsxRuntime.jsx(ChevronDown2, {}) })
32214
+ trailingChevron && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-fg-quaternary", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "overflow-clip relative shrink-0 size-[16px] flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(bvDsIcons.ChevronDown, { className: "w-full h-full" }) }) })
32225
32215
  ]
32226
32216
  }
32227
32217
  )
32228
32218
  }
32229
32219
  );
32230
32220
  }
32231
- var Chevron5 = ({ up }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 16 16", fill: "none", className: "size-4", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: up ? "M4 10l4-4 4 4" : "M4 6l4 4 4-4", stroke: "currentColor", strokeWidth: "1.33", strokeLinecap: "round", strokeLinejoin: "round" }) });
32232
32221
  function NavItemDropdownBase({
32233
32222
  current = false,
32234
32223
  open = false,
@@ -32260,7 +32249,12 @@ function NavItemDropdownBase({
32260
32249
  icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex size-5 shrink-0 items-center justify-center text-fg-quaternary [&>svg]:size-5", children: icon }),
32261
32250
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 truncate text-left text-sm font-semibold text-text-secondary", children: label })
32262
32251
  ] }),
32263
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-fg-quaternary", children: /* @__PURE__ */ jsxRuntime.jsx(Chevron5, { up: open }) })
32252
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-fg-quaternary", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "overflow-clip relative shrink-0 size-[16px] flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
32253
+ bvDsIcons.ChevronDown,
32254
+ {
32255
+ className: clsx_default("w-full h-full transition-transform", open && "rotate-180")
32256
+ }
32257
+ ) }) })
32264
32258
  ]
32265
32259
  }
32266
32260
  )
@@ -32269,8 +32263,7 @@ function NavItemDropdownBase({
32269
32263
  open && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col pb-xs", children })
32270
32264
  ] });
32271
32265
  }
32272
- var Menu = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 20 20", fill: "none", className: "size-5", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M2.5 10h15M2.5 5h15M2.5 15h15", stroke: "currentColor", strokeWidth: "1.67", strokeLinecap: "round", strokeLinejoin: "round" }) });
32273
- var XClose4 = () => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 20 20", fill: "none", className: "size-5", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15 5 5 15M5 5l10 10", stroke: "currentColor", strokeWidth: "1.67", strokeLinecap: "round", strokeLinejoin: "round" }) });
32266
+ var IconBox = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: "overflow-clip relative shrink-0 size-[20px] flex items-center justify-center", children });
32274
32267
  function NavMenuButton({
32275
32268
  opened = false,
32276
32269
  className,
@@ -32289,7 +32282,7 @@ function NavMenuButton({
32289
32282
  className
32290
32283
  ),
32291
32284
  ...rest,
32292
- children: opened ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "opacity-70", children: /* @__PURE__ */ jsxRuntime.jsx(XClose4, {}) }) : /* @__PURE__ */ jsxRuntime.jsx(Menu, {})
32285
+ children: opened ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "opacity-70", children: /* @__PURE__ */ jsxRuntime.jsx(IconBox, { children: /* @__PURE__ */ jsxRuntime.jsx(bvDsIcons.XClose, { className: "w-full h-full" }) }) }) : /* @__PURE__ */ jsxRuntime.jsx(IconBox, { children: /* @__PURE__ */ jsxRuntime.jsx(bvDsIcons.Menu02, { className: "w-full h-full" }) })
32293
32286
  }
32294
32287
  );
32295
32288
  }
@@ -32377,7 +32370,7 @@ function NumberInput({
32377
32370
  const inc = () => set2(value + step);
32378
32371
  const Minus = /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 20 20", fill: "none", className: "size-5", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4.167 10h11.666", stroke: "currentColor", strokeWidth: "1.67", strokeLinecap: "round" }) });
32379
32372
  const Plus = /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 20 20", fill: "none", className: "size-5", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10 4.167v11.666M4.167 10h11.666", stroke: "currentColor", strokeWidth: "1.67", strokeLinecap: "round" }) });
32380
- const Chevron6 = ({ up }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 12 12", fill: "none", className: clsx_default("size-3", up && "rotate-180"), "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 4.5 6 7.5 9 4.5", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round", strokeLinejoin: "round" }) });
32373
+ const Chevron5 = ({ up }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 12 12", fill: "none", className: clsx_default("size-3", up && "rotate-180"), "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 4.5 6 7.5 9 4.5", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round", strokeLinejoin: "round" }) });
32381
32374
  const numberEl = /* @__PURE__ */ jsxRuntime.jsx(
32382
32375
  "input",
32383
32376
  {
@@ -32403,9 +32396,9 @@ function NumberInput({
32403
32396
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: clsx_default(boxClasses(destructive), "gap-0 overflow-hidden p-0"), children: [
32404
32397
  numberEl,
32405
32398
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col self-stretch border-l border-border-primary", children: [
32406
- /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: inc, disabled, "aria-label": "Increase", className: "flex flex-1 items-center justify-center px-md text-fg-quaternary hover:bg-bg-primary-hover disabled:opacity-60", children: /* @__PURE__ */ jsxRuntime.jsx(Chevron6, { up: true }) }),
32399
+ /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: inc, disabled, "aria-label": "Increase", className: "flex flex-1 items-center justify-center px-md text-fg-quaternary hover:bg-bg-primary-hover disabled:opacity-60", children: /* @__PURE__ */ jsxRuntime.jsx(Chevron5, { up: true }) }),
32407
32400
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-px w-full bg-border-primary" }),
32408
- /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: dec, disabled, "aria-label": "Decrease", className: "flex flex-1 items-center justify-center px-md text-fg-quaternary hover:bg-bg-primary-hover disabled:opacity-60", children: /* @__PURE__ */ jsxRuntime.jsx(Chevron6, { up: false }) })
32401
+ /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: dec, disabled, "aria-label": "Decrease", className: "flex flex-1 items-center justify-center px-md text-fg-quaternary hover:bg-bg-primary-hover disabled:opacity-60", children: /* @__PURE__ */ jsxRuntime.jsx(Chevron5, { up: false }) })
32409
32402
  ] })
32410
32403
  ] });
32411
32404
  return /* @__PURE__ */ jsxRuntime.jsx(FieldWrapper, { label, required, hint, destructive, className, children: box });
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as React28 from 'react';
2
2
  import React28__default, { forwardRef, isValidElement, cloneElement, Children, useContext, useMemo, createContext, Fragment, useState, PureComponent, createElement, Component, useRef, useEffect, useCallback, useId, useImperativeHandle } from 'react';
3
3
  import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
4
+ import { LogOut01, ChevronSelectorVertical, ChevronDown as ChevronDown$1, XClose as XClose$1, Menu02 } from '@borisj74/bv-ds-icons';
4
5
 
5
6
  var __create = Object.create;
6
7
  var __defProp = Object.defineProperty;
@@ -31935,17 +31936,7 @@ function MultiSelect({
31935
31936
  hint && /* @__PURE__ */ jsx("span", { className: clsx_default("text-sm", invalid ? "text-text-error-primary" : "text-text-tertiary"), children: hint })
31936
31937
  ] });
31937
31938
  }
31938
- var ChevronSelector = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", fill: "none", className: "size-4", "aria-hidden": true, children: /* @__PURE__ */ jsx("path", { d: "M5 6l3-3 3 3M5 10l3 3 3-3", stroke: "currentColor", strokeWidth: "1.33", strokeLinecap: "round", strokeLinejoin: "round" }) });
31939
- var LogOut = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", fill: "none", className: "size-4", "aria-hidden": true, children: /* @__PURE__ */ jsx(
31940
- "path",
31941
- {
31942
- d: "M10.67 11.33 14 8m0 0-3.33-3.33M14 8H6M6 2H4.67c-.93 0-1.4 0-1.76.18-.31.16-.57.42-.73.73C2 3.27 2 3.73 2 4.67v6.66c0 .94 0 1.4.18 1.76.16.31.42.57.73.73.36.18.83.18 1.76.18H6",
31943
- stroke: "currentColor",
31944
- strokeWidth: "1.33",
31945
- strokeLinecap: "round",
31946
- strokeLinejoin: "round"
31947
- }
31948
- ) });
31939
+ var IconBox16 = ({ children }) => /* @__PURE__ */ jsx("span", { className: "overflow-clip relative shrink-0 size-[16px] flex items-center justify-center", children });
31949
31940
  var LayeredAvatar = ({ src, online }) => /* @__PURE__ */ jsxs("span", { className: "relative inline-flex size-10 shrink-0 rounded-full border-[0.75px] border-border-secondary-alt bg-bg-primary p-[1px] shadow-xs", children: [
31950
31941
  /* @__PURE__ */ jsx("span", { className: "flex size-full overflow-hidden rounded-full border-[0.5px] border-[rgba(0,0,0,0.16)]", children: /* @__PURE__ */ jsx("img", { src, alt: "", className: "size-full rounded-full object-cover" }) }),
31951
31942
  online !== void 0 && /* @__PURE__ */ jsx(
@@ -32001,7 +31992,7 @@ function NavAccountCard({
32001
31992
  onClick: onSignOut,
32002
31993
  "aria-label": "Sign out",
32003
31994
  className: "absolute right-0 top-[15px] flex items-center justify-center rounded-sm p-sm text-fg-quaternary transition-colors hover:text-fg-quaternary-hover",
32004
- children: /* @__PURE__ */ jsx(LogOut, {})
31995
+ children: /* @__PURE__ */ jsx(IconBox16, { children: /* @__PURE__ */ jsx(LogOut01, { className: "w-full h-full" }) })
32005
31996
  }
32006
31997
  )
32007
31998
  ]
@@ -32024,7 +32015,7 @@ function NavAccountCard({
32024
32015
  "absolute right-[7px] top-[7px] flex items-center justify-center rounded-sm p-sm text-fg-quaternary",
32025
32016
  open && "bg-bg-primary-hover"
32026
32017
  ),
32027
- children: /* @__PURE__ */ jsx(ChevronSelector, {})
32018
+ children: /* @__PURE__ */ jsx(IconBox16, { children: /* @__PURE__ */ jsx(ChevronSelectorVertical, { className: "w-full h-full" }) })
32028
32019
  }
32029
32020
  )
32030
32021
  ]
@@ -32165,7 +32156,6 @@ function NavFeaturedCard({
32165
32156
  }
32166
32157
  );
32167
32158
  }
32168
- var ChevronDown2 = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", fill: "none", className: "size-4", "aria-hidden": true, children: /* @__PURE__ */ jsx("path", { d: "M4 6l4 4 4-4", stroke: "currentColor", strokeWidth: "1.33", strokeLinecap: "round", strokeLinejoin: "round" }) });
32169
32159
  function NavItemBase({
32170
32160
  current = false,
32171
32161
  icon,
@@ -32200,14 +32190,13 @@ function NavItemBase({
32200
32190
  /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-left text-sm font-semibold text-text-secondary", children: label })
32201
32191
  ] }),
32202
32192
  badge != null && /* @__PURE__ */ jsx("span", { className: "shrink-0 rounded-full border border-utility-neutral-200 bg-utility-neutral-50 px-md py-xxs text-xs font-medium text-utility-neutral-700", children: badge }),
32203
- trailingChevron && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-fg-quaternary", children: /* @__PURE__ */ jsx(ChevronDown2, {}) })
32193
+ trailingChevron && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-fg-quaternary", children: /* @__PURE__ */ jsx("span", { className: "overflow-clip relative shrink-0 size-[16px] flex items-center justify-center", children: /* @__PURE__ */ jsx(ChevronDown$1, { className: "w-full h-full" }) }) })
32204
32194
  ]
32205
32195
  }
32206
32196
  )
32207
32197
  }
32208
32198
  );
32209
32199
  }
32210
- var Chevron5 = ({ up }) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", fill: "none", className: "size-4", "aria-hidden": true, children: /* @__PURE__ */ jsx("path", { d: up ? "M4 10l4-4 4 4" : "M4 6l4 4 4-4", stroke: "currentColor", strokeWidth: "1.33", strokeLinecap: "round", strokeLinejoin: "round" }) });
32211
32200
  function NavItemDropdownBase({
32212
32201
  current = false,
32213
32202
  open = false,
@@ -32239,7 +32228,12 @@ function NavItemDropdownBase({
32239
32228
  icon && /* @__PURE__ */ jsx("span", { className: "flex size-5 shrink-0 items-center justify-center text-fg-quaternary [&>svg]:size-5", children: icon }),
32240
32229
  /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-left text-sm font-semibold text-text-secondary", children: label })
32241
32230
  ] }),
32242
- /* @__PURE__ */ jsx("span", { className: "shrink-0 text-fg-quaternary", children: /* @__PURE__ */ jsx(Chevron5, { up: open }) })
32231
+ /* @__PURE__ */ jsx("span", { className: "shrink-0 text-fg-quaternary", children: /* @__PURE__ */ jsx("span", { className: "overflow-clip relative shrink-0 size-[16px] flex items-center justify-center", children: /* @__PURE__ */ jsx(
32232
+ ChevronDown$1,
32233
+ {
32234
+ className: clsx_default("w-full h-full transition-transform", open && "rotate-180")
32235
+ }
32236
+ ) }) })
32243
32237
  ]
32244
32238
  }
32245
32239
  )
@@ -32248,8 +32242,7 @@ function NavItemDropdownBase({
32248
32242
  open && /* @__PURE__ */ jsx("div", { className: "flex flex-col pb-xs", children })
32249
32243
  ] });
32250
32244
  }
32251
- var Menu = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 20 20", fill: "none", className: "size-5", "aria-hidden": true, children: /* @__PURE__ */ jsx("path", { d: "M2.5 10h15M2.5 5h15M2.5 15h15", stroke: "currentColor", strokeWidth: "1.67", strokeLinecap: "round", strokeLinejoin: "round" }) });
32252
- var XClose4 = () => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 20 20", fill: "none", className: "size-5", "aria-hidden": true, children: /* @__PURE__ */ jsx("path", { d: "M15 5 5 15M5 5l10 10", stroke: "currentColor", strokeWidth: "1.67", strokeLinecap: "round", strokeLinejoin: "round" }) });
32245
+ var IconBox = ({ children }) => /* @__PURE__ */ jsx("span", { className: "overflow-clip relative shrink-0 size-[20px] flex items-center justify-center", children });
32253
32246
  function NavMenuButton({
32254
32247
  opened = false,
32255
32248
  className,
@@ -32268,7 +32261,7 @@ function NavMenuButton({
32268
32261
  className
32269
32262
  ),
32270
32263
  ...rest,
32271
- children: opened ? /* @__PURE__ */ jsx("span", { className: "opacity-70", children: /* @__PURE__ */ jsx(XClose4, {}) }) : /* @__PURE__ */ jsx(Menu, {})
32264
+ children: opened ? /* @__PURE__ */ jsx("span", { className: "opacity-70", children: /* @__PURE__ */ jsx(IconBox, { children: /* @__PURE__ */ jsx(XClose$1, { className: "w-full h-full" }) }) }) : /* @__PURE__ */ jsx(IconBox, { children: /* @__PURE__ */ jsx(Menu02, { className: "w-full h-full" }) })
32272
32265
  }
32273
32266
  );
32274
32267
  }
@@ -32356,7 +32349,7 @@ function NumberInput({
32356
32349
  const inc = () => set2(value + step);
32357
32350
  const Minus = /* @__PURE__ */ jsx("svg", { viewBox: "0 0 20 20", fill: "none", className: "size-5", "aria-hidden": true, children: /* @__PURE__ */ jsx("path", { d: "M4.167 10h11.666", stroke: "currentColor", strokeWidth: "1.67", strokeLinecap: "round" }) });
32358
32351
  const Plus = /* @__PURE__ */ jsx("svg", { viewBox: "0 0 20 20", fill: "none", className: "size-5", "aria-hidden": true, children: /* @__PURE__ */ jsx("path", { d: "M10 4.167v11.666M4.167 10h11.666", stroke: "currentColor", strokeWidth: "1.67", strokeLinecap: "round" }) });
32359
- const Chevron6 = ({ up }) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 12 12", fill: "none", className: clsx_default("size-3", up && "rotate-180"), "aria-hidden": true, children: /* @__PURE__ */ jsx("path", { d: "M3 4.5 6 7.5 9 4.5", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round", strokeLinejoin: "round" }) });
32352
+ const Chevron5 = ({ up }) => /* @__PURE__ */ jsx("svg", { viewBox: "0 0 12 12", fill: "none", className: clsx_default("size-3", up && "rotate-180"), "aria-hidden": true, children: /* @__PURE__ */ jsx("path", { d: "M3 4.5 6 7.5 9 4.5", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round", strokeLinejoin: "round" }) });
32360
32353
  const numberEl = /* @__PURE__ */ jsx(
32361
32354
  "input",
32362
32355
  {
@@ -32382,9 +32375,9 @@ function NumberInput({
32382
32375
  ] }) : /* @__PURE__ */ jsxs("div", { className: clsx_default(boxClasses(destructive), "gap-0 overflow-hidden p-0"), children: [
32383
32376
  numberEl,
32384
32377
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col self-stretch border-l border-border-primary", children: [
32385
- /* @__PURE__ */ jsx("button", { type: "button", onClick: inc, disabled, "aria-label": "Increase", className: "flex flex-1 items-center justify-center px-md text-fg-quaternary hover:bg-bg-primary-hover disabled:opacity-60", children: /* @__PURE__ */ jsx(Chevron6, { up: true }) }),
32378
+ /* @__PURE__ */ jsx("button", { type: "button", onClick: inc, disabled, "aria-label": "Increase", className: "flex flex-1 items-center justify-center px-md text-fg-quaternary hover:bg-bg-primary-hover disabled:opacity-60", children: /* @__PURE__ */ jsx(Chevron5, { up: true }) }),
32386
32379
  /* @__PURE__ */ jsx("span", { className: "h-px w-full bg-border-primary" }),
32387
- /* @__PURE__ */ jsx("button", { type: "button", onClick: dec, disabled, "aria-label": "Decrease", className: "flex flex-1 items-center justify-center px-md text-fg-quaternary hover:bg-bg-primary-hover disabled:opacity-60", children: /* @__PURE__ */ jsx(Chevron6, { up: false }) })
32380
+ /* @__PURE__ */ jsx("button", { type: "button", onClick: dec, disabled, "aria-label": "Decrease", className: "flex flex-1 items-center justify-center px-md text-fg-quaternary hover:bg-bg-primary-hover disabled:opacity-60", children: /* @__PURE__ */ jsx(Chevron5, { up: false }) })
32388
32381
  ] })
32389
32382
  ] });
32390
32383
  return /* @__PURE__ */ jsx(FieldWrapper, { label, required, hint, destructive, className, children: box });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@borisj74/bv-ds",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "bv-ds — React component library synced from Figma (Untitled UI v8.0), built on Tailwind CSS",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -35,7 +35,8 @@
35
35
  },
36
36
  "peerDependencies": {
37
37
  "react": ">=18.0.0",
38
- "react-dom": ">=18.0.0"
38
+ "react-dom": ">=18.0.0",
39
+ "@borisj74/bv-ds-icons": ">=0.1.0"
39
40
  },
40
41
  "devDependencies": {
41
42
  "@borisj74/bv-ds-icons": "^0.1.0",
@@ -1,5 +1,6 @@
1
1
  import { type HTMLAttributes, type ReactNode } from "react";
2
2
  import clsx from "clsx";
3
+ import { ChevronSelectorVertical, LogOut01 } from "@borisj74/bv-ds-icons";
3
4
 
4
5
  export type NavAccountCardVariant = "simple" | "card";
5
6
  export type NavAccountCardBreakpoint = "desktop" | "mobile";
@@ -31,22 +32,11 @@ export interface NavAccountCardProps
31
32
  menu?: ReactNode;
32
33
  }
33
34
 
34
- const ChevronSelector = () => (
35
- <svg viewBox="0 0 16 16" fill="none" className="size-4" aria-hidden>
36
- <path d="M5 6l3-3 3 3M5 10l3 3 3-3" stroke="currentColor" strokeWidth="1.33" strokeLinecap="round" strokeLinejoin="round" />
37
- </svg>
38
- );
39
-
40
- const LogOut = () => (
41
- <svg viewBox="0 0 16 16" fill="none" className="size-4" aria-hidden>
42
- <path
43
- d="M10.67 11.33 14 8m0 0-3.33-3.33M14 8H6M6 2H4.67c-.93 0-1.4 0-1.76.18-.31.16-.57.42-.73.73C2 3.27 2 3.73 2 4.67v6.66c0 .94 0 1.4.18 1.76.16.31.42.57.73.73.36.18.83.18 1.76.18H6"
44
- stroke="currentColor"
45
- strokeWidth="1.33"
46
- strokeLinecap="round"
47
- strokeLinejoin="round"
48
- />
49
- </svg>
35
+ // 16px icon container (Figma nav account card).
36
+ const IconBox16 = ({ children }: { children: ReactNode }) => (
37
+ <span className="overflow-clip relative shrink-0 size-[16px] flex items-center justify-center">
38
+ {children}
39
+ </span>
50
40
  );
51
41
 
52
42
  /**
@@ -127,7 +117,9 @@ export function NavAccountCard({
127
117
  aria-label="Sign out"
128
118
  className="absolute right-0 top-[15px] flex items-center justify-center rounded-sm p-sm text-fg-quaternary transition-colors hover:text-fg-quaternary-hover"
129
119
  >
130
- <LogOut />
120
+ <IconBox16>
121
+ <LogOut01 className="w-full h-full" />
122
+ </IconBox16>
131
123
  </button>
132
124
  </div>
133
125
  );
@@ -147,7 +139,9 @@ export function NavAccountCard({
147
139
  open && "bg-bg-primary-hover",
148
140
  )}
149
141
  >
150
- <ChevronSelector />
142
+ <IconBox16>
143
+ <ChevronSelectorVertical className="w-full h-full" />
144
+ </IconBox16>
151
145
  </span>
152
146
  </button>
153
147
 
@@ -1,5 +1,6 @@
1
1
  import { type ButtonHTMLAttributes, type ReactNode } from "react";
2
2
  import clsx from "clsx";
3
+ import { ChevronDown } from "@borisj74/bv-ds-icons";
3
4
 
4
5
  export interface NavItemBaseProps
5
6
  extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> {
@@ -16,12 +17,6 @@ export interface NavItemBaseProps
16
17
  trailingChevron?: boolean;
17
18
  }
18
19
 
19
- const ChevronDown = () => (
20
- <svg viewBox="0 0 16 16" fill="none" className="size-4" aria-hidden>
21
- <path d="M4 6l4 4 4-4" stroke="currentColor" strokeWidth="1.33" strokeLinecap="round" strokeLinejoin="round" />
22
- </svg>
23
- );
24
-
25
20
  /**
26
21
  * Base sidebar nav link (272px). `current` selects it; optional leading `dot`,
27
22
  * leading `icon`, trailing count `badge`, and `trailingChevron`. Brand focus ring.
@@ -70,7 +65,9 @@ export function NavItemBase({
70
65
  )}
71
66
  {trailingChevron && (
72
67
  <span className="shrink-0 text-fg-quaternary">
73
- <ChevronDown />
68
+ <span className="overflow-clip relative shrink-0 size-[16px] flex items-center justify-center">
69
+ <ChevronDown className="w-full h-full" />
70
+ </span>
74
71
  </span>
75
72
  )}
76
73
  </div>
@@ -1,5 +1,6 @@
1
1
  import { type ButtonHTMLAttributes, type ReactNode } from "react";
2
2
  import clsx from "clsx";
3
+ import { ChevronDown } from "@borisj74/bv-ds-icons";
3
4
 
4
5
  export interface NavItemDropdownBaseProps
5
6
  extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> {
@@ -16,12 +17,6 @@ export interface NavItemDropdownBaseProps
16
17
  children?: ReactNode;
17
18
  }
18
19
 
19
- const Chevron = ({ up }: { up?: boolean }) => (
20
- <svg viewBox="0 0 16 16" fill="none" className="size-4" aria-hidden>
21
- <path d={up ? "M4 10l4-4 4 4" : "M4 6l4 4 4-4"} stroke="currentColor" strokeWidth="1.33" strokeLinecap="round" strokeLinejoin="round" />
22
- </svg>
23
- );
24
-
25
20
  /**
26
21
  * Expandable sidebar nav group (272px). The trigger mirrors `NavItemBase`; when
27
22
  * `open`, `children` (indented submenu rows) render below with a chevron flip.
@@ -62,7 +57,11 @@ export function NavItemDropdownBase({
62
57
  </span>
63
58
  </div>
64
59
  <span className="shrink-0 text-fg-quaternary">
65
- <Chevron up={open} />
60
+ <span className="overflow-clip relative shrink-0 size-[16px] flex items-center justify-center">
61
+ <ChevronDown
62
+ className={clsx("w-full h-full transition-transform", open && "rotate-180")}
63
+ />
64
+ </span>
66
65
  </span>
67
66
  </div>
68
67
  </button>
@@ -1,5 +1,6 @@
1
- import { type ButtonHTMLAttributes } from "react";
1
+ import { type ButtonHTMLAttributes, type ReactNode } from "react";
2
2
  import clsx from "clsx";
3
+ import { Menu02, XClose } from "@borisj74/bv-ds-icons";
3
4
 
4
5
  export interface NavMenuButtonProps
5
6
  extends ButtonHTMLAttributes<HTMLButtonElement> {
@@ -7,16 +8,11 @@ export interface NavMenuButtonProps
7
8
  opened?: boolean;
8
9
  }
9
10
 
10
- const Menu = () => (
11
- <svg viewBox="0 0 20 20" fill="none" className="size-5" aria-hidden>
12
- <path d="M2.5 10h15M2.5 5h15M2.5 15h15" stroke="currentColor" strokeWidth="1.67" strokeLinecap="round" strokeLinejoin="round" />
13
- </svg>
14
- );
15
-
16
- const XClose = () => (
17
- <svg viewBox="0 0 20 20" fill="none" className="size-5" aria-hidden>
18
- <path d="M15 5 5 15M5 5l10 10" stroke="currentColor" strokeWidth="1.67" strokeLinecap="round" strokeLinejoin="round" />
19
- </svg>
11
+ // 20px icon container (Figma nav menu button).
12
+ const IconBox = ({ children }: { children: ReactNode }) => (
13
+ <span className="overflow-clip relative shrink-0 size-[20px] flex items-center justify-center">
14
+ {children}
15
+ </span>
20
16
  );
21
17
 
22
18
  /**
@@ -41,7 +37,17 @@ export function NavMenuButton({
41
37
  )}
42
38
  {...rest}
43
39
  >
44
- {opened ? <span className="opacity-70"><XClose /></span> : <Menu />}
40
+ {opened ? (
41
+ <span className="opacity-70">
42
+ <IconBox>
43
+ <XClose className="w-full h-full" />
44
+ </IconBox>
45
+ </span>
46
+ ) : (
47
+ <IconBox>
48
+ <Menu02 className="w-full h-full" />
49
+ </IconBox>
50
+ )}
45
51
  </button>
46
52
  );
47
53
  }
@@ -0,0 +1,6 @@
1
+ // The @borisj74/bv-ds-icons package (v0.1.0) ships runtime JS but its published
2
+ // tarball is missing the `dist/index.d.ts` its package.json points at, so TS
3
+ // can't resolve types for the icon imports (TS7016). Declare it as an untyped
4
+ // module until the icons package ships its declarations. Icons are simple SVG
5
+ // React components that accept standard SVG props (className, etc.).
6
+ declare module "@borisj74/bv-ds-icons";