@nurix/ui-component-library 1.1.4-stage.118 → 1.1.4-stage.119
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 +8 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +27 -14
- package/dist/index.mjs +27 -14
- package/dist/styles.css +21 -10
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1590,6 +1590,10 @@ interface DialogProps {
|
|
|
1590
1590
|
showCancel?: boolean;
|
|
1591
1591
|
onCancel?: () => void;
|
|
1592
1592
|
onConfirm?: () => void;
|
|
1593
|
+
/** @default "primary" */
|
|
1594
|
+
confirmVariant?: ButtonVariant;
|
|
1595
|
+
/** Disable the confirm button. */
|
|
1596
|
+
confirmDisabled?: boolean;
|
|
1593
1597
|
className?: string;
|
|
1594
1598
|
}
|
|
1595
1599
|
interface DialogIconProps {
|
|
@@ -1617,6 +1621,10 @@ interface DialogFooterProps {
|
|
|
1617
1621
|
showCancel?: boolean;
|
|
1618
1622
|
onCancel?: () => void;
|
|
1619
1623
|
onConfirm?: () => void;
|
|
1624
|
+
/** @default "primary" */
|
|
1625
|
+
confirmVariant?: ButtonVariant;
|
|
1626
|
+
/** Disable the confirm button. */
|
|
1627
|
+
confirmDisabled?: boolean;
|
|
1620
1628
|
showDivider?: boolean;
|
|
1621
1629
|
className?: string;
|
|
1622
1630
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1590,6 +1590,10 @@ interface DialogProps {
|
|
|
1590
1590
|
showCancel?: boolean;
|
|
1591
1591
|
onCancel?: () => void;
|
|
1592
1592
|
onConfirm?: () => void;
|
|
1593
|
+
/** @default "primary" */
|
|
1594
|
+
confirmVariant?: ButtonVariant;
|
|
1595
|
+
/** Disable the confirm button. */
|
|
1596
|
+
confirmDisabled?: boolean;
|
|
1593
1597
|
className?: string;
|
|
1594
1598
|
}
|
|
1595
1599
|
interface DialogIconProps {
|
|
@@ -1617,6 +1621,10 @@ interface DialogFooterProps {
|
|
|
1617
1621
|
showCancel?: boolean;
|
|
1618
1622
|
onCancel?: () => void;
|
|
1619
1623
|
onConfirm?: () => void;
|
|
1624
|
+
/** @default "primary" */
|
|
1625
|
+
confirmVariant?: ButtonVariant;
|
|
1626
|
+
/** Disable the confirm button. */
|
|
1627
|
+
confirmDisabled?: boolean;
|
|
1620
1628
|
showDivider?: boolean;
|
|
1621
1629
|
className?: string;
|
|
1622
1630
|
}
|
package/dist/index.js
CHANGED
|
@@ -7313,8 +7313,11 @@ var INPUT_TOKENS = {
|
|
|
7313
7313
|
fieldBase: "border border-token-input focus-within:border-token-brand disabled:pointer-events-none transition-colors",
|
|
7314
7314
|
// Hover-only border darkening for the active (non-invalid, non-disabled)
|
|
7315
7315
|
// state. Applied conditionally by the component so it does not override
|
|
7316
|
-
// the destructive border on invalid fields.
|
|
7317
|
-
|
|
7316
|
+
// the destructive border on invalid fields. The `:not(:focus-within)`
|
|
7317
|
+
// guard is required because Tailwind emits `:hover` rules AFTER
|
|
7318
|
+
// `:focus-within` — without it, hovering a focused field would replace
|
|
7319
|
+
// the brand border with the hover border.
|
|
7320
|
+
fieldHover: "[&:not(:focus-within)]:hover:border-token-input-hover",
|
|
7318
7321
|
// Borderless base — transparent resting border, brand border only on focus.
|
|
7319
7322
|
// No hover/pressed overlay (these cells sit inside a larger interactive row).
|
|
7320
7323
|
// Layout-shift safe: border width stays 1px across states (color-only swap).
|
|
@@ -7534,7 +7537,9 @@ var INPUT_GROUP_TOKENS = {
|
|
|
7534
7537
|
fieldBase: "border border-token-light focus-within:border-token-brand disabled:pointer-events-none transition-colors",
|
|
7535
7538
|
// Hover-only border darkening (Figma hover variant: #dadada). Applied
|
|
7536
7539
|
// conditionally by the component so it does not override invalid/disabled.
|
|
7537
|
-
|
|
7540
|
+
// The `:not(:focus-within)` guard prevents the hover border from beating
|
|
7541
|
+
// the brand focus border (Tailwind emits `:hover` after `:focus-within`).
|
|
7542
|
+
fieldHover: "[&:not(:focus-within)]:hover:border-token-input-hover",
|
|
7538
7543
|
fieldInvalid: "border-token-destructive focus-within:border-token-destructive",
|
|
7539
7544
|
fieldDisabled: "border-token-xlight",
|
|
7540
7545
|
// Inner input area
|
|
@@ -7544,7 +7549,7 @@ var INPUT_GROUP_TOKENS = {
|
|
|
7544
7549
|
segmentDivider: "border-token-light",
|
|
7545
7550
|
// Textarea
|
|
7546
7551
|
textareaField: "w-full bg-token-white py-[10px] px-[var(--input-padding-horizontal,12px)] text-sm border border-token-light focus-visible:outline-none focus-visible:border-token-brand disabled:pointer-events-none shadow-none transition-colors",
|
|
7547
|
-
textareaHover: "hover:border-token-input-hover",
|
|
7552
|
+
textareaHover: "[&:not(:focus-within)]:hover:border-token-input-hover",
|
|
7548
7553
|
textareaInvalid: "border-token-destructive focus-visible:border-token-destructive",
|
|
7549
7554
|
textareaDisabled: "border-token-xlight",
|
|
7550
7555
|
radius: {
|
|
@@ -7714,8 +7719,10 @@ var TEXTAREA_TOKENS = {
|
|
|
7714
7719
|
// Focus ring uses outline (not ring) so it doesn't contribute to box size.
|
|
7715
7720
|
fieldBase: "border border-token-input focus-within:border-token-brand disabled:pointer-events-none transition-colors",
|
|
7716
7721
|
// Hover-only border darkening. Applied conditionally by the component so
|
|
7717
|
-
// it does not override invalid/disabled borders.
|
|
7718
|
-
|
|
7722
|
+
// it does not override invalid/disabled borders. The `:not(:focus-within)`
|
|
7723
|
+
// guard keeps the brand focus border visible when a focused field is
|
|
7724
|
+
// hovered (Tailwind emits `:hover` after `:focus-within`).
|
|
7725
|
+
fieldHover: "[&:not(:focus-within)]:hover:border-token-input-hover",
|
|
7719
7726
|
fieldDisabled: "border-token-xlight",
|
|
7720
7727
|
fieldInvalid: "border-token-destructive focus-within:border-token-destructive",
|
|
7721
7728
|
// Textarea itself.
|
|
@@ -9269,11 +9276,11 @@ var SELECT_TOKENS = {
|
|
|
9269
9276
|
// Main select container
|
|
9270
9277
|
container: {
|
|
9271
9278
|
// Figma: trigger uses rounded-xl (12px), border visible, padding px-12 py-10.
|
|
9272
|
-
// Hover darkens the border to match Figma (#dadada)
|
|
9273
|
-
//
|
|
9274
|
-
//
|
|
9275
|
-
//
|
|
9276
|
-
default: "rounded-[var(--rounded-xl,12px)] border border-token-input flex items-center justify-between gap-2 transition-colors hover:border-token-input-hover disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:border-token-input focus-visible:outline-none data-[state=open]:border-token-brand",
|
|
9279
|
+
// Hover darkens the border to match Figma (#dadada). The hover is scoped
|
|
9280
|
+
// via `[&:not([data-state=open])]` so the brand border wins when the
|
|
9281
|
+
// dropdown is open (Tailwind emits `data-[*]` selectors before `:hover`,
|
|
9282
|
+
// so without the guard hover would override the open-state border).
|
|
9283
|
+
default: "rounded-[var(--rounded-xl,12px)] border border-token-input flex items-center justify-between gap-2 transition-colors [&:not([data-state=open])]:hover:border-token-input-hover disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:border-token-input focus-visible:outline-none data-[state=open]:border-token-brand",
|
|
9277
9284
|
// bg variants: default = input (grey), white = card
|
|
9278
9285
|
bgDefault: "bg-token-white",
|
|
9279
9286
|
bgWhite: "bg-token-white",
|
|
@@ -10542,7 +10549,7 @@ var DIALOG_TOKENS = {
|
|
|
10542
10549
|
},
|
|
10543
10550
|
header: {
|
|
10544
10551
|
wrapper: "flex flex-col shrink-0",
|
|
10545
|
-
row: "flex items-center gap-[10px] px-6
|
|
10552
|
+
row: "flex items-center gap-[10px] px-6 pt-6 pb-2",
|
|
10546
10553
|
title: "flex-1 text-lg font-semibold leading-7 text-fg-black",
|
|
10547
10554
|
closeBtn: "size-9 flex items-center justify-center rounded-md text-fg-black hover:bg-token-grey transition-colors cursor-pointer",
|
|
10548
10555
|
divider: "h-px bg-border-token-light"
|
|
@@ -10577,6 +10584,8 @@ var Dialog = React29.forwardRef(
|
|
|
10577
10584
|
showCancel = true,
|
|
10578
10585
|
onCancel,
|
|
10579
10586
|
onConfirm,
|
|
10587
|
+
confirmVariant = "primary",
|
|
10588
|
+
confirmDisabled = false,
|
|
10580
10589
|
className
|
|
10581
10590
|
}, ref) => {
|
|
10582
10591
|
const close = React29.useCallback(() => onOpenChange(false), [onOpenChange]);
|
|
@@ -10649,9 +10658,10 @@ var Dialog = React29.forwardRef(
|
|
|
10649
10658
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
10650
10659
|
Button,
|
|
10651
10660
|
{
|
|
10652
|
-
variant:
|
|
10661
|
+
variant: confirmVariant,
|
|
10653
10662
|
button_border_radius: "rounded",
|
|
10654
10663
|
onClick: onConfirm,
|
|
10664
|
+
disabled: confirmDisabled,
|
|
10655
10665
|
children: confirmLabel
|
|
10656
10666
|
}
|
|
10657
10667
|
)
|
|
@@ -10711,6 +10721,8 @@ var DialogFooter = React29.forwardRef(
|
|
|
10711
10721
|
showCancel = true,
|
|
10712
10722
|
onCancel,
|
|
10713
10723
|
onConfirm,
|
|
10724
|
+
confirmVariant = "primary",
|
|
10725
|
+
confirmDisabled = false,
|
|
10714
10726
|
showDivider = false,
|
|
10715
10727
|
className
|
|
10716
10728
|
}, ref) => {
|
|
@@ -10730,9 +10742,10 @@ var DialogFooter = React29.forwardRef(
|
|
|
10730
10742
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
10731
10743
|
Button,
|
|
10732
10744
|
{
|
|
10733
|
-
variant:
|
|
10745
|
+
variant: confirmVariant,
|
|
10734
10746
|
button_border_radius: "rounded",
|
|
10735
10747
|
onClick: onConfirm,
|
|
10748
|
+
disabled: confirmDisabled,
|
|
10736
10749
|
children: confirmLabel
|
|
10737
10750
|
}
|
|
10738
10751
|
)
|
package/dist/index.mjs
CHANGED
|
@@ -7209,8 +7209,11 @@ var INPUT_TOKENS = {
|
|
|
7209
7209
|
fieldBase: "border border-token-input focus-within:border-token-brand disabled:pointer-events-none transition-colors",
|
|
7210
7210
|
// Hover-only border darkening for the active (non-invalid, non-disabled)
|
|
7211
7211
|
// state. Applied conditionally by the component so it does not override
|
|
7212
|
-
// the destructive border on invalid fields.
|
|
7213
|
-
|
|
7212
|
+
// the destructive border on invalid fields. The `:not(:focus-within)`
|
|
7213
|
+
// guard is required because Tailwind emits `:hover` rules AFTER
|
|
7214
|
+
// `:focus-within` — without it, hovering a focused field would replace
|
|
7215
|
+
// the brand border with the hover border.
|
|
7216
|
+
fieldHover: "[&:not(:focus-within)]:hover:border-token-input-hover",
|
|
7214
7217
|
// Borderless base — transparent resting border, brand border only on focus.
|
|
7215
7218
|
// No hover/pressed overlay (these cells sit inside a larger interactive row).
|
|
7216
7219
|
// Layout-shift safe: border width stays 1px across states (color-only swap).
|
|
@@ -7430,7 +7433,9 @@ var INPUT_GROUP_TOKENS = {
|
|
|
7430
7433
|
fieldBase: "border border-token-light focus-within:border-token-brand disabled:pointer-events-none transition-colors",
|
|
7431
7434
|
// Hover-only border darkening (Figma hover variant: #dadada). Applied
|
|
7432
7435
|
// conditionally by the component so it does not override invalid/disabled.
|
|
7433
|
-
|
|
7436
|
+
// The `:not(:focus-within)` guard prevents the hover border from beating
|
|
7437
|
+
// the brand focus border (Tailwind emits `:hover` after `:focus-within`).
|
|
7438
|
+
fieldHover: "[&:not(:focus-within)]:hover:border-token-input-hover",
|
|
7434
7439
|
fieldInvalid: "border-token-destructive focus-within:border-token-destructive",
|
|
7435
7440
|
fieldDisabled: "border-token-xlight",
|
|
7436
7441
|
// Inner input area
|
|
@@ -7440,7 +7445,7 @@ var INPUT_GROUP_TOKENS = {
|
|
|
7440
7445
|
segmentDivider: "border-token-light",
|
|
7441
7446
|
// Textarea
|
|
7442
7447
|
textareaField: "w-full bg-token-white py-[10px] px-[var(--input-padding-horizontal,12px)] text-sm border border-token-light focus-visible:outline-none focus-visible:border-token-brand disabled:pointer-events-none shadow-none transition-colors",
|
|
7443
|
-
textareaHover: "hover:border-token-input-hover",
|
|
7448
|
+
textareaHover: "[&:not(:focus-within)]:hover:border-token-input-hover",
|
|
7444
7449
|
textareaInvalid: "border-token-destructive focus-visible:border-token-destructive",
|
|
7445
7450
|
textareaDisabled: "border-token-xlight",
|
|
7446
7451
|
radius: {
|
|
@@ -7610,8 +7615,10 @@ var TEXTAREA_TOKENS = {
|
|
|
7610
7615
|
// Focus ring uses outline (not ring) so it doesn't contribute to box size.
|
|
7611
7616
|
fieldBase: "border border-token-input focus-within:border-token-brand disabled:pointer-events-none transition-colors",
|
|
7612
7617
|
// Hover-only border darkening. Applied conditionally by the component so
|
|
7613
|
-
// it does not override invalid/disabled borders.
|
|
7614
|
-
|
|
7618
|
+
// it does not override invalid/disabled borders. The `:not(:focus-within)`
|
|
7619
|
+
// guard keeps the brand focus border visible when a focused field is
|
|
7620
|
+
// hovered (Tailwind emits `:hover` after `:focus-within`).
|
|
7621
|
+
fieldHover: "[&:not(:focus-within)]:hover:border-token-input-hover",
|
|
7615
7622
|
fieldDisabled: "border-token-xlight",
|
|
7616
7623
|
fieldInvalid: "border-token-destructive focus-within:border-token-destructive",
|
|
7617
7624
|
// Textarea itself.
|
|
@@ -9165,11 +9172,11 @@ var SELECT_TOKENS = {
|
|
|
9165
9172
|
// Main select container
|
|
9166
9173
|
container: {
|
|
9167
9174
|
// Figma: trigger uses rounded-xl (12px), border visible, padding px-12 py-10.
|
|
9168
|
-
// Hover darkens the border to match Figma (#dadada)
|
|
9169
|
-
//
|
|
9170
|
-
//
|
|
9171
|
-
//
|
|
9172
|
-
default: "rounded-[var(--rounded-xl,12px)] border border-token-input flex items-center justify-between gap-2 transition-colors hover:border-token-input-hover disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:border-token-input focus-visible:outline-none data-[state=open]:border-token-brand",
|
|
9175
|
+
// Hover darkens the border to match Figma (#dadada). The hover is scoped
|
|
9176
|
+
// via `[&:not([data-state=open])]` so the brand border wins when the
|
|
9177
|
+
// dropdown is open (Tailwind emits `data-[*]` selectors before `:hover`,
|
|
9178
|
+
// so without the guard hover would override the open-state border).
|
|
9179
|
+
default: "rounded-[var(--rounded-xl,12px)] border border-token-input flex items-center justify-between gap-2 transition-colors [&:not([data-state=open])]:hover:border-token-input-hover disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:border-token-input focus-visible:outline-none data-[state=open]:border-token-brand",
|
|
9173
9180
|
// bg variants: default = input (grey), white = card
|
|
9174
9181
|
bgDefault: "bg-token-white",
|
|
9175
9182
|
bgWhite: "bg-token-white",
|
|
@@ -10438,7 +10445,7 @@ var DIALOG_TOKENS = {
|
|
|
10438
10445
|
},
|
|
10439
10446
|
header: {
|
|
10440
10447
|
wrapper: "flex flex-col shrink-0",
|
|
10441
|
-
row: "flex items-center gap-[10px] px-6
|
|
10448
|
+
row: "flex items-center gap-[10px] px-6 pt-6 pb-2",
|
|
10442
10449
|
title: "flex-1 text-lg font-semibold leading-7 text-fg-black",
|
|
10443
10450
|
closeBtn: "size-9 flex items-center justify-center rounded-md text-fg-black hover:bg-token-grey transition-colors cursor-pointer",
|
|
10444
10451
|
divider: "h-px bg-border-token-light"
|
|
@@ -10473,6 +10480,8 @@ var Dialog = React29.forwardRef(
|
|
|
10473
10480
|
showCancel = true,
|
|
10474
10481
|
onCancel,
|
|
10475
10482
|
onConfirm,
|
|
10483
|
+
confirmVariant = "primary",
|
|
10484
|
+
confirmDisabled = false,
|
|
10476
10485
|
className
|
|
10477
10486
|
}, ref) => {
|
|
10478
10487
|
const close = React29.useCallback(() => onOpenChange(false), [onOpenChange]);
|
|
@@ -10545,9 +10554,10 @@ var Dialog = React29.forwardRef(
|
|
|
10545
10554
|
/* @__PURE__ */ jsx25(
|
|
10546
10555
|
Button,
|
|
10547
10556
|
{
|
|
10548
|
-
variant:
|
|
10557
|
+
variant: confirmVariant,
|
|
10549
10558
|
button_border_radius: "rounded",
|
|
10550
10559
|
onClick: onConfirm,
|
|
10560
|
+
disabled: confirmDisabled,
|
|
10551
10561
|
children: confirmLabel
|
|
10552
10562
|
}
|
|
10553
10563
|
)
|
|
@@ -10607,6 +10617,8 @@ var DialogFooter = React29.forwardRef(
|
|
|
10607
10617
|
showCancel = true,
|
|
10608
10618
|
onCancel,
|
|
10609
10619
|
onConfirm,
|
|
10620
|
+
confirmVariant = "primary",
|
|
10621
|
+
confirmDisabled = false,
|
|
10610
10622
|
showDivider = false,
|
|
10611
10623
|
className
|
|
10612
10624
|
}, ref) => {
|
|
@@ -10626,9 +10638,10 @@ var DialogFooter = React29.forwardRef(
|
|
|
10626
10638
|
/* @__PURE__ */ jsx25(
|
|
10627
10639
|
Button,
|
|
10628
10640
|
{
|
|
10629
|
-
variant:
|
|
10641
|
+
variant: confirmVariant,
|
|
10630
10642
|
button_border_radius: "rounded",
|
|
10631
10643
|
onClick: onConfirm,
|
|
10644
|
+
disabled: confirmDisabled,
|
|
10632
10645
|
children: confirmLabel
|
|
10633
10646
|
}
|
|
10634
10647
|
)
|
package/dist/styles.css
CHANGED
|
@@ -1511,9 +1511,6 @@
|
|
|
1511
1511
|
.lego-land .py-4 {
|
|
1512
1512
|
padding-block: calc(var(--spacing) * 4);
|
|
1513
1513
|
}
|
|
1514
|
-
.lego-land .py-6 {
|
|
1515
|
-
padding-block: calc(var(--spacing) * 6);
|
|
1516
|
-
}
|
|
1517
1514
|
.lego-land .py-8 {
|
|
1518
1515
|
padding-block: calc(var(--spacing) * 8);
|
|
1519
1516
|
}
|
|
@@ -1538,6 +1535,9 @@
|
|
|
1538
1535
|
.lego-land .pt-4 {
|
|
1539
1536
|
padding-top: calc(var(--spacing) * 4);
|
|
1540
1537
|
}
|
|
1538
|
+
.lego-land .pt-6 {
|
|
1539
|
+
padding-top: calc(var(--spacing) * 6);
|
|
1540
|
+
}
|
|
1541
1541
|
.lego-land .pr-2 {
|
|
1542
1542
|
padding-right: calc(var(--spacing) * 2);
|
|
1543
1543
|
}
|
|
@@ -2296,13 +2296,6 @@
|
|
|
2296
2296
|
}
|
|
2297
2297
|
}
|
|
2298
2298
|
}
|
|
2299
|
-
.lego-land .hover\:border-token-input-hover {
|
|
2300
|
-
.lego-land &:hover {
|
|
2301
|
-
@media (hover: hover) {
|
|
2302
|
-
border-color: hsl(var(--border-input-hover));
|
|
2303
|
-
}
|
|
2304
|
-
}
|
|
2305
|
-
}
|
|
2306
2299
|
.lego-land .hover\:border-token-light {
|
|
2307
2300
|
.lego-land &:hover {
|
|
2308
2301
|
@media (hover: hover) {
|
|
@@ -2825,6 +2818,24 @@
|
|
|
2825
2818
|
appearance: none;
|
|
2826
2819
|
}
|
|
2827
2820
|
}
|
|
2821
|
+
.lego-land .\[\&\:not\(\:focus-within\)\]\:hover\:border-token-input-hover {
|
|
2822
|
+
.lego-land &:not(:focus-within) {
|
|
2823
|
+
.lego-land &:hover {
|
|
2824
|
+
@media (hover: hover) {
|
|
2825
|
+
border-color: hsl(var(--border-input-hover));
|
|
2826
|
+
}
|
|
2827
|
+
}
|
|
2828
|
+
}
|
|
2829
|
+
}
|
|
2830
|
+
.lego-land .\[\&\:not\(\[data-state\=open\]\)\]\:hover\:border-token-input-hover {
|
|
2831
|
+
.lego-land &:not([data-state=open]) {
|
|
2832
|
+
.lego-land &:hover {
|
|
2833
|
+
@media (hover: hover) {
|
|
2834
|
+
border-color: hsl(var(--border-input-hover));
|
|
2835
|
+
}
|
|
2836
|
+
}
|
|
2837
|
+
}
|
|
2838
|
+
}
|
|
2828
2839
|
.lego-land .\[\&\>\*\]\:relative {
|
|
2829
2840
|
.lego-land &>* {
|
|
2830
2841
|
position: relative;
|