@nexub/patterns 2.4.0 → 2.6.0
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/chunk-23Q75ADU.js +54 -0
- package/dist/{chunk-HYC5N5MO.js → chunk-GHOBXWUA.js} +14 -11
- package/dist/components/ActivityFeed/index.js +1 -1
- package/dist/components/NotificationItem/index.js +1 -1
- package/dist/index.js +2 -2
- package/dist/styles.css +2 -0
- package/package.json +14 -9
- package/dist/chunk-5IORYY2L.js +0 -51
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
// src/components/NotificationItem/NotificationItem.tsx
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { cn, useNexubMessages } from "@nexub/react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
var NotificationItem = React.forwardRef(
|
|
8
|
+
({ title, description, timestamp, read = false, icon, onDismiss, className, ...props }, ref) => {
|
|
9
|
+
const t = useNexubMessages();
|
|
10
|
+
return /* @__PURE__ */ jsxs(
|
|
11
|
+
"div",
|
|
12
|
+
{
|
|
13
|
+
ref,
|
|
14
|
+
className: cn(
|
|
15
|
+
"nx-state-layer flex items-start gap-3 p-3 rounded-shape-container",
|
|
16
|
+
!read && "bg-[var(--color-surface-container-low)]",
|
|
17
|
+
className
|
|
18
|
+
),
|
|
19
|
+
...props,
|
|
20
|
+
children: [
|
|
21
|
+
!read && /* @__PURE__ */ jsx(
|
|
22
|
+
"span",
|
|
23
|
+
{
|
|
24
|
+
className: "mt-1.5 h-2 w-2 shrink-0 rounded-full bg-[var(--color-primary)]",
|
|
25
|
+
role: "img",
|
|
26
|
+
"aria-label": t.unread
|
|
27
|
+
}
|
|
28
|
+
),
|
|
29
|
+
icon && /* @__PURE__ */ jsx("div", { className: "shrink-0 mt-0.5", children: icon }),
|
|
30
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
31
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-[var(--color-on-surface)] truncate", children: title }),
|
|
32
|
+
description && /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--color-on-surface-muted)] mt-0.5 line-clamp-2", children: description }),
|
|
33
|
+
timestamp && /* @__PURE__ */ jsx("time", { className: "text-xs text-[var(--color-on-surface-muted)] mt-1 block", children: timestamp })
|
|
34
|
+
] }),
|
|
35
|
+
onDismiss && /* @__PURE__ */ jsx(
|
|
36
|
+
"button",
|
|
37
|
+
{
|
|
38
|
+
type: "button",
|
|
39
|
+
onClick: onDismiss,
|
|
40
|
+
"aria-label": t.dismissNotification,
|
|
41
|
+
className: "shrink-0 text-[var(--color-on-surface-muted)] hover:text-[var(--color-on-surface)] p-1 rounded-shape-control",
|
|
42
|
+
children: "\xD7"
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
NotificationItem.displayName = "NotificationItem";
|
|
51
|
+
|
|
52
|
+
export {
|
|
53
|
+
NotificationItem
|
|
54
|
+
};
|
|
@@ -2,19 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
// src/components/ActivityFeed/ActivityFeed.tsx
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
import { cn } from "@nexub/react";
|
|
5
|
+
import { cn, useNexubMessages } from "@nexub/react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
var Root = React.forwardRef(
|
|
8
|
-
({ className, children, ...props }, ref) =>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
8
|
+
({ className, children, ...props }, ref) => {
|
|
9
|
+
const t = useNexubMessages();
|
|
10
|
+
return /* @__PURE__ */ jsx(
|
|
11
|
+
"ul",
|
|
12
|
+
{
|
|
13
|
+
ref,
|
|
14
|
+
"aria-label": t.activityFeed,
|
|
15
|
+
className: cn("flex flex-col divide-y divide-[var(--color-outline-variant)]", className),
|
|
16
|
+
...props,
|
|
17
|
+
children
|
|
18
|
+
}
|
|
19
|
+
);
|
|
20
|
+
}
|
|
18
21
|
);
|
|
19
22
|
Root.displayName = "ActivityFeed.Root";
|
|
20
23
|
var Item = ({ avatar, title, description, timestamp, className }) => /* @__PURE__ */ jsxs("li", { className: cn("flex items-start gap-3 py-3", className), children: [
|
package/dist/index.js
CHANGED
|
@@ -52,10 +52,10 @@ import {
|
|
|
52
52
|
} from "./chunk-5JU6HUVJ.js";
|
|
53
53
|
import {
|
|
54
54
|
NotificationItem
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-23Q75ADU.js";
|
|
56
56
|
import {
|
|
57
57
|
ActivityFeed
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-GHOBXWUA.js";
|
|
59
59
|
import "./chunk-CWFZA7ZQ.js";
|
|
60
60
|
import {
|
|
61
61
|
ActivityPage,
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--spacing:.25rem;--container-3xl:48rem;--container-6xl:72rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base,components;@layer utilities{.\[container-type\:inline-size\]{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-x-0{inset-inline:var(--spacing-0)}.start-4{inset-inline-start:var(--spacing-4)}.-top-3{top:calc(var(--spacing-3) * -1)}.top-0{top:var(--spacing-0)}.top-8{top:var(--spacing-8)}.top-\[var\(--app-header-height\,64px\)\]{top:var(--app-header-height,64px)}.bottom-4{bottom:var(--spacing-4)}.left-1\/2{left:50%}.z-10{z-index:10}.row-span-2{grid-row:span 2/span 2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.-ms-2{margin-inline-start:calc(var(--spacing-2) * -1)}.ms-1{margin-inline-start:var(--spacing-1)}.ms-auto{margin-inline-start:auto}.me-1{margin-inline-end:var(--spacing-1)}.me-2{margin-inline-end:var(--spacing-2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing-1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:var(--spacing-2)}.mt-auto{margin-top:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:var(--spacing-2)}.h-8{height:var(--spacing-8)}.h-9{height:var(--spacing-9)}.h-10{height:var(--spacing-10)}.h-20{height:var(--spacing-20)}.h-\[calc\(100vh-var\(--app-header-height\,64px\)\)\]{height:calc(100vh - var(--app-header-height,64px))}.h-\[var\(--app-header-height\,64px\)\]{height:var(--app-header-height,64px)}.h-dvh{height:100dvh}.h-full{height:100%}.min-h-0{min-height:var(--spacing-0)}.min-h-\[56px\]{min-height:56px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:var(--spacing-2)}.w-8{width:var(--spacing-8)}.w-10{width:var(--spacing-10)}.w-20{width:var(--spacing-20)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-full{width:100%}.w-px{width:1px;width:var(--spacing-px)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[6rem\]{max-width:6rem}.max-w-\[400px\]{max-width:400px}.max-w-\[480px\]{max-width:480px}.max-w-\[calc\(100vw-1rem\)\]{max-width:calc(100vw - 1rem)}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-xl{max-width:36rem}.min-w-0{min-width:var(--spacing-0)}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.grid-flow-row-dense{grid-auto-flow:dense}.auto-rows-\[minmax\(10rem\,auto\)\]{grid-auto-rows:minmax(10rem,auto)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:var(--spacing-0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing-1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-5{gap:var(--spacing-5)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-\[var\(--color-outline-variant\)\]>:not(:last-child)){border-color:var(--color-outline-variant)}.self-center{align-self:center}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\[8px\]{border-radius:8px}.rounded-\[12px\]{border-radius:12px}.rounded-full{border-radius:var(--radius-full)}.rounded-shape-container{border-radius:var(--shape-container)}.rounded-shape-control{border-radius:var(--shape-control)}.rounded-shape-field{border-radius:var(--shape-field)}.rounded-shape-min{border-radius:var(--shape-min)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-s-4{border-inline-start-style:var(--tw-border-style);border-inline-start-width:4px}.border-e-0{border-inline-end-style:var(--tw-border-style);border-inline-end-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\[color-mix\(in_srgb\,var\(--color-outline-variant\)_60\%\,transparent\)\]{border-color:var(--color-outline-variant)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_srgb\,var\(--color-outline-variant\)_60\%\,transparent\)\]{border-color:color-mix(in srgb,var(--color-outline-variant) 60%,transparent)}}.border-\[var\(--color-outline-variant\)\]{border-color:var(--color-outline-variant)}.border-\[var\(--color-primary\)\]{border-color:var(--color-primary)}.border-s-\[var\(--color-error\)\]{border-inline-start-color:var(--color-error)}.bg-\[var\(--color-error-container\)\]{background-color:var(--color-error-container)}.bg-\[var\(--color-outline-variant\)\]{background-color:var(--color-outline-variant)}.bg-\[var\(--color-primary\)\]{background-color:var(--color-primary)}.bg-\[var\(--color-success-container\)\]{background-color:var(--color-success-container)}.bg-\[var\(--color-surface\)\]{background-color:var(--color-surface)}.bg-\[var\(--color-surface-container-low\)\]{background-color:var(--color-surface-container-low)}.bg-\[var\(--color-surface-container-lowest\)\]{background-color:var(--color-surface-container-lowest)}.bg-\[var\(--color-surface-elevated\)\]{background-color:var(--color-surface-elevated)}.bg-current{background-color:currentColor}.\[mask-image\:linear-gradient\(to_bottom\,black_calc\(100\%-24px\)\,transparent\)\]{-webkit-mask-image:linear-gradient(#000 calc(100% - 24px),#0000);mask-image:linear-gradient(#000 calc(100% - 24px),#0000)}.object-cover{object-fit:cover}.p-1{padding:var(--spacing-1)}.p-2{padding:var(--spacing-2)}.p-3{padding:var(--spacing-3)}.p-4{padding:var(--spacing-4)}.p-6{padding:var(--spacing-6)}.px-0{padding-inline:var(--spacing-0)}.px-1{padding-inline:var(--spacing-1)}.px-2{padding-inline:var(--spacing-2)}.px-3{padding-inline:var(--spacing-3)}.px-4{padding-inline:var(--spacing-4)}.px-5{padding-inline:var(--spacing-5)}.py-1{padding-block:var(--spacing-1)}.py-2{padding-block:var(--spacing-2)}.py-3{padding-block:var(--spacing-3)}.py-4{padding-block:var(--spacing-4)}.py-6{padding-block:var(--spacing-6)}.py-8{padding-block:var(--spacing-8)}.py-10{padding-block:var(--spacing-10)}.py-16{padding-block:var(--spacing-16)}.ps-3{padding-inline-start:var(--spacing-3)}.pe-2{padding-inline-end:var(--spacing-2)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-4{padding-top:var(--spacing-4)}.pt-5{padding-top:var(--spacing-5)}.pt-6{padding-top:var(--spacing-6)}.pb-2{padding-bottom:var(--spacing-2)}.pb-4{padding-bottom:var(--spacing-4)}.pb-6{padding-bottom:var(--spacing-6)}.pb-8{padding-bottom:var(--spacing-8)}.text-center{text-align:center}.text-end{text-align:end}.text-start{text-align:start}.text-body-md{font-size:var(--type-body-md-size);line-height:var(--tw-leading,var(--type-body-md-lineHeight));letter-spacing:var(--tw-tracking,var(--type-body-md-letterSpacing));font-weight:var(--tw-font-weight,var(--type-body-md-weight))}.text-body-sm{font-size:var(--type-body-sm-size);line-height:var(--tw-leading,var(--type-body-sm-lineHeight));letter-spacing:var(--tw-tracking,var(--type-body-sm-letterSpacing));font-weight:var(--tw-font-weight,var(--type-body-sm-weight))}.text-headline-sm{font-size:var(--type-headline-sm-size);line-height:var(--tw-leading,var(--type-headline-sm-lineHeight));letter-spacing:var(--tw-tracking,var(--type-headline-sm-letterSpacing));font-weight:var(--tw-font-weight,var(--type-headline-sm-weight))}.text-label-lg{font-size:var(--type-label-lg-size);line-height:var(--tw-leading,var(--type-label-lg-lineHeight));letter-spacing:var(--tw-tracking,var(--type-label-lg-letterSpacing));font-weight:var(--tw-font-weight,var(--type-label-lg-weight))}.text-label-md{font-size:var(--type-label-md-size);line-height:var(--tw-leading,var(--type-label-md-lineHeight));letter-spacing:var(--tw-tracking,var(--type-label-md-letterSpacing));font-weight:var(--tw-font-weight,var(--type-label-md-weight))}.text-label-sm{font-size:var(--type-label-sm-size);line-height:var(--tw-leading,var(--type-label-sm-lineHeight));letter-spacing:var(--tw-tracking,var(--type-label-sm-letterSpacing));font-weight:var(--tw-font-weight,var(--type-label-sm-weight))}.text-title-lg{font-size:var(--type-title-lg-size);line-height:var(--tw-leading,var(--type-title-lg-lineHeight));letter-spacing:var(--tw-tracking,var(--type-title-lg-letterSpacing));font-weight:var(--tw-font-weight,var(--type-title-lg-weight))}.text-title-md{font-size:var(--type-title-md-size);line-height:var(--tw-leading,var(--type-title-md-lineHeight));letter-spacing:var(--tw-tracking,var(--type-title-md-letterSpacing));font-weight:var(--tw-font-weight,var(--type-title-md-weight))}.text-title-sm{font-size:var(--type-title-sm-size);line-height:var(--tw-leading,var(--type-title-sm-lineHeight));letter-spacing:var(--tw-tracking,var(--type-title-sm-letterSpacing));font-weight:var(--tw-font-weight,var(--type-title-sm-weight))}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,2rem)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,2.25rem)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,1.5rem)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,1.25rem)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,1rem)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.break-words{overflow-wrap:break-word}.text-\[var\(--color-error\)\]{color:var(--color-error)}.text-\[var\(--color-on-error-container\)\]{color:var(--color-on-error-container)}.text-\[var\(--color-on-primary\)\]{color:var(--color-on-primary)}.text-\[var\(--color-on-surface\)\]{color:var(--color-on-surface)}.text-\[var\(--color-on-surface-muted\)\]{color:var(--color-on-surface-muted)}.text-\[var\(--color-on-surface-variant\)\]{color:var(--color-on-surface-variant)}.text-\[var\(--color-primary\)\]{color:var(--color-primary)}.text-\[var\(--color-success\)\]{color:var(--color-success)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-\[0\.2em\]{text-underline-offset:.2em}.shadow-elevation-1{--tw-shadow:var(--elevation-1);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-elevation-2{--tw-shadow:var(--elevation-2);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.\[-webkit-mask-image\:linear-gradient\(to_bottom\,black_calc\(100\%-24px\)\,transparent\)\]{-webkit-mask-image:linear-gradient(#000 calc(100% - 24px),#0000)}.placeholder\:text-\[var\(--color-on-surface-muted\)\]::placeholder{color:var(--color-on-surface-muted)}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.last\:pb-0:last-child{padding-bottom:var(--spacing-0)}@media (hover:hover){.hover\:bg-\[color-mix\(in_srgb\,var\(--color-on-surface\)_8\%\,transparent\)\]:hover{background-color:var(--color-on-surface)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_srgb\,var\(--color-on-surface\)_8\%\,transparent\)\]:hover{background-color:color-mix(in srgb,var(--color-on-surface) 8%,transparent)}}.hover\:text-\[var\(--color-on-surface\)\]:hover{color:var(--color-on-surface)}}@media (min-width:40rem){.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:w-1\/3{width:33.3333%}.sm\:w-64{width:var(--spacing-64)}.sm\:max-w-\[8rem\]{max-width:8rem}.sm\:shrink{flex-shrink:1}.sm\:shrink-0{flex-shrink:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:gap-1{gap:var(--spacing-1)}.sm\:gap-2{gap:var(--spacing-2)}.sm\:gap-4{gap:var(--spacing-4)}.sm\:px-4{padding-inline:var(--spacing-4)}.sm\:px-6{padding-inline:var(--spacing-6)}}@media (min-width:48rem){.md\:ms-0{margin-inline-start:var(--spacing-0)}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/3{width:33.3333%}.md\:min-w-0{min-width:var(--spacing-0)}.md\:flex-1{flex:1}.md\:flex-row{flex-direction:row}.md\:justify-center{justify-content:center}.md\:gap-8{gap:var(--spacing-8)}.md\:px-2{padding-inline:var(--spacing-2)}.md\:px-8{padding-inline:var(--spacing-8)}.md\:py-10{padding-block:var(--spacing-10)}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:px-4{padding-inline:var(--spacing-4)}.lg\:py-10{padding-block:var(--spacing-10)}}@media (min-width:80rem){.xl\:max-w-\[12rem\]{max-width:12rem}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.rtl\:-scale-x-100:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-scale-x:calc(100% * -1);scale:var(--tw-scale-x) var(--tw-scale-y)}@container (min-width:480px){.\[\@container\(min-width\:480px\)\]\:col-span-2{grid-column:span 2/span 2}.\[\@container\(min-width\:480px\)\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (min-width:720px){.\[\@container\(min-width\:720px\)\]\:flex{display:flex}.\[\@container\(min-width\:720px\)\]\:hidden{display:none}.\[\@container\(min-width\:720px\)\]\:w-72{width:calc(var(--spacing) * 72)}.\[\@container\(min-width\:720px\)\]\:w-80{width:calc(var(--spacing) * 80)}.\[\@container\(min-width\:720px\)\]\:w-\[400px\]{width:400px}.\[\@container\(min-width\:720px\)\]\:border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.\[\@container\(min-width\:720px\)\]\:border-\[var\(--color-outline-variant\)\]{border-color:var(--color-outline-variant)}}@container (min-width:768px){.\[\@container\(min-width\:768px\)\]\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nexub/patterns",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "Composite UI patterns for Nexub Design System — pre-built, production-ready layouts and widgets built on @nexub/react.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -23,12 +23,15 @@
|
|
|
23
23
|
"files": [
|
|
24
24
|
"dist"
|
|
25
25
|
],
|
|
26
|
-
"sideEffects":
|
|
26
|
+
"sideEffects": [
|
|
27
|
+
"*.css"
|
|
28
|
+
],
|
|
27
29
|
"exports": {
|
|
28
30
|
".": {
|
|
29
31
|
"types": "./dist/index.d.ts",
|
|
30
32
|
"default": "./dist/index.js"
|
|
31
33
|
},
|
|
34
|
+
"./styles.css": "./dist/styles.css",
|
|
32
35
|
"./package.json": "./package.json"
|
|
33
36
|
},
|
|
34
37
|
"main": "./dist/index.js",
|
|
@@ -36,9 +39,9 @@
|
|
|
36
39
|
"peerDependencies": {
|
|
37
40
|
"react": ">=18 <20",
|
|
38
41
|
"react-dom": ">=18 <20",
|
|
39
|
-
"@nexub/icons": "^2.
|
|
40
|
-
"@nexub/react": "^2.
|
|
41
|
-
"@nexub/tokens": "^2.
|
|
42
|
+
"@nexub/icons": "^2.6.0",
|
|
43
|
+
"@nexub/react": "^2.6.0",
|
|
44
|
+
"@nexub/tokens": "^2.6.0"
|
|
42
45
|
},
|
|
43
46
|
"peerDependenciesMeta": {
|
|
44
47
|
"@nexub/icons": {
|
|
@@ -49,22 +52,24 @@
|
|
|
49
52
|
}
|
|
50
53
|
},
|
|
51
54
|
"devDependencies": {
|
|
55
|
+
"@tailwindcss/cli": "^4.3.3",
|
|
52
56
|
"@testing-library/jest-dom": "^6.9.1",
|
|
53
57
|
"@testing-library/react": "^16.3.3",
|
|
54
58
|
"@testing-library/user-event": "^14.6.8",
|
|
55
59
|
"@types/react": "^19.3.0",
|
|
56
60
|
"@types/react-dom": "^19.3.0",
|
|
57
61
|
"jsdom": "^30.1.3",
|
|
62
|
+
"tailwindcss": "^4.3.3",
|
|
58
63
|
"tsup": "^8.5.1",
|
|
59
64
|
"typescript": "^5.9.3",
|
|
60
65
|
"vite": "^7.3.7",
|
|
61
66
|
"vitest": "^5.0.5",
|
|
62
|
-
"@nexub/icons": "2.
|
|
63
|
-
"@nexub/react": "2.
|
|
64
|
-
"@nexub/tokens": "2.
|
|
67
|
+
"@nexub/icons": "2.6.0",
|
|
68
|
+
"@nexub/react": "2.6.0",
|
|
69
|
+
"@nexub/tokens": "2.6.0"
|
|
65
70
|
},
|
|
66
71
|
"scripts": {
|
|
67
|
-
"build": "tsup",
|
|
72
|
+
"build": "tsup && tailwindcss -i src/styles.css -o dist/styles.css --minify",
|
|
68
73
|
"dev": "tsup --watch",
|
|
69
74
|
"clean": "rm -rf dist",
|
|
70
75
|
"typecheck": "tsc --noEmit",
|
package/dist/chunk-5IORYY2L.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
// src/components/NotificationItem/NotificationItem.tsx
|
|
4
|
-
import * as React from "react";
|
|
5
|
-
import { cn } from "@nexub/react";
|
|
6
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
-
var NotificationItem = React.forwardRef(
|
|
8
|
-
({ title, description, timestamp, read = false, icon, onDismiss, className, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
9
|
-
"div",
|
|
10
|
-
{
|
|
11
|
-
ref,
|
|
12
|
-
className: cn(
|
|
13
|
-
"nx-state-layer flex items-start gap-3 p-3 rounded-shape-container",
|
|
14
|
-
!read && "bg-[var(--color-surface-container-low)]",
|
|
15
|
-
className
|
|
16
|
-
),
|
|
17
|
-
...props,
|
|
18
|
-
children: [
|
|
19
|
-
!read && /* @__PURE__ */ jsx(
|
|
20
|
-
"span",
|
|
21
|
-
{
|
|
22
|
-
className: "mt-1.5 h-2 w-2 shrink-0 rounded-full bg-[var(--color-primary)]",
|
|
23
|
-
role: "img",
|
|
24
|
-
"aria-label": "Unread"
|
|
25
|
-
}
|
|
26
|
-
),
|
|
27
|
-
icon && /* @__PURE__ */ jsx("div", { className: "shrink-0 mt-0.5", children: icon }),
|
|
28
|
-
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
29
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-[var(--color-on-surface)] truncate", children: title }),
|
|
30
|
-
description && /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--color-on-surface-muted)] mt-0.5 line-clamp-2", children: description }),
|
|
31
|
-
timestamp && /* @__PURE__ */ jsx("time", { className: "text-xs text-[var(--color-on-surface-muted)] mt-1 block", children: timestamp })
|
|
32
|
-
] }),
|
|
33
|
-
onDismiss && /* @__PURE__ */ jsx(
|
|
34
|
-
"button",
|
|
35
|
-
{
|
|
36
|
-
type: "button",
|
|
37
|
-
onClick: onDismiss,
|
|
38
|
-
"aria-label": "Dismiss notification",
|
|
39
|
-
className: "shrink-0 text-[var(--color-on-surface-muted)] hover:text-[var(--color-on-surface)] p-1 rounded-shape-control",
|
|
40
|
-
children: "\xD7"
|
|
41
|
-
}
|
|
42
|
-
)
|
|
43
|
-
]
|
|
44
|
-
}
|
|
45
|
-
)
|
|
46
|
-
);
|
|
47
|
-
NotificationItem.displayName = "NotificationItem";
|
|
48
|
-
|
|
49
|
-
export {
|
|
50
|
-
NotificationItem
|
|
51
|
-
};
|