@tapizlabs/ui 0.2.6 → 0.2.8

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.d.ts CHANGED
@@ -102,8 +102,10 @@ interface LogoMarkProps {
102
102
  bgClassName?: string;
103
103
  bgFill?: string;
104
104
  bgOpacity?: number;
105
+ /** Product glyph: "lms" = T monogram, "boards" = kanban columns */
106
+ variant?: "lms" | "boards";
105
107
  }
106
- declare const LogoMark: ({ size, className, }: LogoMarkProps) => react.JSX.Element;
108
+ declare const LogoMark: ({ size, className, bgClassName, bgFill, bgOpacity, variant, }: LogoMarkProps) => react.JSX.Element;
107
109
 
108
110
  declare const FormIcon: ({ size, className, style }: IconProps) => react.JSX.Element;
109
111
  declare const CalendarWeek: ({ size, className, style }: IconProps) => react.JSX.Element;
package/dist/index.js CHANGED
@@ -494,24 +494,28 @@ var Clock = ({ size = 13, className, style }) => /* @__PURE__ */ jsxs5("svg", {
494
494
  import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
495
495
  var LogoMark = ({
496
496
  size = 28,
497
- className
497
+ className,
498
+ bgClassName,
499
+ bgFill = "#1496b3",
500
+ bgOpacity = 1,
501
+ variant = "lms"
498
502
  }) => /* @__PURE__ */ jsxs6(
499
503
  "svg",
500
504
  {
501
505
  width: size,
502
506
  height: size,
503
- className: `${className} w-[${size}px] h-[${size}px]`,
504
- viewBox: "0 0 32 32",
507
+ className,
508
+ viewBox: "0 0 64 64",
505
509
  fill: "none",
506
510
  children: [
507
- /* @__PURE__ */ jsx6("rect", { width: "32", height: "32", rx: "8", fill: "none" }),
508
- /* @__PURE__ */ jsx6("path", { d: "M5 9 L5 5 L9 5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "square" }),
509
- /* @__PURE__ */ jsx6("path", { d: "M23 5 L27 5 L27 9", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "square" }),
510
- /* @__PURE__ */ jsx6("path", { d: "M5 23 L5 27 L9 27", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "square" }),
511
- /* @__PURE__ */ jsx6("path", { d: "M23 27 L27 27 L27 23", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "square", className: "opacity-50" }),
512
- /* @__PURE__ */ jsxs6("g", { fill: "currentColor", children: [
513
- /* @__PURE__ */ jsx6("rect", { x: "15", y: "10", width: "2", height: "14" }),
514
- /* @__PURE__ */ jsx6("rect", { x: "10", y: "10", width: "12", height: "2" })
511
+ /* @__PURE__ */ jsx6("rect", { width: "64", height: "64", rx: "14", fill: bgFill, opacity: bgOpacity, className: bgClassName }),
512
+ variant === "lms" ? /* @__PURE__ */ jsxs6("g", { fill: "#fff", children: [
513
+ /* @__PURE__ */ jsx6("rect", { x: "14", y: "14", width: "36", height: "10", rx: "3" }),
514
+ /* @__PURE__ */ jsx6("rect", { x: "27", y: "14", width: "10", height: "36", rx: "3" })
515
+ ] }) : /* @__PURE__ */ jsxs6("g", { fill: "#fff", children: [
516
+ /* @__PURE__ */ jsx6("rect", { x: "13", y: "15", width: "10", height: "26", rx: "5" }),
517
+ /* @__PURE__ */ jsx6("rect", { x: "27", y: "15", width: "10", height: "34", rx: "5" }),
518
+ /* @__PURE__ */ jsx6("rect", { x: "41", y: "15", width: "10", height: "20", rx: "5" })
515
519
  ] })
516
520
  ]
517
521
  }
@@ -2360,17 +2364,17 @@ import { jsx as jsx61, jsxs as jsxs44 } from "react/jsx-runtime";
2360
2364
  function Drawer({ open, onClose, title, description, children, footer, side = "right", className = "" }) {
2361
2365
  if (!open) return null;
2362
2366
  return /* @__PURE__ */ jsxs44("div", { className: "fixed inset-0 z-50", children: [
2363
- /* @__PURE__ */ jsx61("button", { type: "button", "aria-label": "Close drawer", className: "absolute inset-0 bg-[var(--tapiz-bg-overlay)]", onClick: onClose }),
2364
- /* @__PURE__ */ jsxs44("section", { className: `absolute top-0 h-full w-full max-w-md border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] shadow-[var(--tapiz-shadow-lg)] ${side === "right" ? "right-0 border-l" : "left-0 border-r"} ${className}`, children: [
2365
- /* @__PURE__ */ jsxs44("header", { className: "flex items-start justify-between gap-4 border-b border-[var(--tapiz-border-subtle)] p-5", children: [
2367
+ /* @__PURE__ */ jsx61("button", { type: "button", "aria-label": "Close drawer", className: "absolute inset-0 bg-(--tapiz-bg-overlay)", onClick: onClose }),
2368
+ /* @__PURE__ */ jsxs44("section", { className: `absolute top-0 h-full w-full max-w-md border-(--tapiz-border-strong) bg-(--tapiz-bg-surface) shadow-(--tapiz-shadow-lg) ${side === "right" ? "right-0 border-l" : "left-0 border-r"} ${className}`, children: [
2369
+ /* @__PURE__ */ jsxs44("header", { className: "flex items-start justify-between gap-4 border-b border-(--tapiz-border-subtle) p-5", children: [
2366
2370
  /* @__PURE__ */ jsxs44("div", { children: [
2367
- title ? /* @__PURE__ */ jsx61("h2", { className: "text-lg font-semibold text-[var(--tapiz-text-primary)]", children: title }) : null,
2368
- description ? /* @__PURE__ */ jsx61("p", { className: "mt-1 text-sm text-[var(--tapiz-text-muted)]", children: description }) : null
2371
+ title ? /* @__PURE__ */ jsx61("h2", { className: "text-lg font-semibold text-(--tapiz-text-primary)", children: title }) : null,
2372
+ description ? /* @__PURE__ */ jsx61("p", { className: "mt-1 text-sm text-(--tapiz-text-muted)", children: description }) : null
2369
2373
  ] }),
2370
- /* @__PURE__ */ jsx61("button", { type: "button", onClick: onClose, className: "border border-[var(--tapiz-border-subtle)] px-2 py-1 font-mono text-sm text-[var(--tapiz-text-muted)] hover:text-[var(--tapiz-text-primary)]", children: "\xD7" })
2374
+ /* @__PURE__ */ jsx61("button", { type: "button", onClick: onClose, className: "border border-(--tapiz-border-subtle) px-2 py-1 font-mono text-sm text-(--tapiz-text-muted) hover:text-(--tapiz-text-primary)", children: "\xD7" })
2371
2375
  ] }),
2372
2376
  /* @__PURE__ */ jsx61("div", { className: "max-h-[calc(100vh-9rem)] overflow-auto p-5", children }),
2373
- footer ? /* @__PURE__ */ jsx61("footer", { className: "border-t border-[var(--tapiz-border-subtle)] p-4", children: footer }) : null
2377
+ footer ? /* @__PURE__ */ jsx61("footer", { className: "border-t border-(--tapiz-border-subtle) p-4", children: footer }) : null
2374
2378
  ] })
2375
2379
  ] });
2376
2380
  }
@@ -3057,14 +3061,14 @@ function PasswordInput({
3057
3061
  return /* @__PURE__ */ jsxs74(
3058
3062
  "div",
3059
3063
  {
3060
- className: `flex border border-[var(--tapiz-border-strong)] bg-[var(--tapiz-bg-surface)] focus-within:border-[var(--tapiz-border-focus)] focus-within:shadow-[inset_3px_0_0_0_var(--tapiz-signal)] ${className}`,
3064
+ className: `flex border border-(--tapiz-border-strong) bg-(--tapiz-bg-surface) focus-within:border-(--tapiz-border-focus) focus-within:shadow-[inset_3px_0_0_0_var(--tapiz-signal)] ${className}`,
3061
3065
  children: [
3062
3066
  /* @__PURE__ */ jsx97(
3063
3067
  "input",
3064
3068
  {
3065
3069
  ...props,
3066
3070
  type: visible ? "text" : "password",
3067
- className: "min-w-0 flex-1 border-0 bg-transparent px-3 py-2 text-sm text-[var(--tapiz-text-primary)] outline-none focus:shadow-none!"
3071
+ className: "min-w-0 flex-1 border-0 bg-transparent px-3 py-2 text-sm text-(--tapiz-text-primary) outline-none focus:shadow-none!"
3068
3072
  }
3069
3073
  ),
3070
3074
  /* @__PURE__ */ jsx97(
@@ -3075,7 +3079,7 @@ function PasswordInput({
3075
3079
  "aria-pressed": visible,
3076
3080
  onClick: () => setVisible((v) => !v),
3077
3081
  tabIndex: -1,
3078
- className: "grid place-items-center px-3 text-[var(--tapiz-text-muted)] transition-colors hover:text-[var(--tapiz-text-primary)]",
3082
+ className: "grid place-items-center px-3 text-(--tapiz-text-muted) transition-colors hover:text-(--tapiz-text-primary)",
3079
3083
  children: visible ? /* @__PURE__ */ jsx97(EyeOff, { size: 15 }) : /* @__PURE__ */ jsx97(Eye, { size: 15 })
3080
3084
  }
3081
3085
  )