@assure-one/design-system 0.15.1 → 0.17.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/index.d.ts +59 -26
- package/dist/index.js +189 -73
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/tokens/index.d.ts +17 -4
- package/dist/tokens/index.js +16 -3
- package/dist/tokens/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import * as React36 from 'react';
|
|
3
|
-
import { forwardRef, useState, useCallback, useId, useRef, useImperativeHandle, useMemo, useEffect, createContext,
|
|
3
|
+
import { forwardRef, useState, useCallback, useId, useRef, useImperativeHandle, useMemo, useEffect, createContext, useContext } from 'react';
|
|
4
4
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
5
5
|
import { clsx } from 'clsx';
|
|
6
6
|
import { twMerge } from 'tailwind-merge';
|
|
@@ -90,9 +90,9 @@ var colors = {
|
|
|
90
90
|
};
|
|
91
91
|
var typography = {
|
|
92
92
|
family: {
|
|
93
|
-
display: '"
|
|
93
|
+
display: '"Inter", -apple-system, system-ui, sans-serif',
|
|
94
94
|
body: '"Inter", -apple-system, system-ui, sans-serif',
|
|
95
|
-
mono: '"
|
|
95
|
+
mono: '"Inter", -apple-system, system-ui, sans-serif'
|
|
96
96
|
},
|
|
97
97
|
weight: {
|
|
98
98
|
regular: 400,
|
|
@@ -230,11 +230,24 @@ var systemTokens = {
|
|
|
230
230
|
dangerBg: "var(--color-danger-bg)",
|
|
231
231
|
dangerLine: "var(--color-danger-line)"
|
|
232
232
|
},
|
|
233
|
+
gradient: {
|
|
234
|
+
brand: "var(--gradient-brand)",
|
|
235
|
+
pro: "var(--gradient-pro)",
|
|
236
|
+
audit: "var(--gradient-audit)",
|
|
237
|
+
books: "var(--gradient-books)",
|
|
238
|
+
tax: "var(--gradient-tax)"
|
|
239
|
+
},
|
|
233
240
|
shadow: {
|
|
234
241
|
quiet: "var(--shadow-quiet)",
|
|
235
242
|
card: "var(--shadow-card)",
|
|
236
243
|
pop: "var(--shadow-pop)",
|
|
237
|
-
focusRing: "var(--shadow-focus-ring)"
|
|
244
|
+
focusRing: "var(--shadow-focus-ring)",
|
|
245
|
+
xs: "var(--shadow-xs)",
|
|
246
|
+
sm: "var(--shadow-sm)",
|
|
247
|
+
md: "var(--shadow-md)",
|
|
248
|
+
lg: "var(--shadow-lg)",
|
|
249
|
+
xl: "var(--shadow-xl)",
|
|
250
|
+
"2xl": "var(--shadow-2xl)"
|
|
238
251
|
},
|
|
239
252
|
radius: {
|
|
240
253
|
btn: "var(--radius-btn)",
|
|
@@ -2235,6 +2248,7 @@ var AccordionTrigger = React36.forwardRef(function AccordionTrigger2({ children,
|
|
|
2235
2248
|
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
2236
2249
|
"hover:text-fg-2",
|
|
2237
2250
|
"focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
2251
|
+
"data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[disabled]:hover:text-fg",
|
|
2238
2252
|
"[&[data-state=open]>svg]:rotate-180",
|
|
2239
2253
|
className
|
|
2240
2254
|
),
|
|
@@ -3013,7 +3027,16 @@ var CardAction = forwardRef(
|
|
|
3013
3027
|
}
|
|
3014
3028
|
);
|
|
3015
3029
|
CardAction.displayName = "CardAction";
|
|
3016
|
-
var Checkbox = React36.forwardRef(function Checkbox2({
|
|
3030
|
+
var Checkbox = React36.forwardRef(function Checkbox2({
|
|
3031
|
+
label,
|
|
3032
|
+
indeterminate,
|
|
3033
|
+
checked,
|
|
3034
|
+
defaultChecked,
|
|
3035
|
+
shape = "square",
|
|
3036
|
+
className,
|
|
3037
|
+
id: providedId,
|
|
3038
|
+
...props
|
|
3039
|
+
}, ref) {
|
|
3017
3040
|
const generatedId = React36.useId();
|
|
3018
3041
|
const id = providedId ?? generatedId;
|
|
3019
3042
|
const resolvedChecked = indeterminate ? "indeterminate" : checked;
|
|
@@ -3026,18 +3049,19 @@ var Checkbox = React36.forwardRef(function Checkbox2({ label, indeterminate, che
|
|
|
3026
3049
|
checked: resolvedChecked,
|
|
3027
3050
|
defaultChecked,
|
|
3028
3051
|
className: cn(
|
|
3029
|
-
"peer border-rule-strong bg-surface text-fg
|
|
3052
|
+
"peer border-rule-strong bg-surface text-pro-fg flex size-4 shrink-0 items-center justify-center border",
|
|
3053
|
+
shape === "circle" ? "rounded-full" : "rounded-[4px]",
|
|
3030
3054
|
"transition-[color,background-color,border-color,box-shadow] duration-[var(--duration-fast)]",
|
|
3031
3055
|
"hover:border-fg-4",
|
|
3032
3056
|
"focus-visible:border-accent focus-visible:[box-shadow:var(--shadow-focus-ring)] focus-visible:outline-none",
|
|
3033
|
-
"data-[state=checked]:border-pro-fg data-[state=checked]:bg-pro-
|
|
3034
|
-
"data-[state=indeterminate]:border-pro-fg data-[state=indeterminate]:bg-pro-
|
|
3057
|
+
"data-[state=checked]:border-pro-fg data-[state=checked]:bg-pro-bg",
|
|
3058
|
+
"data-[state=indeterminate]:border-pro-fg data-[state=indeterminate]:bg-pro-bg",
|
|
3035
3059
|
"disabled:bg-bg-disabled disabled:border-rule disabled:text-fg-disabled disabled:cursor-not-allowed",
|
|
3036
3060
|
"aria-[invalid=true]:border-danger-line",
|
|
3037
3061
|
className
|
|
3038
3062
|
),
|
|
3039
3063
|
...props,
|
|
3040
|
-
children: /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: resolvedChecked === "indeterminate" ? /* @__PURE__ */ jsx(MinusIcon, { className: "size-3", strokeWidth: 3, "aria-hidden": "true" }) : /* @__PURE__ */ jsx(CheckIcon, { className: "size-3", strokeWidth: 3, "aria-hidden": "true" }) })
|
|
3064
|
+
children: /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: resolvedChecked === "indeterminate" ? /* @__PURE__ */ jsx(MinusIcon, { className: "size-3", strokeWidth: 3, "aria-hidden": "true" }) : shape === "circle" ? /* @__PURE__ */ jsx("span", { className: "size-1.5 rounded-full bg-current", "aria-hidden": "true" }) : /* @__PURE__ */ jsx(CheckIcon, { className: "size-3", strokeWidth: 3, "aria-hidden": "true" }) })
|
|
3041
3065
|
}
|
|
3042
3066
|
),
|
|
3043
3067
|
label && /* @__PURE__ */ jsx(
|
|
@@ -6220,10 +6244,10 @@ function SearchSelect({
|
|
|
6220
6244
|
"div",
|
|
6221
6245
|
{
|
|
6222
6246
|
className: cn(
|
|
6223
|
-
"rounded-input border-rule-strong bg-surface relative flex h-9 w-full items-center border",
|
|
6224
|
-
"transition-[color,background-color,border-color
|
|
6247
|
+
"rounded-input border-rule-strong bg-surface relative flex h-9 w-full items-center border outline-none",
|
|
6248
|
+
"transition-[color,background-color,border-color] duration-[var(--duration-fast)] ease-[var(--ease-out-quart)]",
|
|
6225
6249
|
"motion-reduce:transition-none",
|
|
6226
|
-
"focus-within:
|
|
6250
|
+
"focus-within:[outline:1px_solid_var(--color-pro-fg)] focus-within:[outline-offset:-1px]",
|
|
6227
6251
|
showValue && "hover:bg-bg-2 gap-2 pr-2 pl-3",
|
|
6228
6252
|
disabled && "bg-bg-disabled cursor-not-allowed"
|
|
6229
6253
|
),
|
|
@@ -7990,7 +8014,8 @@ function SidebarProvider({
|
|
|
7990
8014
|
SidebarProvider.displayName = "SidebarProvider";
|
|
7991
8015
|
var PEEK_ENTER_DELAY_MS = 100;
|
|
7992
8016
|
var PEEK_LEAVE_DELAY_MS = 200;
|
|
7993
|
-
var Sidebar = React36.forwardRef(function Sidebar2({ className, collapsible = false, onMouseEnter, onMouseLeave, style, ...props }, ref) {
|
|
8017
|
+
var Sidebar = React36.forwardRef(function Sidebar2({ className, collapsible = false, variant = "classic", onMouseEnter, onMouseLeave, style, ...props }, ref) {
|
|
8018
|
+
const isFloating = variant === "floating";
|
|
7994
8019
|
const ctx = React36.useContext(SidebarContext);
|
|
7995
8020
|
const state = collapsible && ctx ? ctx.state : "expanded";
|
|
7996
8021
|
const peekLockCount = collapsible && ctx ? ctx.peekLockCount : 0;
|
|
@@ -8053,12 +8078,19 @@ var Sidebar = React36.forwardRef(function Sidebar2({ className, collapsible = fa
|
|
|
8053
8078
|
"data-overlay": overlay ? "true" : void 0,
|
|
8054
8079
|
"data-labels": labelsHidden ? "hide" : "show",
|
|
8055
8080
|
"data-collapsible": collapsible ? "true" : void 0,
|
|
8081
|
+
"data-variant": variant,
|
|
8056
8082
|
onMouseEnter: handleEnter,
|
|
8057
8083
|
onMouseLeave: handleLeave,
|
|
8058
8084
|
style: { width: effectiveWidth, ...style },
|
|
8059
8085
|
className: cn(
|
|
8060
|
-
"group/sidebar scrollbar-thin flex
|
|
8061
|
-
|
|
8086
|
+
"group/sidebar scrollbar-thin flex shrink-0 flex-col overflow-y-auto px-3 pt-4 pb-4",
|
|
8087
|
+
// Classic: full-height column flush to the left edge with a right
|
|
8088
|
+
// rule. The legacy look.
|
|
8089
|
+
!isFloating && "h-dvh border-rule bg-bg-2 border-r",
|
|
8090
|
+
// Floating: a detached, rounded card inset from the viewport with a
|
|
8091
|
+
// soft shadow — the modern SaaS pattern. The clear figure/ground gap
|
|
8092
|
+
// (Aesthetic-Usability) reads as its own surface above the canvas.
|
|
8093
|
+
isFloating && "border-rule bg-surface shadow-card m-2.5 h-[calc(100dvh-1.25rem)] rounded-2xl border",
|
|
8062
8094
|
// 220ms feels right for a ~192px width sweep — slower than the
|
|
8063
8095
|
// 150ms `--duration-fast` (which reads as a snap on this size of
|
|
8064
8096
|
// movement) but well short of `--duration-slow` (which feels
|
|
@@ -8347,6 +8379,11 @@ var SidebarLink = React36.forwardRef(
|
|
|
8347
8379
|
// when the column widens during peek. The label simply collapses
|
|
8348
8380
|
// to width 0 via <SidebarLinkLabel>.
|
|
8349
8381
|
"[&_svg]:size-3.5 [&_svg]:shrink-0 [&_svg]:opacity-85",
|
|
8382
|
+
// Floating variant: softer corners + a taller hit area (Fitts's
|
|
8383
|
+
// law — a larger target is faster and lower-error to acquire), and
|
|
8384
|
+
// a full pill highlight for active instead of the left rail bar.
|
|
8385
|
+
"group-data-[variant=floating]/sidebar:gap-3 group-data-[variant=floating]/sidebar:rounded-lg group-data-[variant=floating]/sidebar:py-2",
|
|
8386
|
+
"group-data-[variant=floating]/sidebar:data-[active=true]:before:hidden",
|
|
8350
8387
|
className
|
|
8351
8388
|
),
|
|
8352
8389
|
...props,
|
|
@@ -8356,10 +8393,12 @@ var SidebarLink = React36.forwardRef(
|
|
|
8356
8393
|
"span",
|
|
8357
8394
|
{
|
|
8358
8395
|
className: cn(
|
|
8359
|
-
//
|
|
8360
|
-
//
|
|
8361
|
-
//
|
|
8362
|
-
"
|
|
8396
|
+
// Flex row so a trailing <SidebarLinkBadge> (ml-auto) aligns
|
|
8397
|
+
// to the right edge with a gap from the label, instead of
|
|
8398
|
+
// butting against it. A line-clamp box swallows the badge's
|
|
8399
|
+
// auto margin, which is why "Billing$48k" rendered glued.
|
|
8400
|
+
// Single-line label clips via overflow; badge stays put.
|
|
8401
|
+
"flex min-w-0 flex-1 items-center gap-1.5 overflow-hidden whitespace-nowrap",
|
|
8363
8402
|
"transition-[opacity,max-width] duration-[180ms] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
8364
8403
|
"max-w-full opacity-100",
|
|
8365
8404
|
"group-data-[labels=hide]/sidebar:max-w-0 group-data-[labels=hide]/sidebar:opacity-0 group-data-[labels=hide]/sidebar:invisible"
|
|
@@ -8495,7 +8534,10 @@ var SidebarLinkGroup = React36.forwardRef(
|
|
|
8495
8534
|
"data-[active=true]:before:top-1/2 data-[active=true]:before:left-0",
|
|
8496
8535
|
"data-[active=true]:before:h-4 data-[active=true]:before:w-[2px] data-[active=true]:before:-translate-y-1/2",
|
|
8497
8536
|
"data-[active=true]:before:bg-pro-fg data-[active=true]:before:rounded-r-full",
|
|
8498
|
-
"[&_svg]:size-3.5 [&_svg]:shrink-0 [&_svg]:opacity-85"
|
|
8537
|
+
"[&_svg]:size-3.5 [&_svg]:shrink-0 [&_svg]:opacity-85",
|
|
8538
|
+
// Floating variant — match SidebarLink: taller hit area, pill active.
|
|
8539
|
+
"group-data-[variant=floating]/sidebar:gap-3 group-data-[variant=floating]/sidebar:rounded-lg group-data-[variant=floating]/sidebar:py-2",
|
|
8540
|
+
"group-data-[variant=floating]/sidebar:data-[active=true]:before:hidden"
|
|
8499
8541
|
);
|
|
8500
8542
|
const labelSpan = /* @__PURE__ */ jsx(
|
|
8501
8543
|
"span",
|
|
@@ -9901,16 +9943,16 @@ var NotificationPanelHeader = forwardRef(
|
|
|
9901
9943
|
...props,
|
|
9902
9944
|
children: [
|
|
9903
9945
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
9904
|
-
/* @__PURE__ */ jsx("h3", { className: "text-fg text-
|
|
9905
|
-
unreadCount > 0 && /* @__PURE__ */ jsx("span", { className: "bg-
|
|
9946
|
+
/* @__PURE__ */ jsx("h3", { className: "text-fg text-[15px] font-semibold", children: title }),
|
|
9947
|
+
unreadCount > 0 && /* @__PURE__ */ jsx("span", { className: "bg-pro-bg text-pro-fg rounded-pill px-1.5 py-0.5 text-[11px] font-semibold tabular-nums", children: unreadCount > 99 ? "99+" : unreadCount })
|
|
9906
9948
|
] }),
|
|
9907
9949
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
9908
|
-
onMarkAllRead &&
|
|
9950
|
+
onMarkAllRead && /* @__PURE__ */ jsx(
|
|
9909
9951
|
"button",
|
|
9910
9952
|
{
|
|
9911
9953
|
type: "button",
|
|
9912
9954
|
onClick: onMarkAllRead,
|
|
9913
|
-
className: "text-fg-
|
|
9955
|
+
className: "text-pro-fg rounded-md px-1.5 py-1 text-sm font-medium hover:bg-[color:var(--color-pro-bg)] focus-visible:ring-accent outline-none focus-visible:ring-2",
|
|
9914
9956
|
children: "Mark all read"
|
|
9915
9957
|
}
|
|
9916
9958
|
),
|
|
@@ -9933,7 +9975,7 @@ var NotificationPanelHeader = forwardRef(
|
|
|
9933
9975
|
NotificationPanelHeader.displayName = "NotificationPanelHeader";
|
|
9934
9976
|
var FILTER_OPTIONS = ["all", "unread"];
|
|
9935
9977
|
var NotificationFilter = forwardRef(
|
|
9936
|
-
function NotificationFilter2({ value, onValueChange, actions, className, ...props }, ref) {
|
|
9978
|
+
function NotificationFilter2({ value, onValueChange, counts, actions, className, ...props }, ref) {
|
|
9937
9979
|
return /* @__PURE__ */ jsxs(
|
|
9938
9980
|
"div",
|
|
9939
9981
|
{
|
|
@@ -9944,21 +9986,37 @@ var NotificationFilter = forwardRef(
|
|
|
9944
9986
|
),
|
|
9945
9987
|
...props,
|
|
9946
9988
|
children: [
|
|
9947
|
-
/* @__PURE__ */ jsx("div", { className: "
|
|
9948
|
-
|
|
9949
|
-
|
|
9950
|
-
|
|
9951
|
-
|
|
9952
|
-
|
|
9953
|
-
|
|
9954
|
-
|
|
9955
|
-
"
|
|
9956
|
-
|
|
9957
|
-
|
|
9958
|
-
|
|
9959
|
-
|
|
9960
|
-
|
|
9961
|
-
|
|
9989
|
+
/* @__PURE__ */ jsx("div", { className: "inline-flex items-center gap-1 text-sm font-medium", children: FILTER_OPTIONS.map((option) => {
|
|
9990
|
+
const selected = value === option;
|
|
9991
|
+
const count = counts?.[option];
|
|
9992
|
+
return /* @__PURE__ */ jsxs(
|
|
9993
|
+
"button",
|
|
9994
|
+
{
|
|
9995
|
+
type: "button",
|
|
9996
|
+
onClick: () => onValueChange(option),
|
|
9997
|
+
"aria-pressed": selected,
|
|
9998
|
+
className: cn(
|
|
9999
|
+
"inline-flex items-center gap-1.5 rounded-lg px-2.5 py-1 capitalize transition-colors",
|
|
10000
|
+
"focus-visible:ring-accent outline-none focus-visible:ring-2",
|
|
10001
|
+
selected ? "bg-surface text-pro-fg ring-1 ring-[color:var(--color-pro-line)]" : "text-fg-3 hover:text-fg"
|
|
10002
|
+
),
|
|
10003
|
+
children: [
|
|
10004
|
+
option,
|
|
10005
|
+
count != null && /* @__PURE__ */ jsx(
|
|
10006
|
+
"span",
|
|
10007
|
+
{
|
|
10008
|
+
className: cn(
|
|
10009
|
+
"rounded-md px-1.5 py-px text-[11px] font-semibold tabular-nums",
|
|
10010
|
+
selected ? "bg-pro-bg text-pro-fg" : "bg-bg-2 text-fg-4"
|
|
10011
|
+
),
|
|
10012
|
+
children: count
|
|
10013
|
+
}
|
|
10014
|
+
)
|
|
10015
|
+
]
|
|
10016
|
+
},
|
|
10017
|
+
option
|
|
10018
|
+
);
|
|
10019
|
+
}) }),
|
|
9962
10020
|
actions
|
|
9963
10021
|
]
|
|
9964
10022
|
}
|
|
@@ -9982,27 +10040,25 @@ var NotificationList = forwardRef(
|
|
|
9982
10040
|
NotificationList.displayName = "NotificationList";
|
|
9983
10041
|
var NotificationItem = forwardRef(
|
|
9984
10042
|
function NotificationItem2({ title, body, typeLabel, client, time, sender, icon, iconClassName, unread, className, ...props }, ref) {
|
|
9985
|
-
const meta = body ? [] : [typeLabel, client].filter(Boolean);
|
|
9986
10043
|
return /* @__PURE__ */ jsxs(
|
|
9987
10044
|
"button",
|
|
9988
10045
|
{
|
|
9989
10046
|
ref,
|
|
9990
10047
|
type: "button",
|
|
9991
10048
|
className: cn(
|
|
9992
|
-
"flex w-full gap-3 px-4 py-
|
|
10049
|
+
"flex w-full gap-3 px-4 py-3 text-left outline-none",
|
|
9993
10050
|
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
9994
10051
|
unread ? "bg-pro-bg hover:bg-pro-bg-hover focus-visible:bg-pro-bg-hover" : "hover:bg-bg-2/60 focus-visible:bg-bg-2/60",
|
|
9995
10052
|
className
|
|
9996
10053
|
),
|
|
9997
10054
|
...props,
|
|
9998
10055
|
children: [
|
|
9999
|
-
/* @__PURE__ */ jsx(
|
|
10000
|
-
sender ? /* @__PURE__ */ jsx(Avatar, { size: "sm", name: sender.name, src: sender.src, className: "mt-0.5" }) : /* @__PURE__ */ jsx(
|
|
10056
|
+
sender ? /* @__PURE__ */ jsx(Avatar, { size: "md", name: sender.name, src: sender.src, className: "mt-0.5" }) : /* @__PURE__ */ jsx(
|
|
10001
10057
|
"div",
|
|
10002
10058
|
{
|
|
10003
10059
|
"aria-hidden": "true",
|
|
10004
10060
|
className: cn(
|
|
10005
|
-
"mt-0.5 flex size-
|
|
10061
|
+
"mt-0.5 flex size-9 shrink-0 items-center justify-center rounded-xl [&_svg]:size-4",
|
|
10006
10062
|
iconClassName ?? "bg-bg-2 text-fg-3"
|
|
10007
10063
|
),
|
|
10008
10064
|
children: icon
|
|
@@ -10010,23 +10066,32 @@ var NotificationItem = forwardRef(
|
|
|
10010
10066
|
),
|
|
10011
10067
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
10012
10068
|
unread && /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Unread. " }),
|
|
10013
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-
|
|
10069
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
10014
10070
|
/* @__PURE__ */ jsx(
|
|
10015
10071
|
"p",
|
|
10016
10072
|
{
|
|
10017
10073
|
className: cn(
|
|
10018
|
-
"
|
|
10074
|
+
"min-w-0 truncate text-[13.5px] leading-snug font-semibold",
|
|
10019
10075
|
unread ? "text-fg" : "text-fg-2"
|
|
10020
10076
|
),
|
|
10021
10077
|
children: title
|
|
10022
10078
|
}
|
|
10023
10079
|
),
|
|
10024
|
-
|
|
10080
|
+
unread && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "bg-pro-fg size-1.5 shrink-0 rounded-full" })
|
|
10025
10081
|
] }),
|
|
10026
|
-
body
|
|
10027
|
-
|
|
10028
|
-
|
|
10029
|
-
|
|
10082
|
+
body && /* @__PURE__ */ jsx("p", { className: "text-fg-3 mt-0.5 truncate text-xs", children: body }),
|
|
10083
|
+
(typeLabel || client || time) && /* @__PURE__ */ jsxs("div", { className: "mt-1.5 flex items-center gap-2", children: [
|
|
10084
|
+
typeLabel && /* @__PURE__ */ jsx("span", { className: "text-fg-4 text-[11px]", children: typeLabel }),
|
|
10085
|
+
client && /* @__PURE__ */ jsx(
|
|
10086
|
+
Badge,
|
|
10087
|
+
{
|
|
10088
|
+
variant: "outline",
|
|
10089
|
+
className: "rounded-md px-1.5 py-0.5 text-[11px] font-medium",
|
|
10090
|
+
children: client
|
|
10091
|
+
}
|
|
10092
|
+
),
|
|
10093
|
+
time && /* @__PURE__ */ jsx("span", { className: "text-fg-4 text-xs whitespace-nowrap tabular-nums", children: time })
|
|
10094
|
+
] })
|
|
10030
10095
|
] })
|
|
10031
10096
|
]
|
|
10032
10097
|
}
|
|
@@ -10034,6 +10099,26 @@ var NotificationItem = forwardRef(
|
|
|
10034
10099
|
}
|
|
10035
10100
|
);
|
|
10036
10101
|
NotificationItem.displayName = "NotificationItem";
|
|
10102
|
+
var NotificationPanelFooter = forwardRef(
|
|
10103
|
+
function NotificationPanelFooter2({ className, children = "View all notifications", ...props }, ref) {
|
|
10104
|
+
return /* @__PURE__ */ jsx(
|
|
10105
|
+
"button",
|
|
10106
|
+
{
|
|
10107
|
+
ref,
|
|
10108
|
+
type: "button",
|
|
10109
|
+
className: cn(
|
|
10110
|
+
"border-rule text-fg hover:bg-bg-2 w-full border-t px-4 py-3 text-center text-sm font-medium",
|
|
10111
|
+
"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
10112
|
+
"focus-visible:ring-accent outline-none focus-visible:ring-2",
|
|
10113
|
+
className
|
|
10114
|
+
),
|
|
10115
|
+
...props,
|
|
10116
|
+
children
|
|
10117
|
+
}
|
|
10118
|
+
);
|
|
10119
|
+
}
|
|
10120
|
+
);
|
|
10121
|
+
NotificationPanelFooter.displayName = "NotificationPanelFooter";
|
|
10037
10122
|
var padded = (n) => String(n).padStart(2, "0");
|
|
10038
10123
|
function formatClock(ms) {
|
|
10039
10124
|
const total = Math.max(0, Math.floor(ms / 1e3));
|
|
@@ -10127,30 +10212,43 @@ function useStopwatch() {
|
|
|
10127
10212
|
}, [setPhase]);
|
|
10128
10213
|
return { phase, elapsedMs, isRunning: phase === "running", start, pause, resume, stop, reset };
|
|
10129
10214
|
}
|
|
10130
|
-
var TimeLogger = forwardRef(function TimeLogger2({ className, children, ...props }, ref) {
|
|
10215
|
+
var TimeLogger = forwardRef(function TimeLogger2({ className, orientation = "vertical", children, ...props }, ref) {
|
|
10131
10216
|
return /* @__PURE__ */ jsx(
|
|
10132
10217
|
"div",
|
|
10133
10218
|
{
|
|
10134
10219
|
ref,
|
|
10135
|
-
|
|
10220
|
+
"data-orientation": orientation,
|
|
10221
|
+
className: cn(
|
|
10222
|
+
"group/timelogger bg-surface text-fg-2 flex w-full",
|
|
10223
|
+
orientation === "horizontal" ? "flex-row items-stretch" : "flex-col",
|
|
10224
|
+
className
|
|
10225
|
+
),
|
|
10136
10226
|
...props,
|
|
10137
10227
|
children
|
|
10138
10228
|
}
|
|
10139
10229
|
);
|
|
10140
10230
|
});
|
|
10141
10231
|
TimeLogger.displayName = "TimeLogger";
|
|
10232
|
+
var horizontalSegment = "group-data-[orientation=horizontal]/timelogger:border-t-0 group-data-[orientation=horizontal]/timelogger:border-l group-data-[orientation=horizontal]/timelogger:first:border-l-0";
|
|
10142
10233
|
var TimeLoggerHeader = forwardRef(
|
|
10143
10234
|
function TimeLoggerHeader2({ title = "Track Time", icon, loggedMinutes = 0, goalMinutes, className, ...props }, ref) {
|
|
10144
10235
|
const hasGoal = goalMinutes != null;
|
|
10145
10236
|
const pct = hasGoal && goalMinutes > 0 ? Math.min(100, loggedMinutes / goalMinutes * 100) : 0;
|
|
10146
10237
|
return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex flex-col", className), ...props, children: [
|
|
10147
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-4 py-3", children: [
|
|
10148
|
-
/* @__PURE__ */ jsxs("div", { className: "text-fg flex items-center gap-2 text-
|
|
10149
|
-
/* @__PURE__ */ jsx(
|
|
10238
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-4 py-3.5", children: [
|
|
10239
|
+
/* @__PURE__ */ jsxs("div", { className: "text-fg flex items-center gap-2.5 text-[17px] font-semibold", children: [
|
|
10240
|
+
/* @__PURE__ */ jsx(
|
|
10241
|
+
"span",
|
|
10242
|
+
{
|
|
10243
|
+
className: "bg-pro-bg text-pro-fg flex size-7 shrink-0 items-center justify-center rounded-lg [&_svg]:size-[17px]",
|
|
10244
|
+
"aria-hidden": "true",
|
|
10245
|
+
children: icon ?? /* @__PURE__ */ jsx(ClockIcon, {})
|
|
10246
|
+
}
|
|
10247
|
+
),
|
|
10150
10248
|
title
|
|
10151
10249
|
] }),
|
|
10152
10250
|
hasGoal && /* @__PURE__ */ jsxs("div", { className: "text-fg-3 font-mono text-[13px] tabular-nums", children: [
|
|
10153
|
-
/* @__PURE__ */ jsx("b", { className: "text-fg font-
|
|
10251
|
+
/* @__PURE__ */ jsx("b", { className: "text-fg font-semibold", children: formatDuration(loggedMinutes * 60) }),
|
|
10154
10252
|
" /",
|
|
10155
10253
|
" ",
|
|
10156
10254
|
formatDuration(goalMinutes * 60)
|
|
@@ -10159,7 +10257,7 @@ var TimeLoggerHeader = forwardRef(
|
|
|
10159
10257
|
hasGoal && /* @__PURE__ */ jsx(
|
|
10160
10258
|
"div",
|
|
10161
10259
|
{
|
|
10162
|
-
className: "bg-bg-3 relative h-
|
|
10260
|
+
className: "bg-bg-3 relative h-1 w-full",
|
|
10163
10261
|
role: "progressbar",
|
|
10164
10262
|
"aria-label": "Daily goal progress",
|
|
10165
10263
|
"aria-valuemin": 0,
|
|
@@ -10168,7 +10266,7 @@ var TimeLoggerHeader = forwardRef(
|
|
|
10168
10266
|
children: /* @__PURE__ */ jsx(
|
|
10169
10267
|
"div",
|
|
10170
10268
|
{
|
|
10171
|
-
className: "
|
|
10269
|
+
className: "h-full rounded-r-full bg-[image:var(--gradient-pro)] transition-[width] duration-[var(--duration-normal)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
10172
10270
|
style: { width: `${pct}%` }
|
|
10173
10271
|
}
|
|
10174
10272
|
)
|
|
@@ -10188,7 +10286,11 @@ var TimeLoggerContextRow = forwardRef(
|
|
|
10188
10286
|
"div",
|
|
10189
10287
|
{
|
|
10190
10288
|
ref,
|
|
10191
|
-
className: cn(
|
|
10289
|
+
className: cn(
|
|
10290
|
+
"border-rule-soft flex items-center gap-2.5 border-t px-4 py-3",
|
|
10291
|
+
horizontalSegment,
|
|
10292
|
+
className
|
|
10293
|
+
),
|
|
10192
10294
|
...props,
|
|
10193
10295
|
children: [
|
|
10194
10296
|
onClientSelect ? /* @__PURE__ */ jsxs(
|
|
@@ -10233,7 +10335,15 @@ var TimeLoggerTimer = forwardRef(
|
|
|
10233
10335
|
"div",
|
|
10234
10336
|
{
|
|
10235
10337
|
ref,
|
|
10236
|
-
className: cn(
|
|
10338
|
+
className: cn(
|
|
10339
|
+
"border-rule-soft flex items-center gap-2.5 border-t px-4 py-4",
|
|
10340
|
+
// In a horizontal bar this segment is usually the `flex-1` grower;
|
|
10341
|
+
// min-w-0 lets the clock shrink instead of pushing the trailing
|
|
10342
|
+
// segment off the edge.
|
|
10343
|
+
"group-data-[orientation=horizontal]/timelogger:min-w-0",
|
|
10344
|
+
horizontalSegment,
|
|
10345
|
+
className
|
|
10346
|
+
),
|
|
10237
10347
|
...props,
|
|
10238
10348
|
children: [
|
|
10239
10349
|
/* @__PURE__ */ jsx(
|
|
@@ -10241,7 +10351,7 @@ var TimeLoggerTimer = forwardRef(
|
|
|
10241
10351
|
{
|
|
10242
10352
|
className: cn(
|
|
10243
10353
|
"text-fg placeholder:text-fg-4 min-w-0 flex-1 border-0 bg-transparent outline-none",
|
|
10244
|
-
showClock ? "font-mono text-[
|
|
10354
|
+
showClock ? "font-mono text-[28px] font-semibold tracking-tight tabular-nums" : "text-[15px]"
|
|
10245
10355
|
),
|
|
10246
10356
|
value: showClock ? formatClock(elapsedMs) : value ?? "",
|
|
10247
10357
|
onChange: (event) => onValueChange?.(event.target.value),
|
|
@@ -10254,9 +10364,9 @@ var TimeLoggerTimer = forwardRef(
|
|
|
10254
10364
|
Button,
|
|
10255
10365
|
{
|
|
10256
10366
|
type: "button",
|
|
10257
|
-
variant: "
|
|
10367
|
+
variant: "ghost",
|
|
10258
10368
|
size: "icon",
|
|
10259
|
-
className: "rounded-full",
|
|
10369
|
+
className: "text-fg-3 hover:bg-bg-3 hover:text-fg size-10 rounded-full",
|
|
10260
10370
|
"aria-label": phase === "paused" ? "Resume timer" : "Pause timer",
|
|
10261
10371
|
disabled: phase === "idle" || phase === "stopped",
|
|
10262
10372
|
onClick: phase === "paused" ? onResume : onPause,
|
|
@@ -10269,7 +10379,7 @@ var TimeLoggerTimer = forwardRef(
|
|
|
10269
10379
|
type: "button",
|
|
10270
10380
|
variant: "destructive",
|
|
10271
10381
|
size: "icon",
|
|
10272
|
-
className: "rounded-full",
|
|
10382
|
+
className: "shadow-card hover:shadow-pop size-12 rounded-full transition-[transform,box-shadow] active:scale-95 motion-reduce:transition-none",
|
|
10273
10383
|
"aria-label": "Stop timer",
|
|
10274
10384
|
onClick: onStop,
|
|
10275
10385
|
children: /* @__PURE__ */ jsx(StopIcon, {})
|
|
@@ -10280,7 +10390,7 @@ var TimeLoggerTimer = forwardRef(
|
|
|
10280
10390
|
type: "button",
|
|
10281
10391
|
variant: "primary",
|
|
10282
10392
|
size: "icon",
|
|
10283
|
-
className: "rounded-full",
|
|
10393
|
+
className: "shadow-card hover:shadow-pop size-12 rounded-full bg-[image:var(--gradient-brand)] transition-[transform,box-shadow] active:scale-95 motion-reduce:transition-none",
|
|
10284
10394
|
"aria-label": "Start timer",
|
|
10285
10395
|
onClick: onStart,
|
|
10286
10396
|
children: /* @__PURE__ */ jsx(PlayIcon, {})
|
|
@@ -10311,7 +10421,9 @@ var TimeLoggerField = forwardRef(
|
|
|
10311
10421
|
trailing !== void 0 ? trailing : interactive ? /* @__PURE__ */ jsx(ChevronRightIcon, { className: "text-fg-4 size-4 shrink-0" }) : null
|
|
10312
10422
|
] });
|
|
10313
10423
|
const classes = cn(
|
|
10314
|
-
"border-rule-soft flex w-full items-center gap-3 border-t px-4 py-
|
|
10424
|
+
"border-rule-soft flex w-full items-center gap-3 border-t px-4 py-3 text-left",
|
|
10425
|
+
"group-data-[orientation=horizontal]/timelogger:w-auto",
|
|
10426
|
+
horizontalSegment,
|
|
10315
10427
|
interactive && "hover:bg-surface-2 focus-visible:bg-surface-2 cursor-pointer transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] outline-none motion-reduce:transition-none",
|
|
10316
10428
|
className
|
|
10317
10429
|
);
|
|
@@ -10334,7 +10446,7 @@ var TimeLoggerField = forwardRef(
|
|
|
10334
10446
|
TimeLoggerField.displayName = "TimeLoggerField";
|
|
10335
10447
|
var TimeLoggerNotes = forwardRef(
|
|
10336
10448
|
function TimeLoggerNotes2({ value, onValueChange, icon, placeholder = "Add notes", className, ...props }, ref) {
|
|
10337
|
-
return /* @__PURE__ */ jsxs("div", { className: "border-rule-soft flex items-center gap-3 border-t px-4 py-
|
|
10449
|
+
return /* @__PURE__ */ jsxs("div", { className: "border-rule-soft flex items-center gap-3 border-t px-4 py-3", children: [
|
|
10338
10450
|
/* @__PURE__ */ jsx(
|
|
10339
10451
|
"span",
|
|
10340
10452
|
{
|
|
@@ -10452,7 +10564,8 @@ var TimeLoggerActions = forwardRef(
|
|
|
10452
10564
|
{
|
|
10453
10565
|
ref,
|
|
10454
10566
|
className: cn(
|
|
10455
|
-
"border-rule bg-surface-2 flex items-center gap-2 border-t px-4 py-
|
|
10567
|
+
"border-rule bg-surface-2 flex items-center gap-2 border-t px-4 py-3",
|
|
10568
|
+
horizontalSegment,
|
|
10456
10569
|
className
|
|
10457
10570
|
),
|
|
10458
10571
|
...props,
|
|
@@ -10480,7 +10593,10 @@ var TimeLoggerEntry = forwardRef(
|
|
|
10480
10593
|
"div",
|
|
10481
10594
|
{
|
|
10482
10595
|
ref,
|
|
10483
|
-
className: cn(
|
|
10596
|
+
className: cn(
|
|
10597
|
+
"border-rule-soft hover:bg-surface-2 flex items-center gap-3 border-t px-4 py-2.5 transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quart)] motion-reduce:transition-none",
|
|
10598
|
+
className
|
|
10599
|
+
),
|
|
10484
10600
|
...props,
|
|
10485
10601
|
children: [
|
|
10486
10602
|
/* @__PURE__ */ jsx(
|
|
@@ -10531,7 +10647,7 @@ var TimeLoggerFooter = forwardRef(
|
|
|
10531
10647
|
"div",
|
|
10532
10648
|
{
|
|
10533
10649
|
ref,
|
|
10534
|
-
className: cn("border-rule flex gap-2 border-t px-4 py-
|
|
10650
|
+
className: cn("border-rule flex gap-2 border-t px-4 py-3 [&>*]:flex-1", className),
|
|
10535
10651
|
...props,
|
|
10536
10652
|
children
|
|
10537
10653
|
}
|
|
@@ -10819,6 +10935,6 @@ var KbdHint = forwardRef(function KbdHint2({ className, children, ...props }, re
|
|
|
10819
10935
|
});
|
|
10820
10936
|
KbdHint.displayName = "KbdHint";
|
|
10821
10937
|
|
|
10822
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityEventItem, ActivityItem, ActivityList, Alert, AlertCircleIcon, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AlertTriangleIcon, AlertTriangleSolidIcon, AppHeader, AppHeaderActions, AppHeaderBreadcrumb, AppHeaderSearch, AppHeaderTitle, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowRightSmallIcon, ArrowUpIcon, AspectRatio, AssureAuditBrandIcon, AssureBooksBrandIcon, AssureProBrandIcon, AssureTaxBrandIcon, AtSignIcon, Avatar, Badge, BarChartIcon, BellIcon, Blockquote, BoldIcon, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BriefcaseIcon, Building2Icon, BuildingIcon, BulkActionBar, BulkActionBarAction, BulkActionBarSeparator, Button, Calendar, CalendarIcon, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChatBubbleIcon, CheckCircle2Icon, CheckCircleSolidIcon, CheckIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CircleDotIcon, CircleIcon, ClientSelect, ClipboardCheckIcon, ClockIcon, CloseIcon, Collapsible, CollapsibleContent, CollapsibleTrigger, ComingSoon, CommandIcon, CommandPalette, ConfirmActionButton, Content15 as Content, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, CopyIcon, CornerDownLeftIcon, CreditCardIcon, DATE_DISPLAY_PLACEHOLDER, DangerAction, DataItem, DataTable, DataTableBody, DataTableCell, DataTableCellDue, DataTableCellId, DataTableCellMono, DataTableCellName, DataTableCheckbox, DataTableHead, DataTableHeader, DataTablePagination, DataTableResultsCount, DataTableRow, DataTableSearch, DataTableSpacer, DataTableToolbar, DatePicker, DateRangePicker, DetailGrid, DetailMain, DetailSpine, DetailSpineHeader, DetailSpineSection, DetailSpineStats, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DismissibleChip, DocumentIcon, DollarSignIcon, DownloadIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EyeIcon, EyeOffIcon, Eyebrow, FileIcon, FileReturnIcon, FileTextIcon, FileUpload, FilterChip, FilterIcon, FlagIcon, FolderClosedIcon, FolderOpenIcon, FolderPlusIcon, FormError, FormSection, FormSuccess, GlobeIcon, GoogleBrandIcon, HelpCircleIcon, HistoryIcon, HomeIcon, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, IconAction, InboxIcon, InfoCircleSolidIcon, InfoIcon, Input, ItalicIcon, Kanban, KanbanCard, KanbanColumn, KanbanIcon, KbdHint, KeyIcon, KeyboardShortcutsDialog, KpiCard, Label4 as Label, LayoutDashboardIcon, LayoutGridIcon, LayoutListIcon, LightningIcon, Link2Icon, LinkAction, LinkButton, LinkIcon, ListChecksIcon, ListIcon, ListOrderedIcon, LoaderIcon, LoadingRows, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, Logo, MailIcon, Main, MapPinIcon, MenuIcon, MessageBubble, MessageBubbleAction, MessageBubbleTombstone, MessageCircleIcon, MessageCircleWarningIcon, MessageComposer, MetadataGrid, MicrosoftBrandIcon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, MoveIcon, MultiFilterPill, MultiSelectField, MutedSpec, NotificationFilter, NotificationItem, NotificationList, NotificationPanel, NotificationPanelHeader, Numeric, OTPInput, PageHeader, PageHeaderSep, PageHeaderSpec, Pagination, PaletteIcon, PanelLeftCloseIcon, PanelLeftIcon, PaperclipIcon, PauseIcon, PenSignIcon, PencilIcon, PhoneIcon, PhoneInput, PlayIcon, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, PrimaryAction, PriorityIcon, ProgressBar, ProgressRing, RadioGroup3 as RadioGroup, RadioGroupItem, ReceiptIcon, ReplyIcon, RotateCcwIcon, SaveIcon, ScrollArea, ScrollBar, SearchIcon, SearchInput, SearchSelect, SecondaryAction, Section, SectionHead, SectionHeader, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectRoot, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectableKpiCard, SendIcon, Separator4 as Separator, SettingsIcon, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Shell, ShieldIcon, SideDrawer, Sidebar, SidebarBrand, SidebarBrandSwitcher, SidebarBrandSwitcherTile, SidebarBrandText, SidebarFooter, SidebarLink, SidebarLinkAction, SidebarLinkBadge, SidebarLinkGroup, SidebarLinkLabel, SidebarPinButton, SidebarProvider, SidebarSection, SidebarTrigger, SidebarUser, Skeleton, SkeletonCircle, SkeletonText, SlashIcon, Slider, SmartphoneIcon, SparkleIcon, SparklesIcon, Spinner, StarIcon, StarRating, Stat, StatusIcon, Stepper, StopIcon, StrikethroughIcon, SubmitButton, SunIcon, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableIcon, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagIcon, TeamIcon, TeamMemberSelect, Textarea, TimeLogger, TimeLoggerActions, TimeLoggerBillable, TimeLoggerContextRow, TimeLoggerEntry, TimeLoggerEntryList, TimeLoggerField, TimeLoggerFooter, TimeLoggerHeader, TimeLoggerNotes, TimeLoggerTimer, ToastProvider, ToggleGroup, ToggleGroupItem, Toolbar, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, Trash2Icon, TrashIcon, TrendingDownIcon, TrendingUpIcon, UnderlineIcon, UploadIcon, UserCircleIcon, UserIcon, UsersIcon, VisuallyHidden, WorkflowIcon, XCircleSolidIcon, XIcon, YEAR_DISPLAY_PLACEHOLDER, ZoomInIcon, ZoomOutIcon, alertVariants, applyMask, applyYearMask, badgeVariants, buttonVariants, cardVariants, cn, colors, dateToIso, displayToIso, filterChipVariants, formatClock, formatCurrency, formatDuration, inputVariants, isoToDate, isoToDisplay, isoToYear, labelVariants, parseDuration, progressBarVariants, progressRingVariants, radii, reference, searchInputVariants, shadows, sidebarLinkBadgeVariants, spacing, spinnerVariants, starRatingVariants, surfaces, systemTokens, textareaVariants, typography, useSidebarPeekLock, useSidebarState, useStopwatch, useToast, yearToIso };
|
|
10938
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityEventItem, ActivityItem, ActivityList, Alert, AlertCircleIcon, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AlertTriangleIcon, AlertTriangleSolidIcon, AppHeader, AppHeaderActions, AppHeaderBreadcrumb, AppHeaderSearch, AppHeaderTitle, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowRightSmallIcon, ArrowUpIcon, AspectRatio, AssureAuditBrandIcon, AssureBooksBrandIcon, AssureProBrandIcon, AssureTaxBrandIcon, AtSignIcon, Avatar, Badge, BarChartIcon, BellIcon, Blockquote, BoldIcon, Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BriefcaseIcon, Building2Icon, BuildingIcon, BulkActionBar, BulkActionBarAction, BulkActionBarSeparator, Button, Calendar, CalendarIcon, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChatBubbleIcon, CheckCircle2Icon, CheckCircleSolidIcon, CheckIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CircleDotIcon, CircleIcon, ClientSelect, ClipboardCheckIcon, ClockIcon, CloseIcon, Collapsible, CollapsibleContent, CollapsibleTrigger, ComingSoon, CommandIcon, CommandPalette, ConfirmActionButton, Content15 as Content, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, CopyIcon, CornerDownLeftIcon, CreditCardIcon, DATE_DISPLAY_PLACEHOLDER, DangerAction, DataItem, DataTable, DataTableBody, DataTableCell, DataTableCellDue, DataTableCellId, DataTableCellMono, DataTableCellName, DataTableCheckbox, DataTableHead, DataTableHeader, DataTablePagination, DataTableResultsCount, DataTableRow, DataTableSearch, DataTableSpacer, DataTableToolbar, DatePicker, DateRangePicker, DetailGrid, DetailMain, DetailSpine, DetailSpineHeader, DetailSpineSection, DetailSpineStats, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DismissibleChip, DocumentIcon, DollarSignIcon, DownloadIcon, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EyeIcon, EyeOffIcon, Eyebrow, FileIcon, FileReturnIcon, FileTextIcon, FileUpload, FilterChip, FilterIcon, FlagIcon, FolderClosedIcon, FolderOpenIcon, FolderPlusIcon, FormError, FormSection, FormSuccess, GlobeIcon, GoogleBrandIcon, HelpCircleIcon, HistoryIcon, HomeIcon, HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger, IconAction, InboxIcon, InfoCircleSolidIcon, InfoIcon, Input, ItalicIcon, Kanban, KanbanCard, KanbanColumn, KanbanIcon, KbdHint, KeyIcon, KeyboardShortcutsDialog, KpiCard, Label4 as Label, LayoutDashboardIcon, LayoutGridIcon, LayoutListIcon, LightningIcon, Link2Icon, LinkAction, LinkButton, LinkIcon, ListChecksIcon, ListIcon, ListOrderedIcon, LoaderIcon, LoadingRows, LockIcon, LockKeyholeIcon, LockOpenIcon, LogOutIcon, Logo, MailIcon, Main, MapPinIcon, MenuIcon, MessageBubble, MessageBubbleAction, MessageBubbleTombstone, MessageCircleIcon, MessageCircleWarningIcon, MessageComposer, MetadataGrid, MicrosoftBrandIcon, MinusIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, MoveIcon, MultiFilterPill, MultiSelectField, MutedSpec, NotificationFilter, NotificationItem, NotificationList, NotificationPanel, NotificationPanelFooter, NotificationPanelHeader, Numeric, OTPInput, PageHeader, PageHeaderSep, PageHeaderSpec, Pagination, PaletteIcon, PanelLeftCloseIcon, PanelLeftIcon, PaperclipIcon, PauseIcon, PenSignIcon, PencilIcon, PhoneIcon, PhoneInput, PlayIcon, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, PrimaryAction, PriorityIcon, ProgressBar, ProgressRing, RadioGroup3 as RadioGroup, RadioGroupItem, ReceiptIcon, ReplyIcon, RotateCcwIcon, SaveIcon, ScrollArea, ScrollBar, SearchIcon, SearchInput, SearchSelect, SecondaryAction, Section, SectionHead, SectionHeader, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectRoot, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectableKpiCard, SendIcon, Separator4 as Separator, SettingsIcon, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Shell, ShieldIcon, SideDrawer, Sidebar, SidebarBrand, SidebarBrandSwitcher, SidebarBrandSwitcherTile, SidebarBrandText, SidebarFooter, SidebarLink, SidebarLinkAction, SidebarLinkBadge, SidebarLinkGroup, SidebarLinkLabel, SidebarPinButton, SidebarProvider, SidebarSection, SidebarTrigger, SidebarUser, Skeleton, SkeletonCircle, SkeletonText, SlashIcon, Slider, SmartphoneIcon, SparkleIcon, SparklesIcon, Spinner, StarIcon, StarRating, Stat, StatusIcon, Stepper, StopIcon, StrikethroughIcon, SubmitButton, SunIcon, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableIcon, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagIcon, TeamIcon, TeamMemberSelect, Textarea, TimeLogger, TimeLoggerActions, TimeLoggerBillable, TimeLoggerContextRow, TimeLoggerEntry, TimeLoggerEntryList, TimeLoggerField, TimeLoggerFooter, TimeLoggerHeader, TimeLoggerNotes, TimeLoggerTimer, ToastProvider, ToggleGroup, ToggleGroupItem, Toolbar, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, Trash2Icon, TrashIcon, TrendingDownIcon, TrendingUpIcon, UnderlineIcon, UploadIcon, UserCircleIcon, UserIcon, UsersIcon, VisuallyHidden, WorkflowIcon, XCircleSolidIcon, XIcon, YEAR_DISPLAY_PLACEHOLDER, ZoomInIcon, ZoomOutIcon, alertVariants, applyMask, applyYearMask, badgeVariants, buttonVariants, cardVariants, cn, colors, dateToIso, displayToIso, filterChipVariants, formatClock, formatCurrency, formatDuration, inputVariants, isoToDate, isoToDisplay, isoToYear, labelVariants, parseDuration, progressBarVariants, progressRingVariants, radii, reference, searchInputVariants, shadows, sidebarLinkBadgeVariants, spacing, spinnerVariants, starRatingVariants, surfaces, systemTokens, textareaVariants, typography, useSidebarPeekLock, useSidebarState, useStopwatch, useToast, yearToIso };
|
|
10823
10939
|
//# sourceMappingURL=index.js.map
|
|
10824
10940
|
//# sourceMappingURL=index.js.map
|