@nxgt/material 3.10.2 → 3.11.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/CHANGELOG.md +70 -0
- package/README.md +4 -4
- package/dist/{async-slice-DDjaJY_F.js → async-slice-4qbER86I.js} +1 -1
- package/dist/button-BNjw-pnE.js +327 -0
- package/dist/button-group-context-CaP0X5p_.js +5 -0
- package/dist/{button-tones-BgZJ1tkD.js → button-tones-BwuVvAmd.js} +9 -1
- package/dist/{callout-view-DdJPdFrP.js → callout-view-C6voDS00.js} +1 -1
- package/dist/charts.js +5 -5
- package/dist/{chip-DpySRqCy.js → chip-DLgQTJBZ.js} +4 -4
- package/dist/{code-editor-BiA14xua.js → code-editor-BZbaYLvo.js} +8 -8
- package/dist/code-editor.js +7 -7
- package/dist/{code-language-items-C_dJ6GVs.js → code-language-items-BT5BO5w6.js} +2 -2
- package/dist/components/base.css +21 -6
- package/dist/components/components.css +5 -2
- package/dist/components/type-scale.css +194 -0
- package/dist/components/ui/actions/button/button.css +156 -0
- package/dist/components/ui/actions/button-group/button-group-standard.css +131 -0
- package/dist/components/ui/actions/button-group/button-group.css +4 -1
- package/dist/components/ui/actions/icon-button/icon-button.css +115 -0
- package/dist/components/ui/actions/morph-fill.css +62 -0
- package/dist/{components-BkF9N-Yx.js → components-1GK7YIhY.js} +14685 -14688
- package/dist/components.js +23 -23
- package/dist/{dialog-CkIYpJXk.js → dialog-BQp5IdFl.js} +147 -147
- package/dist/dnd.js +1 -1
- package/dist/{dropdown-menu-BC5Tbhb9.js → dropdown-menu-BsH9W_3C.js} +3 -3
- package/dist/editor-viewer.js +1 -1
- package/dist/editor.js +13 -13
- package/dist/{empty-state-SeAg2TOX.js → empty-state-WaU4-T2c.js} +5 -5
- package/dist/escape-owner-C4W_sOAU.js +116 -0
- package/dist/{field-blur-DPLsMufs.js → field-blur-CJHzVSh9.js} +1 -1
- package/dist/{field-blur-context-1ZwJgsHE.js → field-blur-context-Cft9s7Hg.js} +2 -2
- package/dist/{hover-card-Cox-tPDz.js → hover-card-C0fw2kLK.js} +72 -71
- package/dist/i18n.js +12 -12
- package/dist/{icon-badge-q3Ve8gra.js → icon-badge-DUAq9f7H.js} +4 -4
- package/dist/icon-button-ifTpXt0A.js +355 -0
- package/dist/{illustration-BfHRpVzM.js → illustration-BmQmvW_4.js} +1 -1
- package/dist/illustrations.js +2 -2
- package/dist/lib/components/ui/actions/button/button-tones.d.ts +16 -0
- package/dist/lib/components/ui/actions/button/button.d.ts +13 -0
- package/dist/lib/components/ui/actions/button/button.variants.d.ts +4 -3
- package/dist/lib/components/ui/actions/button-group/button-group-context.d.ts +16 -0
- package/dist/lib/components/ui/actions/button-group/button-group-reset.d.ts +13 -0
- package/dist/lib/components/ui/actions/button-group/button-group.d.ts +19 -2
- package/dist/lib/components/ui/actions/icon-button/icon-button-shape.d.ts +3 -2
- package/dist/lib/components/ui/actions/icon-button/icon-button.d.ts +18 -4
- package/dist/lib/components/ui/actions/icon-button/icon-button.variants.d.ts +34 -4
- package/dist/lib/components/ui/feedback/typing-indicator/typing-indicator.d.ts +1 -1
- package/dist/lib/components/ui/fields/slider/split-slider-props.d.ts +1 -1
- package/dist/lib/components/ui/fields/slider/use-slider-control.d.ts +1 -1
- package/dist/lib/components/ui/overlays/dialog/dialog-variants.d.ts +1 -1
- package/dist/lib/components/ui/primitives/toggle/toggle.d.ts +1 -1
- package/dist/lib/components/ui/primitives/typography/typography.d.ts +17 -7
- package/dist/lib/components/ui/primitives/typography/typography.variants.d.ts +55 -0
- package/dist/lib/components/ui/selection/choice-group/use-choice-group-field.d.ts +2 -2
- package/dist/lib/i18n/translator.d.ts +1 -1
- package/dist/lib.js +2 -2
- package/dist/{line-path-BQeLQZ-P.js → line-path-C5pZGC49.js} +1 -1
- package/dist/main.js +29 -29
- package/dist/map.js +9 -9
- package/dist/material.css +1 -1
- package/dist/pdf-reader.js +1 -1
- package/dist/print.js +1 -1
- package/dist/{public-CtpsxV4I.js → public-B0Nq_yYV.js} +524 -524
- package/dist/{render-json-DyFYFIkZ.js → render-json-BOhvPnSv.js} +1 -1
- package/dist/{rich-code-block-C2Fp_FDU.js → rich-code-block-v7WmeZp9.js} +5 -5
- package/dist/{rich-text-viewer-LO1IZCWs.js → rich-text-viewer-W15XIwah.js} +2 -2
- package/dist/{skeleton-Bmp4gWAH.js → skeleton-DSdtr2qc.js} +1 -1
- package/dist/{sortable-provider-pVaEZzty.js → sortable-provider-CgDTolQR.js} +3 -3
- package/dist/{spinner-CsHcmcpF.js → spinner-BtSIYVrC.js} +3 -3
- package/dist/{state-scenes-SGNyZjTz.js → state-scenes-BX03WmSu.js} +1 -1
- package/dist/styles.css +2 -0
- package/dist/theme-picker.js +3 -3
- package/dist/{theme-toggle-oU-fh6WE.js → theme-toggle-B2Pehdhn.js} +2 -2
- package/dist/{toggle-group-j8zaxEg1.js → toggle-group-BMJNcFAC.js} +1 -1
- package/dist/{toolbar-items-CqHvlTU8.js → toolbar-items-rUHdVqAq.js} +399 -398
- package/dist/{tooltip-rhbqNmr3.js → tooltip-CkttDIab.js} +1 -1
- package/dist/{translate-material-CGZljjp1.js → translate-material-Bd_KgfB8.js} +1 -1
- package/dist/{translator-DCYO4Ij3.js → translator-Dje8HrNz.js} +5 -5
- package/dist/{use-chat-composer-nWWfVyrK.js → use-chat-composer-Bt2ULsv6.js} +4172 -4172
- package/dist/{use-material-translation-DkxcLbLM.js → use-material-translation-B3V_bz-5.js} +1 -1
- package/dist/{utils-Bcd2Z3ea.js → utils-BLfntITJ.js} +14 -1
- package/docs/components/buttons-and-actions.md +64 -15
- package/docs/components/navigation-and-layout.md +1 -1
- package/docs/components/primitives.md +52 -10
- package/docs/guides/theming.md +51 -0
- package/docs/previews/buttons-actions-button.webp +0 -0
- package/docs/previews/buttons-actions-iconbutton.webp +0 -0
- package/docs/previews/primitives-typography.webp +0 -0
- package/docs/roadmap.md +35 -4
- package/docs/troubleshooting.md +58 -2
- package/lib/components/base.css +21 -6
- package/lib/components/components.css +5 -2
- package/lib/components/type-scale.css +194 -0
- package/lib/components/ui/actions/button/button.css +156 -0
- package/lib/components/ui/actions/button-group/button-group-standard.css +131 -0
- package/lib/components/ui/actions/button-group/button-group.css +4 -1
- package/lib/components/ui/actions/icon-button/icon-button.css +115 -0
- package/lib/components/ui/actions/morph-fill.css +62 -0
- package/lib/styles.css +2 -0
- package/package.json +1 -1
- package/dist/button-DbfdITBB.js +0 -322
- package/dist/components/ui/actions/icon-button/icon-button-morph-media.css +0 -65
- package/dist/components/ui/actions/icon-button/icon-button-morph.css +0 -152
- package/dist/escape-owner-CripBce_.js +0 -57
- package/dist/icon-button-DJcWpIhu.js +0 -319
- package/lib/components/ui/actions/icon-button/icon-button-morph-media.css +0 -65
- package/lib/components/ui/actions/icon-button/icon-button-morph.css +0 -152
|
@@ -1,319 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./utils-Bcd2Z3ea.js";
|
|
2
|
-
import { n as t } from "./use-shape-morph-BKA_R5P5.js";
|
|
3
|
-
import { n, t as r } from "./dist-DVRQkaTK.js";
|
|
4
|
-
import { o as i, t as a } from "./tooltip-rhbqNmr3.js";
|
|
5
|
-
import { i as o, n as s, r as c, t as l } from "./button-tones-BgZJ1tkD.js";
|
|
6
|
-
import { shapeOutline as u, toSvgPath as d } from "@nxgt/material-core/shapes";
|
|
7
|
-
import { useRef as f } from "react";
|
|
8
|
-
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
9
|
-
//#endregion
|
|
10
|
-
//#region lib/components/ui/actions/icon-button/icon-button.variants.ts
|
|
11
|
-
var h = i("inline-flex size-9 center gap-2 cursor-pointer whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:bg-transparent [&_svg]:text-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error has-[[data-slot=icon]]:p-1.5 aspect-square rounded-full", {
|
|
12
|
-
variants: {
|
|
13
|
-
variant: {
|
|
14
|
-
filled: "shadow-xs bg-primary text-primary-foreground [&_svg]:data-[slot=icon]:text-primary-foreground [&_svg]:stroke-primary-foreground hover:bg-[color-mix(in_oklab,var(--color-primary)_90%,black)] active:bg-[color-mix(in_oklab,var(--color-primary)_80%,black)] focus:bg-[color-mix(in_oklab,var(--color-primary)_85%,black)]",
|
|
15
|
-
tonal: "shadow-xs bg-primary/15 [&_svg]:data-[slot=icon]:text-primary-text [&_svg]:stroke-primary-text text-primary-text hover:bg-primary/10 active:bg-primary/5 focus:bg-primary/10",
|
|
16
|
-
ghost: "",
|
|
17
|
-
outlined: "border shadow-xs text-primary-text [&_svg]:data-[slot=icon]:text-primary-text [&_svg]:stroke-primary-text border-primary/50 focus:bg-primary/10 hover:bg-primary/10",
|
|
18
|
-
link: "text-primary-text [&_svg]:data-[slot=icon]:text-primary-text [&_svg]:stroke-primary-text underline-offset-4 hover:underline hover:bg-primary/10 active:bg-primary/5 focus:bg-primary/10 focus:underline"
|
|
19
|
-
},
|
|
20
|
-
color: {
|
|
21
|
-
primary: null,
|
|
22
|
-
secondary: null,
|
|
23
|
-
info: null,
|
|
24
|
-
warning: null,
|
|
25
|
-
default: null,
|
|
26
|
-
error: null,
|
|
27
|
-
success: null
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
defaultVariants: {
|
|
31
|
-
variant: "filled",
|
|
32
|
-
color: "primary"
|
|
33
|
-
},
|
|
34
|
-
compoundVariants: [
|
|
35
|
-
{
|
|
36
|
-
variant: "filled",
|
|
37
|
-
color: "primary",
|
|
38
|
-
class: "bg-primary text-primary-foreground [&_svg]:data-[slot=icon]:text-primary-foreground [&_svg]:stroke-primary-foreground hover:bg-[color-mix(in_oklab,var(--color-primary)_90%,black)] active:bg-[color-mix(in_oklab,var(--color-primary)_80%,black)] focus:bg-[color-mix(in_oklab,var(--color-primary)_85%,black)]"
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
variant: "filled",
|
|
42
|
-
color: "secondary",
|
|
43
|
-
class: "bg-secondary text-secondary-foreground [&_svg]:data-[slot=icon]:text-secondary-foreground [&_svg]:stroke-secondary-foreground hover:bg-[color-mix(in_oklab,var(--color-secondary)_90%,black)] active:bg-[color-mix(in_oklab,var(--color-secondary)_80%,black)] focus:bg-[color-mix(in_oklab,var(--color-secondary)_85%,black)] dark:bg-[color-mix(in_oklab,var(--color-secondary)_70%,var(--color-background))] dark:hover:bg-[color-mix(in_oklab,var(--color-secondary)_60%,var(--color-background))] dark:active:bg-[color-mix(in_oklab,var(--color-secondary)_50%,var(--color-background))] dark:focus:bg-[color-mix(in_oklab,var(--color-secondary)_60%,var(--color-background))]"
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
variant: "filled",
|
|
47
|
-
color: "success",
|
|
48
|
-
class: "bg-success text-success-foreground [&_svg]:data-[slot=icon]:text-success-foreground [&_svg]:stroke-success-foreground hover:bg-[color-mix(in_oklab,var(--color-success)_90%,black)] active:bg-[color-mix(in_oklab,var(--color-success)_80%,black)] focus:bg-[color-mix(in_oklab,var(--color-success)_85%,black)] dark:bg-[color-mix(in_oklab,var(--color-success)_60%,var(--color-background))] dark:hover:bg-[color-mix(in_oklab,var(--color-success)_50%,var(--color-background))] dark:active:bg-[color-mix(in_oklab,var(--color-success)_40%,var(--color-background))] dark:focus:bg-[color-mix(in_oklab,var(--color-success)_50%,var(--color-background))]"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
variant: "filled",
|
|
52
|
-
color: "info",
|
|
53
|
-
class: "bg-info text-info-foreground [&_svg]:data-[slot=icon]:text-info-foreground [&_svg]:stroke-info-foreground hover:bg-[color-mix(in_oklab,var(--color-info)_90%,black)] active:bg-[color-mix(in_oklab,var(--color-info)_80%,black)] focus:bg-[color-mix(in_oklab,var(--color-info)_85%,black)] dark:bg-[color-mix(in_oklab,var(--color-info)_60%,var(--color-background))] dark:hover:bg-[color-mix(in_oklab,var(--color-info)_50%,var(--color-background))] dark:active:bg-[color-mix(in_oklab,var(--color-info)_40%,var(--color-background))] dark:focus:bg-[color-mix(in_oklab,var(--color-info)_50%,var(--color-background))]"
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
variant: "filled",
|
|
57
|
-
color: "warning",
|
|
58
|
-
class: "bg-warning text-warning-foreground [&_svg]:data-[slot=icon]:text-warning-foreground [&_svg]:stroke-warning-foreground hover:bg-[color-mix(in_oklab,var(--color-warning)_90%,black)] active:bg-[color-mix(in_oklab,var(--color-warning)_80%,black)] focus:bg-[color-mix(in_oklab,var(--color-warning)_85%,black)] dark:bg-[color-mix(in_oklab,var(--color-warning)_60%,var(--color-background))] dark:hover:bg-[color-mix(in_oklab,var(--color-warning)_50%,var(--color-background))] dark:active:bg-[color-mix(in_oklab,var(--color-warning)_40%,var(--color-background))] dark:focus:bg-[color-mix(in_oklab,var(--color-warning)_50%,var(--color-background))]"
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
variant: "filled",
|
|
62
|
-
color: "error",
|
|
63
|
-
class: "bg-error text-error-foreground [&_svg]:data-[slot=icon]:text-error-foreground [&_svg]:stroke-error-foreground hover:bg-[color-mix(in_oklab,var(--color-error)_90%,black)] active:bg-[color-mix(in_oklab,var(--color-error)_80%,black)] focus:bg-[color-mix(in_oklab,var(--color-error)_85%,black)]"
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
variant: "filled",
|
|
67
|
-
color: "default",
|
|
68
|
-
class: "bg-foreground text-background [&_svg]:data-[slot=icon]:text-background [&_svg]:stroke-background hover:bg-[color-mix(in_oklab,var(--color-foreground)_90%,var(--color-background))] active:bg-[color-mix(in_oklab,var(--color-foreground)_70%,var(--color-background))] focus:bg-[color-mix(in_oklab,var(--color-foreground)_80%,var(--color-background))]"
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
variant: "tonal",
|
|
72
|
-
color: "primary",
|
|
73
|
-
class: `${c.primary} ${l.primary} ${s.primary} bg-primary/15 hover:bg-primary/10 active:bg-primary/5 focus:bg-primary/10`
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
variant: "tonal",
|
|
77
|
-
color: "secondary",
|
|
78
|
-
class: `${c.secondary} ${l.secondary} ${s.secondary} bg-secondary/15 hover:bg-secondary/10 active:bg-secondary/5 focus:bg-secondary/10`
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
variant: "tonal",
|
|
82
|
-
color: "success",
|
|
83
|
-
class: `${c.success} ${l.success} ${s.success} bg-success/15 hover:bg-success/10 active:bg-success/5 focus:bg-success/10`
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
variant: "tonal",
|
|
87
|
-
color: "info",
|
|
88
|
-
class: `${c.info} ${l.info} ${s.info} bg-info/15 hover:bg-info/10 active:bg-info/5 focus:bg-info/10`
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
variant: "tonal",
|
|
92
|
-
color: "warning",
|
|
93
|
-
class: `${c.warning} ${l.warning} ${s.warning} bg-warning/15 hover:bg-warning/10 active:bg-warning/5 focus:bg-warning/10`
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
variant: "tonal",
|
|
97
|
-
color: "error",
|
|
98
|
-
class: `${c.error} ${l.error} ${s.error} bg-error/15 hover:bg-error/10 active:bg-error/5 focus:bg-error/10`
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
variant: "tonal",
|
|
102
|
-
color: "default",
|
|
103
|
-
class: `${c.default} ${l.default} ${s.default} bg-foreground/15 hover:bg-foreground/10 active:bg-muted focus:bg-muted`
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
variant: "ghost",
|
|
107
|
-
color: "primary",
|
|
108
|
-
class: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50"
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
variant: "ghost",
|
|
112
|
-
color: "default",
|
|
113
|
-
class: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50"
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
variant: "ghost",
|
|
117
|
-
color: "secondary",
|
|
118
|
-
class: `${c.secondary} ${l.secondary} ${s.secondary} hover:bg-secondary/10 active:bg-secondary/5 focus:bg-secondary/10`
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
variant: "ghost",
|
|
122
|
-
color: "success",
|
|
123
|
-
class: `${c.success} ${l.success} ${s.success} hover:bg-success/10 active:bg-success/5 focus:bg-success/10`
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
variant: "ghost",
|
|
127
|
-
color: "info",
|
|
128
|
-
class: `${c.info} ${l.info} ${s.info} hover:bg-info/10 active:bg-info/5 focus:bg-info/10`
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
variant: "ghost",
|
|
132
|
-
color: "warning",
|
|
133
|
-
class: `${c.warning} ${l.warning} ${s.warning} hover:bg-warning/10 active:bg-warning/5 focus:bg-warning/10`
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
variant: "ghost",
|
|
137
|
-
color: "error",
|
|
138
|
-
class: `${c.error} ${l.error} ${s.error} hover:bg-error/10 active:bg-error/5 focus:bg-error/10`
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
variant: "outlined",
|
|
142
|
-
color: "primary",
|
|
143
|
-
class: `${c.primary} ${l.primary} ${s.primary} border-primary/50 focus:bg-primary/10 hover:bg-primary/10`
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
variant: "outlined",
|
|
147
|
-
color: "secondary",
|
|
148
|
-
class: `${c.secondary} ${l.secondary} ${s.secondary} border-secondary/50 focus:bg-secondary/10 hover:bg-secondary/10`
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
variant: "outlined",
|
|
152
|
-
color: "success",
|
|
153
|
-
class: `${c.success} ${l.success} ${s.success} border-success/50 focus:bg-success/10 hover:bg-success/10`
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
variant: "outlined",
|
|
157
|
-
color: "info",
|
|
158
|
-
class: `${c.info} ${l.info} ${s.info} border-info/50 focus:bg-info/10 hover:bg-info/10`
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
variant: "outlined",
|
|
162
|
-
color: "warning",
|
|
163
|
-
class: `${c.warning} ${l.warning} ${s.warning} border-warning/50 focus:bg-warning/10 hover:bg-warning/10`
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
variant: "outlined",
|
|
167
|
-
color: "error",
|
|
168
|
-
class: `${c.error} ${l.error} ${s.error} border-error/50 focus:bg-error/10 hover:bg-error/10`
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
variant: "outlined",
|
|
172
|
-
color: "default",
|
|
173
|
-
class: `${c.default} ${l.default} ${s.default} border-foreground/50 focus:bg-foreground/10 hover:bg-foreground/10`
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
variant: "link",
|
|
177
|
-
color: "primary",
|
|
178
|
-
class: `${c.primary} ${l.primary} ${s.primary} underline-offset-4 hover:underline hover:bg-primary/10 active:bg-primary/5 focus:bg-primary/10`
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
variant: "link",
|
|
182
|
-
color: "secondary",
|
|
183
|
-
class: `${c.secondary} ${l.secondary} ${s.secondary} underline-offset-4 hover:underline hover:bg-secondary/10 active:bg-secondary/5 focus:bg-secondary/10`
|
|
184
|
-
},
|
|
185
|
-
{
|
|
186
|
-
variant: "link",
|
|
187
|
-
color: "success",
|
|
188
|
-
class: `${c.success} ${l.success} ${s.success} underline-offset-4 hover:underline hover:bg-success/10 active:bg-success/5 focus:bg-success/10`
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
variant: "link",
|
|
192
|
-
color: "info",
|
|
193
|
-
class: `${c.info} ${l.info} ${s.info} underline-offset-4 hover:underline hover:bg-info/10 active:bg-info/5 focus:bg-info/10`
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
variant: "link",
|
|
197
|
-
color: "warning",
|
|
198
|
-
class: `${c.warning} ${l.warning} ${s.warning} underline-offset-4 hover:underline hover:bg-warning/10 active:bg-warning/5 focus:bg-warning/10`
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
variant: "link",
|
|
202
|
-
color: "error",
|
|
203
|
-
class: `${c.error} ${l.error} ${s.error} underline-offset-4 hover:underline hover:bg-error/10 active:bg-error/5 focus:bg-error/10`
|
|
204
|
-
},
|
|
205
|
-
{
|
|
206
|
-
variant: "link",
|
|
207
|
-
color: "default",
|
|
208
|
-
class: `${c.default} ${l.default} ${s.default} underline-offset-4 hover:underline hover:bg-foreground/10 active:bg-muted focus:bg-foreground/10`
|
|
209
|
-
}
|
|
210
|
-
]
|
|
211
|
-
}), g = ((e) => h(e?.variant === "ghost" && e.color === null ? {
|
|
212
|
-
...e,
|
|
213
|
-
color: void 0
|
|
214
|
-
} : e)), _ = {
|
|
215
|
-
filled: {
|
|
216
|
-
primary: "fill-primary",
|
|
217
|
-
secondary: "fill-secondary dark:fill-[color-mix(in_oklab,var(--color-secondary)_70%,var(--color-background))]",
|
|
218
|
-
success: "fill-success dark:fill-[color-mix(in_oklab,var(--color-success)_60%,var(--color-background))]",
|
|
219
|
-
info: "fill-info dark:fill-[color-mix(in_oklab,var(--color-info)_60%,var(--color-background))]",
|
|
220
|
-
warning: "fill-warning dark:fill-[color-mix(in_oklab,var(--color-warning)_60%,var(--color-background))]",
|
|
221
|
-
error: "fill-error",
|
|
222
|
-
default: "fill-foreground"
|
|
223
|
-
},
|
|
224
|
-
tonal: {
|
|
225
|
-
primary: "fill-primary/15 group-hover/icon-button:fill-primary/10 group-active/icon-button:fill-primary/5",
|
|
226
|
-
secondary: "fill-secondary/15 group-hover/icon-button:fill-secondary/10 group-active/icon-button:fill-secondary/5",
|
|
227
|
-
success: "fill-success/15 group-hover/icon-button:fill-success/10 group-active/icon-button:fill-success/5",
|
|
228
|
-
info: "fill-info/15 group-hover/icon-button:fill-info/10 group-active/icon-button:fill-info/5",
|
|
229
|
-
warning: "fill-warning/15 group-hover/icon-button:fill-warning/10 group-active/icon-button:fill-warning/5",
|
|
230
|
-
error: "fill-error/15 group-hover/icon-button:fill-error/10 group-active/icon-button:fill-error/5",
|
|
231
|
-
default: "fill-foreground/15 group-hover/icon-button:fill-foreground/10 group-active/icon-button:fill-foreground/5"
|
|
232
|
-
},
|
|
233
|
-
outlined: {
|
|
234
|
-
primary: "fill-transparent stroke-primary/50 group-hover/icon-button:fill-primary/10 group-active/icon-button:fill-primary/5",
|
|
235
|
-
secondary: "fill-transparent stroke-secondary/50 group-hover/icon-button:fill-secondary/10 group-active/icon-button:fill-secondary/5",
|
|
236
|
-
success: "fill-transparent stroke-success/50 group-hover/icon-button:fill-success/10 group-active/icon-button:fill-success/5",
|
|
237
|
-
info: "fill-transparent stroke-info/50 group-hover/icon-button:fill-info/10 group-active/icon-button:fill-info/5",
|
|
238
|
-
warning: "fill-transparent stroke-warning/50 group-hover/icon-button:fill-warning/10 group-active/icon-button:fill-warning/5",
|
|
239
|
-
error: "fill-transparent stroke-error/50 group-hover/icon-button:fill-error/10 group-active/icon-button:fill-error/5",
|
|
240
|
-
default: "fill-transparent stroke-foreground/50 group-hover/icon-button:fill-foreground/10 group-active/icon-button:fill-foreground/5"
|
|
241
|
-
},
|
|
242
|
-
ghost: {
|
|
243
|
-
primary: "fill-transparent group-hover/icon-button:fill-accent dark:group-hover/icon-button:fill-accent/50",
|
|
244
|
-
secondary: "fill-transparent group-hover/icon-button:fill-secondary/10 group-active/icon-button:fill-secondary/5",
|
|
245
|
-
success: "fill-transparent group-hover/icon-button:fill-success/10 group-active/icon-button:fill-success/5",
|
|
246
|
-
info: "fill-transparent group-hover/icon-button:fill-info/10 group-active/icon-button:fill-info/5",
|
|
247
|
-
warning: "fill-transparent group-hover/icon-button:fill-warning/10 group-active/icon-button:fill-warning/5",
|
|
248
|
-
error: "fill-transparent group-hover/icon-button:fill-error/10 group-active/icon-button:fill-error/5",
|
|
249
|
-
default: "fill-transparent group-hover/icon-button:fill-accent dark:group-hover/icon-button:fill-accent/50"
|
|
250
|
-
},
|
|
251
|
-
link: {
|
|
252
|
-
primary: "fill-transparent group-hover/icon-button:fill-accent dark:group-hover/icon-button:fill-accent/50",
|
|
253
|
-
secondary: "fill-transparent group-hover/icon-button:fill-secondary/10 group-active/icon-button:fill-secondary/5",
|
|
254
|
-
success: "fill-transparent group-hover/icon-button:fill-success/10 group-active/icon-button:fill-success/5",
|
|
255
|
-
info: "fill-transparent group-hover/icon-button:fill-info/10 group-active/icon-button:fill-info/5",
|
|
256
|
-
warning: "fill-transparent group-hover/icon-button:fill-warning/10 group-active/icon-button:fill-warning/5",
|
|
257
|
-
error: "fill-transparent group-hover/icon-button:fill-error/10 group-active/icon-button:fill-error/5",
|
|
258
|
-
default: "fill-transparent group-hover/icon-button:fill-accent dark:group-hover/icon-button:fill-accent/50"
|
|
259
|
-
}
|
|
260
|
-
};
|
|
261
|
-
function v({ shape: n, variant: r, color: i }) {
|
|
262
|
-
let a = u(n), o = f(null);
|
|
263
|
-
return t(o, a, !0), /* @__PURE__ */ p("svg", {
|
|
264
|
-
"data-slot": "icon-button-shape",
|
|
265
|
-
viewBox: "0 0 100 100",
|
|
266
|
-
"aria-hidden": "true",
|
|
267
|
-
focusable: "false",
|
|
268
|
-
className: e("-z-10 pointer-events-none absolute inset-0 size-full overflow-visible transition-[filter]", r === "filled" && "group-hover/icon-button:brightness-90 group-active/icon-button:brightness-80"),
|
|
269
|
-
children: /* @__PURE__ */ p("path", {
|
|
270
|
-
ref: o,
|
|
271
|
-
d: d(a),
|
|
272
|
-
vectorEffect: "non-scaling-stroke",
|
|
273
|
-
paintOrder: "stroke",
|
|
274
|
-
className: e("stroke-transparent stroke-1 transition-[fill]", _[r][i], "group-focus-visible/icon-button:stroke-ring/50 group-focus-visible/icon-button:stroke-[6px]", "forced-colors:fill-none forced-colors:stroke-[ButtonText] forced-colors:group-focus-visible/icon-button:stroke-[Highlight]")
|
|
275
|
-
})
|
|
276
|
-
});
|
|
277
|
-
}
|
|
278
|
-
//#endregion
|
|
279
|
-
//#region lib/components/ui/actions/icon-button/icon-button.tsx
|
|
280
|
-
function y({ variant: t, color: i, className: a, asChild: s, type: c = "button", shape: l, morph: u = "pill", children: d, ...f }) {
|
|
281
|
-
let h = s ? r : "button";
|
|
282
|
-
return /* @__PURE__ */ p(o, {
|
|
283
|
-
value: !!(f["aria-label"] || f["aria-labelledby"]),
|
|
284
|
-
children: /* @__PURE__ */ m(h, {
|
|
285
|
-
"data-slot": "icon-button",
|
|
286
|
-
"data-icon-button": "",
|
|
287
|
-
"data-variant": t,
|
|
288
|
-
"data-color": i,
|
|
289
|
-
type: s ? void 0 : c,
|
|
290
|
-
"data-shape": l,
|
|
291
|
-
"data-morph": !l && u !== "none" && f["aria-pressed"] !== void 0 ? u : void 0,
|
|
292
|
-
className: e(g({
|
|
293
|
-
variant: t,
|
|
294
|
-
color: i
|
|
295
|
-
}), l && "group/icon-button relative isolate bg-transparent! border-0! shadow-none! ring-0! focus-visible:ring-0! aria-invalid:ring-0! forced-colors:[&_svg]:stroke-[ButtonText] forced-colors:[&_svg]:text-[ButtonText]", a),
|
|
296
|
-
...f,
|
|
297
|
-
children: [l ? /* @__PURE__ */ p(v, {
|
|
298
|
-
shape: l,
|
|
299
|
-
variant: t ?? "filled",
|
|
300
|
-
color: i ?? (t === "ghost" ? "default" : "primary")
|
|
301
|
-
}) : null, /* @__PURE__ */ p(n, { children: d })]
|
|
302
|
-
})
|
|
303
|
-
});
|
|
304
|
-
}
|
|
305
|
-
function b({ tooltip: e, "aria-label": t, ...n }) {
|
|
306
|
-
let r = t ?? (typeof e == "string" ? e : void 0);
|
|
307
|
-
return e ? /* @__PURE__ */ p(a, {
|
|
308
|
-
content: e,
|
|
309
|
-
children: /* @__PURE__ */ p(y, {
|
|
310
|
-
"aria-label": r,
|
|
311
|
-
...n
|
|
312
|
-
})
|
|
313
|
-
}) : /* @__PURE__ */ p(y, {
|
|
314
|
-
"aria-label": r,
|
|
315
|
-
...n
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
//#endregion
|
|
319
|
-
export { g as n, b as t };
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/* A morph `IconButton` toggle (icon-button-morph.css) by medium: the 14px
|
|
2
|
-
* widening from 600px wide, the colour change only under reduced motion,
|
|
3
|
-
* `SelectedItem` in forced colours. */
|
|
4
|
-
@layer utilities {
|
|
5
|
-
@media (min-width: 600px) {
|
|
6
|
-
[data-icon-button][data-morph]:not(
|
|
7
|
-
[data-shape],
|
|
8
|
-
.nxgt-toolbar-item,
|
|
9
|
-
[data-toolbar-item]
|
|
10
|
-
) {
|
|
11
|
-
--ib-morph: 14px;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
@media (prefers-reduced-motion: reduce) {
|
|
15
|
-
[data-icon-button][data-morph]:not(
|
|
16
|
-
[data-shape],
|
|
17
|
-
.nxgt-toolbar-item,
|
|
18
|
-
[data-toolbar-item]
|
|
19
|
-
),
|
|
20
|
-
[data-icon-button][data-morph]:not(
|
|
21
|
-
[data-shape],
|
|
22
|
-
.nxgt-toolbar-item,
|
|
23
|
-
[data-toolbar-item]
|
|
24
|
-
)::before {
|
|
25
|
-
transition:
|
|
26
|
-
background-color 180ms var(--nxgt-ease-effects),
|
|
27
|
-
color 180ms var(--nxgt-ease-effects);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
@media (forced-colors: active) {
|
|
31
|
-
[data-icon-button][data-morph][aria-pressed="true"]:not(
|
|
32
|
-
[data-shape],
|
|
33
|
-
.nxgt-toolbar-item,
|
|
34
|
-
[data-toolbar-item]
|
|
35
|
-
) {
|
|
36
|
-
color: SelectedItemText;
|
|
37
|
-
forced-color-adjust: none;
|
|
38
|
-
}
|
|
39
|
-
[data-icon-button][data-morph][aria-pressed="true"]:not(
|
|
40
|
-
[data-shape],
|
|
41
|
-
.nxgt-toolbar-item,
|
|
42
|
-
[data-toolbar-item]
|
|
43
|
-
)::before {
|
|
44
|
-
background: SelectedItem;
|
|
45
|
-
}
|
|
46
|
-
[data-icon-button][data-morph][aria-pressed="true"]:not(
|
|
47
|
-
[data-shape],
|
|
48
|
-
.nxgt-toolbar-item,
|
|
49
|
-
[data-toolbar-item]
|
|
50
|
-
)
|
|
51
|
-
svg {
|
|
52
|
-
color: SelectedItemText;
|
|
53
|
-
stroke: SelectedItemText;
|
|
54
|
-
}
|
|
55
|
-
[data-icon-button][data-morph][aria-pressed="true"]:not(
|
|
56
|
-
[data-shape],
|
|
57
|
-
.nxgt-toolbar-item,
|
|
58
|
-
[data-toolbar-item]
|
|
59
|
-
):focus-visible::before {
|
|
60
|
-
box-shadow: none;
|
|
61
|
-
outline: 2px solid Highlight;
|
|
62
|
-
outline-offset: 2px;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
/* A toggle `IconButton` (`aria-pressed`, no `shape`): pressed, it is filled
|
|
2
|
-
* with its colour. `data-morph="pill"` also widens it by `--ib-morph` (14px;
|
|
3
|
-
* 0 below 600px, where only the colour changes), `round` stays a circle. The
|
|
4
|
-
* pill is the button's `::before`, `--ib-morph` / 2 wider on each side, and the
|
|
5
|
-
* same amount of margin makes room for it, so any size class works. The
|
|
6
|
-
* motion and the tokens are Toolbar morph's (`--nxgt-spring-fast`).
|
|
7
|
-
* Toolbar items keep the Toolbar's own look. */
|
|
8
|
-
@layer utilities {
|
|
9
|
-
[data-icon-button][data-morph]:not(
|
|
10
|
-
[data-shape],
|
|
11
|
-
.nxgt-toolbar-item,
|
|
12
|
-
[data-toolbar-item]
|
|
13
|
-
) {
|
|
14
|
-
--ib-morph: 0px;
|
|
15
|
-
--ib-on: var(--color-primary);
|
|
16
|
-
--ib-on-fg: var(--color-primary-foreground);
|
|
17
|
-
isolation: isolate;
|
|
18
|
-
transition:
|
|
19
|
-
margin var(--nxgt-spring-fast-duration) var(--nxgt-spring-fast),
|
|
20
|
-
color 180ms var(--nxgt-ease-effects),
|
|
21
|
-
border-color 180ms var(--nxgt-ease-effects),
|
|
22
|
-
box-shadow 180ms var(--nxgt-ease-effects),
|
|
23
|
-
background-color 180ms var(--nxgt-ease-effects),
|
|
24
|
-
opacity 180ms var(--nxgt-ease-effects);
|
|
25
|
-
}
|
|
26
|
-
[data-icon-button][data-morph]:not(
|
|
27
|
-
[data-shape],
|
|
28
|
-
.nxgt-toolbar-item,
|
|
29
|
-
[data-toolbar-item]
|
|
30
|
-
)::before {
|
|
31
|
-
content: "";
|
|
32
|
-
position: absolute;
|
|
33
|
-
inset-block: calc(-1 * var(--ib-bw, 0px));
|
|
34
|
-
inset-inline: calc(
|
|
35
|
-
var(--ib-morph) /
|
|
36
|
-
-2 *
|
|
37
|
-
var(--ib-grow, 0) -
|
|
38
|
-
var(--ib-bw, 0px)
|
|
39
|
-
);
|
|
40
|
-
z-index: -1;
|
|
41
|
-
border-radius: 999px;
|
|
42
|
-
background: transparent;
|
|
43
|
-
transition:
|
|
44
|
-
inset var(--nxgt-spring-fast-duration) var(--nxgt-spring-fast),
|
|
45
|
-
border-radius var(--nxgt-spring-fast-duration) var(--nxgt-spring-fast),
|
|
46
|
-
background-color 180ms var(--nxgt-ease-effects);
|
|
47
|
-
}
|
|
48
|
-
/* `position` has no specificity, so a utility (PasswordField's `absolute`) wins. */
|
|
49
|
-
:where(
|
|
50
|
-
[data-icon-button][data-morph]:not(
|
|
51
|
-
[data-shape],
|
|
52
|
-
.nxgt-toolbar-item,
|
|
53
|
-
[data-toolbar-item]
|
|
54
|
-
)
|
|
55
|
-
) {
|
|
56
|
-
position: relative;
|
|
57
|
-
}
|
|
58
|
-
/* The outlined variant's 1px border sits outside the padding box the pill is placed in. */
|
|
59
|
-
[data-icon-button][data-morph][data-variant="outlined"] {
|
|
60
|
-
--ib-bw: 1px;
|
|
61
|
-
}
|
|
62
|
-
[data-icon-button][data-morph][data-color="secondary"] {
|
|
63
|
-
--ib-on: var(--color-secondary);
|
|
64
|
-
--ib-on-fg: var(--color-secondary-foreground);
|
|
65
|
-
}
|
|
66
|
-
[data-icon-button][data-morph][data-color="success"] {
|
|
67
|
-
--ib-on: var(--color-success);
|
|
68
|
-
--ib-on-fg: var(--color-success-foreground);
|
|
69
|
-
}
|
|
70
|
-
[data-icon-button][data-morph][data-color="info"] {
|
|
71
|
-
--ib-on: var(--color-info);
|
|
72
|
-
--ib-on-fg: var(--color-info-foreground);
|
|
73
|
-
}
|
|
74
|
-
[data-icon-button][data-morph][data-color="warning"] {
|
|
75
|
-
--ib-on: var(--color-warning);
|
|
76
|
-
--ib-on-fg: var(--color-warning-foreground);
|
|
77
|
-
}
|
|
78
|
-
[data-icon-button][data-morph][data-color="error"] {
|
|
79
|
-
--ib-on: var(--color-error);
|
|
80
|
-
--ib-on-fg: var(--color-error-foreground);
|
|
81
|
-
}
|
|
82
|
-
[data-icon-button][data-morph][data-color="default"] {
|
|
83
|
-
--ib-on: var(--color-foreground);
|
|
84
|
-
--ib-on-fg: var(--color-background);
|
|
85
|
-
}
|
|
86
|
-
/* Pressed: the button's own surface gives way to the pill. */
|
|
87
|
-
[data-icon-button][data-morph][aria-pressed="true"]:not(
|
|
88
|
-
[data-shape],
|
|
89
|
-
.nxgt-toolbar-item,
|
|
90
|
-
[data-toolbar-item]
|
|
91
|
-
) {
|
|
92
|
-
background: transparent;
|
|
93
|
-
border-color: transparent;
|
|
94
|
-
box-shadow: none;
|
|
95
|
-
color: var(--ib-on-fg);
|
|
96
|
-
}
|
|
97
|
-
[data-icon-button][data-morph][aria-pressed="true"]:not(
|
|
98
|
-
[data-shape],
|
|
99
|
-
.nxgt-toolbar-item,
|
|
100
|
-
[data-toolbar-item]
|
|
101
|
-
)
|
|
102
|
-
svg {
|
|
103
|
-
color: var(--ib-on-fg);
|
|
104
|
-
stroke: var(--ib-on-fg);
|
|
105
|
-
}
|
|
106
|
-
[data-icon-button][data-morph][aria-pressed="true"]:not(
|
|
107
|
-
[data-shape],
|
|
108
|
-
.nxgt-toolbar-item,
|
|
109
|
-
[data-toolbar-item]
|
|
110
|
-
)::before {
|
|
111
|
-
background: var(--ib-on);
|
|
112
|
-
}
|
|
113
|
-
[data-icon-button][data-morph="pill"][aria-pressed="true"]:not(
|
|
114
|
-
[data-shape],
|
|
115
|
-
.nxgt-toolbar-item,
|
|
116
|
-
[data-toolbar-item]
|
|
117
|
-
) {
|
|
118
|
-
--ib-grow: 1;
|
|
119
|
-
margin-inline: calc(var(--ib-morph) / 2);
|
|
120
|
-
}
|
|
121
|
-
[data-icon-button][data-morph][aria-pressed="true"]:not(
|
|
122
|
-
[data-shape],
|
|
123
|
-
.nxgt-toolbar-item,
|
|
124
|
-
[data-toolbar-item]
|
|
125
|
-
):hover:not(:disabled)::before {
|
|
126
|
-
background: color-mix(in oklab, var(--ib-on-fg) 10%, var(--ib-on));
|
|
127
|
-
}
|
|
128
|
-
/* Pointer down: the corners squeeze. */
|
|
129
|
-
[data-icon-button][data-morph]:not(
|
|
130
|
-
[data-shape],
|
|
131
|
-
.nxgt-toolbar-item,
|
|
132
|
-
[data-toolbar-item]
|
|
133
|
-
):active:not(:disabled)::before {
|
|
134
|
-
border-radius: 30%;
|
|
135
|
-
}
|
|
136
|
-
/* The ring follows the pill. */
|
|
137
|
-
[data-icon-button][data-morph][aria-pressed="true"]:not(
|
|
138
|
-
[data-shape],
|
|
139
|
-
.nxgt-toolbar-item,
|
|
140
|
-
[data-toolbar-item]
|
|
141
|
-
):focus-visible {
|
|
142
|
-
box-shadow: none;
|
|
143
|
-
}
|
|
144
|
-
[data-icon-button][data-morph][aria-pressed="true"]:not(
|
|
145
|
-
[data-shape],
|
|
146
|
-
.nxgt-toolbar-item,
|
|
147
|
-
[data-toolbar-item]
|
|
148
|
-
):focus-visible::before {
|
|
149
|
-
box-shadow: 0 0 0 3px
|
|
150
|
-
color-mix(in oklab, var(--color-ring) 50%, transparent);
|
|
151
|
-
}
|
|
152
|
-
}
|