@david-richard/notify-ds 1.0.1 → 1.0.3
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.mts +17 -13
- package/dist/index.d.ts +17 -13
- package/dist/index.js +19 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +19 -20
- package/dist/index.mjs.map +1 -1
- package/package.json +25 -3
- package/tokens.css +1 -0
package/dist/index.d.mts
CHANGED
|
@@ -180,13 +180,17 @@ interface SelectorGroupProps {
|
|
|
180
180
|
declare function SelectorGroup({ children, className }: SelectorGroupProps): react_jsx_runtime.JSX.Element;
|
|
181
181
|
|
|
182
182
|
/**
|
|
183
|
-
* TabBar — Qu Notify
|
|
183
|
+
* TabBar — Qu Notify top-level tab selector (L1).
|
|
184
184
|
*
|
|
185
185
|
* Visual spec:
|
|
186
|
-
*
|
|
187
|
-
* Selected tab:
|
|
188
|
-
* Unselected tab:
|
|
189
|
-
* Font: Inter Medium 14px
|
|
186
|
+
* Layout: standalone pills sitting in a row with gaps (no outer container).
|
|
187
|
+
* Selected tab: black fill, white text, full-radius pill.
|
|
188
|
+
* Unselected tab: gray-100 fill, primary text, full-radius pill.
|
|
189
|
+
* Font: Inter Medium 14px.
|
|
190
|
+
*
|
|
191
|
+
* Differs from Switcher: TabBar is for primary page-level navigation where
|
|
192
|
+
* each tab reads as its own standalone affordance. Switcher is for inline
|
|
193
|
+
* filters where the segments share an outer track.
|
|
190
194
|
*
|
|
191
195
|
* Usage (uncontrolled):
|
|
192
196
|
* <TabBar tabs={["Sales", "Labor", "Store"]} defaultValue="Sales" />
|
|
@@ -236,18 +240,18 @@ interface TabPanelProps {
|
|
|
236
240
|
declare function TabPanel({ children, className }: TabPanelProps): react_jsx_runtime.JSX.Element;
|
|
237
241
|
|
|
238
242
|
/**
|
|
239
|
-
* Switcher — Qu Notify segmented control (
|
|
243
|
+
* Switcher — Qu Notify segmented control (L2 — inline data filter).
|
|
240
244
|
*
|
|
241
245
|
* Visual spec:
|
|
242
|
-
* Container: gray-100 (#DEDEDE) bg,
|
|
243
|
-
* Selected segment: black fill, white text,
|
|
244
|
-
* Unselected segment: transparent,
|
|
246
|
+
* Container: gray-100 (#DEDEDE) bg, full-radius pill, 3px padding
|
|
247
|
+
* Selected segment: black fill, white text, full-radius pill
|
|
248
|
+
* Unselected segment: transparent, primary text (black)
|
|
245
249
|
* Font: Inter Medium 14px
|
|
246
250
|
*
|
|
247
251
|
* Differs from TabBar:
|
|
248
|
-
* - TabBar:
|
|
249
|
-
* - Switcher:
|
|
250
|
-
* (e.g. Day / Week / Month, Net / Gross, All / Open / Closed)
|
|
252
|
+
* - TabBar: standalone pill tabs, no outer container — primary page navigation
|
|
253
|
+
* - Switcher: outer pill container holding inner pill segments — inline
|
|
254
|
+
* data filters (e.g. Day / Week / Month, Net / Gross, All / Open / Closed)
|
|
251
255
|
*
|
|
252
256
|
* Usage (uncontrolled):
|
|
253
257
|
* <Switcher segments={["Day", "Week", "Month"]} defaultValue="Week" />
|
|
@@ -356,7 +360,7 @@ declare function BottomNavContainer({ children }: {
|
|
|
356
360
|
* <Badge icon={<TrendUpIcon />} variant="success">Net Sales</Badge>
|
|
357
361
|
*/
|
|
358
362
|
declare const badgeVariants: (props?: ({
|
|
359
|
-
variant?: "
|
|
363
|
+
variant?: "default" | "alert" | "error" | "success" | "warning" | "info" | "neutral" | "brand" | null | undefined;
|
|
360
364
|
size?: "sm" | "md" | null | undefined;
|
|
361
365
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
362
366
|
interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof badgeVariants> {
|
package/dist/index.d.ts
CHANGED
|
@@ -180,13 +180,17 @@ interface SelectorGroupProps {
|
|
|
180
180
|
declare function SelectorGroup({ children, className }: SelectorGroupProps): react_jsx_runtime.JSX.Element;
|
|
181
181
|
|
|
182
182
|
/**
|
|
183
|
-
* TabBar — Qu Notify
|
|
183
|
+
* TabBar — Qu Notify top-level tab selector (L1).
|
|
184
184
|
*
|
|
185
185
|
* Visual spec:
|
|
186
|
-
*
|
|
187
|
-
* Selected tab:
|
|
188
|
-
* Unselected tab:
|
|
189
|
-
* Font: Inter Medium 14px
|
|
186
|
+
* Layout: standalone pills sitting in a row with gaps (no outer container).
|
|
187
|
+
* Selected tab: black fill, white text, full-radius pill.
|
|
188
|
+
* Unselected tab: gray-100 fill, primary text, full-radius pill.
|
|
189
|
+
* Font: Inter Medium 14px.
|
|
190
|
+
*
|
|
191
|
+
* Differs from Switcher: TabBar is for primary page-level navigation where
|
|
192
|
+
* each tab reads as its own standalone affordance. Switcher is for inline
|
|
193
|
+
* filters where the segments share an outer track.
|
|
190
194
|
*
|
|
191
195
|
* Usage (uncontrolled):
|
|
192
196
|
* <TabBar tabs={["Sales", "Labor", "Store"]} defaultValue="Sales" />
|
|
@@ -236,18 +240,18 @@ interface TabPanelProps {
|
|
|
236
240
|
declare function TabPanel({ children, className }: TabPanelProps): react_jsx_runtime.JSX.Element;
|
|
237
241
|
|
|
238
242
|
/**
|
|
239
|
-
* Switcher — Qu Notify segmented control (
|
|
243
|
+
* Switcher — Qu Notify segmented control (L2 — inline data filter).
|
|
240
244
|
*
|
|
241
245
|
* Visual spec:
|
|
242
|
-
* Container: gray-100 (#DEDEDE) bg,
|
|
243
|
-
* Selected segment: black fill, white text,
|
|
244
|
-
* Unselected segment: transparent,
|
|
246
|
+
* Container: gray-100 (#DEDEDE) bg, full-radius pill, 3px padding
|
|
247
|
+
* Selected segment: black fill, white text, full-radius pill
|
|
248
|
+
* Unselected segment: transparent, primary text (black)
|
|
245
249
|
* Font: Inter Medium 14px
|
|
246
250
|
*
|
|
247
251
|
* Differs from TabBar:
|
|
248
|
-
* - TabBar:
|
|
249
|
-
* - Switcher:
|
|
250
|
-
* (e.g. Day / Week / Month, Net / Gross, All / Open / Closed)
|
|
252
|
+
* - TabBar: standalone pill tabs, no outer container — primary page navigation
|
|
253
|
+
* - Switcher: outer pill container holding inner pill segments — inline
|
|
254
|
+
* data filters (e.g. Day / Week / Month, Net / Gross, All / Open / Closed)
|
|
251
255
|
*
|
|
252
256
|
* Usage (uncontrolled):
|
|
253
257
|
* <Switcher segments={["Day", "Week", "Month"]} defaultValue="Week" />
|
|
@@ -356,7 +360,7 @@ declare function BottomNavContainer({ children }: {
|
|
|
356
360
|
* <Badge icon={<TrendUpIcon />} variant="success">Net Sales</Badge>
|
|
357
361
|
*/
|
|
358
362
|
declare const badgeVariants: (props?: ({
|
|
359
|
-
variant?: "
|
|
363
|
+
variant?: "default" | "alert" | "error" | "success" | "warning" | "info" | "neutral" | "brand" | null | undefined;
|
|
360
364
|
size?: "sm" | "md" | null | undefined;
|
|
361
365
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
362
366
|
interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof badgeVariants> {
|
package/dist/index.js
CHANGED
|
@@ -316,9 +316,9 @@ var Checkbox = React4__namespace.forwardRef(
|
|
|
316
316
|
{
|
|
317
317
|
"aria-hidden": "true",
|
|
318
318
|
className: cn(
|
|
319
|
-
"flex h-[18px] w-[18px] shrink-0 items-center justify-center rounded-[
|
|
320
|
-
"border-[
|
|
321
|
-
showCheck || showDash ? "border-transparent bg-[var(--color-
|
|
319
|
+
"flex h-[18px] w-[18px] shrink-0 items-center justify-center rounded-[6px]",
|
|
320
|
+
"border-[2px] transition-colors duration-[120ms]",
|
|
321
|
+
showCheck || showDash ? "border-transparent bg-[var(--color-secondary,#339FB8)] text-[var(--color-foreground,#000)]" : "border-[var(--color-secondary,#339FB8)] bg-transparent"
|
|
322
322
|
),
|
|
323
323
|
children: [
|
|
324
324
|
showCheck && /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, {}),
|
|
@@ -337,10 +337,10 @@ var Checkbox = React4__namespace.forwardRef(
|
|
|
337
337
|
);
|
|
338
338
|
Checkbox.displayName = "Checkbox";
|
|
339
339
|
function CheckIcon() {
|
|
340
|
-
return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "11", height: "8", viewBox: "0 0 11 8", fill: "none", stroke: "
|
|
340
|
+
return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "11", height: "8", viewBox: "0 0 11 8", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "1,4 4,7 10,1" }) });
|
|
341
341
|
}
|
|
342
342
|
function DashIcon() {
|
|
343
|
-
return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "10", height: "2", viewBox: "0 0 10 2", fill: "none", stroke: "
|
|
343
|
+
return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "10", height: "2", viewBox: "0 0 10 2", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "1", y1: "1", x2: "9", y2: "1" }) });
|
|
344
344
|
}
|
|
345
345
|
var Radio = React4__namespace.forwardRef(
|
|
346
346
|
({ label, helperText, disabled, checked, defaultChecked, className, onChange, ...props }, ref) => {
|
|
@@ -378,10 +378,10 @@ var Radio = React4__namespace.forwardRef(
|
|
|
378
378
|
"aria-hidden": "true",
|
|
379
379
|
className: cn(
|
|
380
380
|
"flex h-[18px] w-[18px] shrink-0 items-center justify-center rounded-full",
|
|
381
|
-
"border-[
|
|
382
|
-
|
|
381
|
+
"border-[2px] bg-transparent transition-colors duration-[120ms]",
|
|
382
|
+
"border-[var(--color-secondary,#339FB8)]"
|
|
383
383
|
),
|
|
384
|
-
children: currentChecked && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-[
|
|
384
|
+
children: currentChecked && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-[8px] w-[8px] rounded-full bg-[var(--color-foreground,#000)]" })
|
|
385
385
|
}
|
|
386
386
|
),
|
|
387
387
|
(label || helperText) && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex flex-col gap-0.5", children: [
|
|
@@ -462,20 +462,20 @@ var Toggle = React4__namespace.forwardRef(
|
|
|
462
462
|
onKeyDown: handleKeyDown,
|
|
463
463
|
className: cn(
|
|
464
464
|
// track
|
|
465
|
-
"relative inline-flex h-[
|
|
465
|
+
"relative inline-flex h-[19px] w-[45px] shrink-0 cursor-pointer rounded-full",
|
|
466
466
|
"border-0 outline-none transition-colors duration-[180ms] ease-[cubic-bezier(0.2,0,0,1)]",
|
|
467
|
-
"focus-visible:ring-2 focus-visible:ring-[var(--color-
|
|
467
|
+
"focus-visible:ring-2 focus-visible:ring-[var(--color-secondary,#339FB8)] focus-visible:ring-offset-2",
|
|
468
468
|
"disabled:cursor-not-allowed",
|
|
469
|
-
currentOn ? "bg-[var(--color-
|
|
469
|
+
currentOn ? "bg-[var(--color-secondary,#339FB8)]" : "bg-[var(--color-inactive,#DEDEDE)]"
|
|
470
470
|
),
|
|
471
471
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
472
472
|
"span",
|
|
473
473
|
{
|
|
474
474
|
"aria-hidden": "true",
|
|
475
475
|
className: cn(
|
|
476
|
-
"absolute top-[2px] h-[
|
|
476
|
+
"absolute top-[2px] h-[15px] w-[24px] rounded-full bg-white shadow-sm",
|
|
477
477
|
"transition-transform duration-[180ms] ease-[cubic-bezier(0.2,0,0,1)]",
|
|
478
|
-
currentOn ? "translate-x-[
|
|
478
|
+
currentOn ? "translate-x-[19px]" : "translate-x-[2px]"
|
|
479
479
|
)
|
|
480
480
|
}
|
|
481
481
|
)
|
|
@@ -518,7 +518,7 @@ var Toggle = React4__namespace.forwardRef(
|
|
|
518
518
|
Toggle.displayName = "Toggle";
|
|
519
519
|
var selectorVariants = classVarianceAuthority.cva(
|
|
520
520
|
[
|
|
521
|
-
"inline-flex items-center gap-1.5 rounded-
|
|
521
|
+
"inline-flex items-center gap-1.5 rounded-xl select-none cursor-pointer",
|
|
522
522
|
"py-2 pl-3.5 pr-2.5",
|
|
523
523
|
"font-['Red_Hat_Text'] text-[14px] font-medium leading-tight",
|
|
524
524
|
"border-[1.5px] transition-colors duration-[120ms]",
|
|
@@ -639,8 +639,7 @@ function TabBar({
|
|
|
639
639
|
role: "tablist",
|
|
640
640
|
"aria-label": "Tabs",
|
|
641
641
|
className: cn(
|
|
642
|
-
"inline-flex items-center gap-
|
|
643
|
-
"bg-[var(--color-inactive,#DEDEDE)]",
|
|
642
|
+
"inline-flex items-center gap-2",
|
|
644
643
|
stretch && "w-full",
|
|
645
644
|
className
|
|
646
645
|
),
|
|
@@ -659,7 +658,7 @@ function TabBar({
|
|
|
659
658
|
"outline-none transition-colors duration-[120ms]",
|
|
660
659
|
"focus-visible:ring-2 focus-visible:ring-[var(--color-ring,#40CCF2)] focus-visible:ring-offset-1",
|
|
661
660
|
stretch && "flex-1 text-center",
|
|
662
|
-
isSelected ? "bg-[var(--color-foreground,#000)] text-white" : "bg-
|
|
661
|
+
isSelected ? "bg-[var(--color-foreground,#000)] text-white" : "bg-[var(--color-inactive,#DEDEDE)] text-[var(--color-text-primary,#000)] hover:brightness-95"
|
|
663
662
|
),
|
|
664
663
|
children: tab
|
|
665
664
|
},
|
|
@@ -710,7 +709,7 @@ function Switcher({
|
|
|
710
709
|
{
|
|
711
710
|
role: "group",
|
|
712
711
|
className: cn(
|
|
713
|
-
"inline-flex items-center gap-0.5 rounded-
|
|
712
|
+
"inline-flex items-center gap-0.5 rounded-full p-[3px]",
|
|
714
713
|
"bg-[var(--color-inactive,#DEDEDE)]",
|
|
715
714
|
stretch && "w-full",
|
|
716
715
|
className
|
|
@@ -728,13 +727,13 @@ function Switcher({
|
|
|
728
727
|
"aria-checked": isSelected,
|
|
729
728
|
onClick: () => handleSelect(val),
|
|
730
729
|
className: cn(
|
|
731
|
-
"inline-flex items-center justify-center gap-1.5 rounded-
|
|
730
|
+
"inline-flex items-center justify-center gap-1.5 rounded-full",
|
|
732
731
|
"px-4 py-[7px] cursor-pointer select-none",
|
|
733
732
|
"font-['Inter'] text-[14px] font-medium leading-tight",
|
|
734
733
|
"outline-none transition-colors duration-[120ms]",
|
|
735
734
|
"focus-visible:ring-2 focus-visible:ring-[var(--color-ring,#40CCF2)] focus-visible:ring-offset-1",
|
|
736
735
|
stretch && "flex-1",
|
|
737
|
-
isSelected ? "bg-[var(--color-foreground,#000)] text-white" : "bg-transparent text-[var(--color-text-
|
|
736
|
+
isSelected ? "bg-[var(--color-foreground,#000)] text-white" : "bg-transparent text-[var(--color-text-primary,#000)] hover:bg-black/5"
|
|
738
737
|
),
|
|
739
738
|
children: [
|
|
740
739
|
icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 [&_svg]:size-[14px]", children: icon }),
|