@kushagradhawan/kookie-ui 0.1.51 → 0.1.53
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/components.css +72 -72
- package/dist/cjs/components/chatbar.d.ts +12 -0
- package/dist/cjs/components/chatbar.d.ts.map +1 -1
- package/dist/cjs/components/chatbar.js +1 -1
- package/dist/cjs/components/chatbar.js.map +3 -3
- package/dist/esm/components/chatbar.d.ts +12 -0
- package/dist/esm/components/chatbar.d.ts.map +1 -1
- package/dist/esm/components/chatbar.js +1 -1
- package/dist/esm/components/chatbar.js.map +3 -3
- package/package.json +1 -1
- package/schemas/base-button.json +1 -1
- package/schemas/button.json +1 -1
- package/schemas/icon-button.json +1 -1
- package/schemas/index.json +6 -6
- package/schemas/toggle-button.json +1 -1
- package/schemas/toggle-icon-button.json +1 -1
- package/src/components/chatbar.css +15 -12
- package/src/components/chatbar.tsx +34 -1
- package/styles.css +72 -72
package/components.css
CHANGED
|
@@ -19494,68 +19494,68 @@
|
|
|
19494
19494
|
--backdrop-filter-components: none;
|
|
19495
19495
|
}
|
|
19496
19496
|
.rt-ChatbarRoot:where(.rt-r-size-1) .rt-ChatbarBox {
|
|
19497
|
-
border-radius: min(var(--radius-
|
|
19498
|
-
padding: var(--space-
|
|
19497
|
+
border-radius: min(var(--radius-6), calc(var(--radius-2) + var(--space-2)));
|
|
19498
|
+
padding: var(--space-3);
|
|
19499
19499
|
}
|
|
19500
19500
|
.rt-ChatbarRoot:where(.rt-r-size-1) .rt-ChatbarInput {
|
|
19501
|
-
--text-area-padding-y: calc(var(--space-
|
|
19502
|
-
--text-area-padding-x: calc(var(--space-
|
|
19501
|
+
--text-area-padding-y: calc(var(--space-3) - var(--text-area-border-width));
|
|
19502
|
+
--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));
|
|
19503
19503
|
font-size: var(--font-size-1);
|
|
19504
19504
|
line-height: var(--line-height-1);
|
|
19505
19505
|
letter-spacing: var(--letter-spacing-1);
|
|
19506
19506
|
}
|
|
19507
19507
|
.rt-ChatbarRoot:where(.rt-r-size-2) .rt-ChatbarBox {
|
|
19508
|
-
border-radius: min(var(--radius-
|
|
19509
|
-
padding: var(--space-
|
|
19508
|
+
border-radius: min(var(--radius-7), calc(var(--radius-3) + var(--space-3)));
|
|
19509
|
+
padding: var(--space-4);
|
|
19510
19510
|
}
|
|
19511
19511
|
.rt-ChatbarRoot:where(.rt-r-size-2) .rt-ChatbarInput {
|
|
19512
|
-
--text-area-padding-y: calc(var(--space-
|
|
19513
|
-
--text-area-padding-x: calc(var(--space-
|
|
19512
|
+
--text-area-padding-y: calc(var(--space-4) - var(--text-area-border-width));
|
|
19513
|
+
--text-area-padding-x: calc(var(--space-4) - var(--text-area-border-width));
|
|
19514
19514
|
font-size: var(--font-size-2);
|
|
19515
19515
|
line-height: var(--line-height-2);
|
|
19516
19516
|
letter-spacing: var(--letter-spacing-2);
|
|
19517
19517
|
}
|
|
19518
19518
|
.rt-ChatbarRoot:where(.rt-r-size-3) .rt-ChatbarBox {
|
|
19519
|
-
border-radius: min(var(--radius-
|
|
19520
|
-
padding: var(--space-
|
|
19519
|
+
border-radius: min(var(--radius-8), calc(var(--radius-4) + var(--space-4)));
|
|
19520
|
+
padding: var(--space-5);
|
|
19521
19521
|
}
|
|
19522
19522
|
.rt-ChatbarRoot:where(.rt-r-size-3) .rt-ChatbarInput {
|
|
19523
|
-
--text-area-padding-y: calc(var(--space-
|
|
19524
|
-
--text-area-padding-x: calc(var(--space-
|
|
19523
|
+
--text-area-padding-y: calc(var(--space-5) - var(--text-area-border-width));
|
|
19524
|
+
--text-area-padding-x: calc(var(--space-5) - var(--text-area-border-width));
|
|
19525
19525
|
font-size: var(--font-size-3);
|
|
19526
19526
|
line-height: var(--line-height-3);
|
|
19527
19527
|
letter-spacing: var(--letter-spacing-3);
|
|
19528
19528
|
}
|
|
19529
19529
|
@media (min-width: 520px) {
|
|
19530
19530
|
.rt-ChatbarRoot:where(.xs\:rt-r-size-1) .rt-ChatbarBox {
|
|
19531
|
-
border-radius: min(var(--radius-
|
|
19532
|
-
padding: var(--space-
|
|
19531
|
+
border-radius: min(var(--radius-6), calc(var(--radius-2) + var(--space-2)));
|
|
19532
|
+
padding: var(--space-3);
|
|
19533
19533
|
}
|
|
19534
19534
|
.rt-ChatbarRoot:where(.xs\:rt-r-size-1) .rt-ChatbarInput {
|
|
19535
|
-
--text-area-padding-y: calc(var(--space-
|
|
19536
|
-
--text-area-padding-x: calc(var(--space-
|
|
19535
|
+
--text-area-padding-y: calc(var(--space-3) - var(--text-area-border-width));
|
|
19536
|
+
--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));
|
|
19537
19537
|
font-size: var(--font-size-1);
|
|
19538
19538
|
line-height: var(--line-height-1);
|
|
19539
19539
|
letter-spacing: var(--letter-spacing-1);
|
|
19540
19540
|
}
|
|
19541
19541
|
.rt-ChatbarRoot:where(.xs\:rt-r-size-2) .rt-ChatbarBox {
|
|
19542
|
-
border-radius: min(var(--radius-
|
|
19543
|
-
padding: var(--space-
|
|
19542
|
+
border-radius: min(var(--radius-7), calc(var(--radius-3) + var(--space-3)));
|
|
19543
|
+
padding: var(--space-4);
|
|
19544
19544
|
}
|
|
19545
19545
|
.rt-ChatbarRoot:where(.xs\:rt-r-size-2) .rt-ChatbarInput {
|
|
19546
|
-
--text-area-padding-y: calc(var(--space-
|
|
19547
|
-
--text-area-padding-x: calc(var(--space-
|
|
19546
|
+
--text-area-padding-y: calc(var(--space-4) - var(--text-area-border-width));
|
|
19547
|
+
--text-area-padding-x: calc(var(--space-4) - var(--text-area-border-width));
|
|
19548
19548
|
font-size: var(--font-size-2);
|
|
19549
19549
|
line-height: var(--line-height-2);
|
|
19550
19550
|
letter-spacing: var(--letter-spacing-2);
|
|
19551
19551
|
}
|
|
19552
19552
|
.rt-ChatbarRoot:where(.xs\:rt-r-size-3) .rt-ChatbarBox {
|
|
19553
|
-
border-radius: min(var(--radius-
|
|
19554
|
-
padding: var(--space-
|
|
19553
|
+
border-radius: min(var(--radius-8), calc(var(--radius-4) + var(--space-4)));
|
|
19554
|
+
padding: var(--space-5);
|
|
19555
19555
|
}
|
|
19556
19556
|
.rt-ChatbarRoot:where(.xs\:rt-r-size-3) .rt-ChatbarInput {
|
|
19557
|
-
--text-area-padding-y: calc(var(--space-
|
|
19558
|
-
--text-area-padding-x: calc(var(--space-
|
|
19557
|
+
--text-area-padding-y: calc(var(--space-5) - var(--text-area-border-width));
|
|
19558
|
+
--text-area-padding-x: calc(var(--space-5) - var(--text-area-border-width));
|
|
19559
19559
|
font-size: var(--font-size-3);
|
|
19560
19560
|
line-height: var(--line-height-3);
|
|
19561
19561
|
letter-spacing: var(--letter-spacing-3);
|
|
@@ -19563,34 +19563,34 @@
|
|
|
19563
19563
|
}
|
|
19564
19564
|
@media (min-width: 768px) {
|
|
19565
19565
|
.rt-ChatbarRoot:where(.sm\:rt-r-size-1) .rt-ChatbarBox {
|
|
19566
|
-
border-radius: min(var(--radius-
|
|
19567
|
-
padding: var(--space-
|
|
19566
|
+
border-radius: min(var(--radius-6), calc(var(--radius-2) + var(--space-2)));
|
|
19567
|
+
padding: var(--space-3);
|
|
19568
19568
|
}
|
|
19569
19569
|
.rt-ChatbarRoot:where(.sm\:rt-r-size-1) .rt-ChatbarInput {
|
|
19570
|
-
--text-area-padding-y: calc(var(--space-
|
|
19571
|
-
--text-area-padding-x: calc(var(--space-
|
|
19570
|
+
--text-area-padding-y: calc(var(--space-3) - var(--text-area-border-width));
|
|
19571
|
+
--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));
|
|
19572
19572
|
font-size: var(--font-size-1);
|
|
19573
19573
|
line-height: var(--line-height-1);
|
|
19574
19574
|
letter-spacing: var(--letter-spacing-1);
|
|
19575
19575
|
}
|
|
19576
19576
|
.rt-ChatbarRoot:where(.sm\:rt-r-size-2) .rt-ChatbarBox {
|
|
19577
|
-
border-radius: min(var(--radius-
|
|
19578
|
-
padding: var(--space-
|
|
19577
|
+
border-radius: min(var(--radius-7), calc(var(--radius-3) + var(--space-3)));
|
|
19578
|
+
padding: var(--space-4);
|
|
19579
19579
|
}
|
|
19580
19580
|
.rt-ChatbarRoot:where(.sm\:rt-r-size-2) .rt-ChatbarInput {
|
|
19581
|
-
--text-area-padding-y: calc(var(--space-
|
|
19582
|
-
--text-area-padding-x: calc(var(--space-
|
|
19581
|
+
--text-area-padding-y: calc(var(--space-4) - var(--text-area-border-width));
|
|
19582
|
+
--text-area-padding-x: calc(var(--space-4) - var(--text-area-border-width));
|
|
19583
19583
|
font-size: var(--font-size-2);
|
|
19584
19584
|
line-height: var(--line-height-2);
|
|
19585
19585
|
letter-spacing: var(--letter-spacing-2);
|
|
19586
19586
|
}
|
|
19587
19587
|
.rt-ChatbarRoot:where(.sm\:rt-r-size-3) .rt-ChatbarBox {
|
|
19588
|
-
border-radius: min(var(--radius-
|
|
19589
|
-
padding: var(--space-
|
|
19588
|
+
border-radius: min(var(--radius-8), calc(var(--radius-4) + var(--space-4)));
|
|
19589
|
+
padding: var(--space-5);
|
|
19590
19590
|
}
|
|
19591
19591
|
.rt-ChatbarRoot:where(.sm\:rt-r-size-3) .rt-ChatbarInput {
|
|
19592
|
-
--text-area-padding-y: calc(var(--space-
|
|
19593
|
-
--text-area-padding-x: calc(var(--space-
|
|
19592
|
+
--text-area-padding-y: calc(var(--space-5) - var(--text-area-border-width));
|
|
19593
|
+
--text-area-padding-x: calc(var(--space-5) - var(--text-area-border-width));
|
|
19594
19594
|
font-size: var(--font-size-3);
|
|
19595
19595
|
line-height: var(--line-height-3);
|
|
19596
19596
|
letter-spacing: var(--letter-spacing-3);
|
|
@@ -19598,34 +19598,34 @@
|
|
|
19598
19598
|
}
|
|
19599
19599
|
@media (min-width: 1024px) {
|
|
19600
19600
|
.rt-ChatbarRoot:where(.md\:rt-r-size-1) .rt-ChatbarBox {
|
|
19601
|
-
border-radius: min(var(--radius-
|
|
19602
|
-
padding: var(--space-
|
|
19601
|
+
border-radius: min(var(--radius-6), calc(var(--radius-2) + var(--space-2)));
|
|
19602
|
+
padding: var(--space-3);
|
|
19603
19603
|
}
|
|
19604
19604
|
.rt-ChatbarRoot:where(.md\:rt-r-size-1) .rt-ChatbarInput {
|
|
19605
|
-
--text-area-padding-y: calc(var(--space-
|
|
19606
|
-
--text-area-padding-x: calc(var(--space-
|
|
19605
|
+
--text-area-padding-y: calc(var(--space-3) - var(--text-area-border-width));
|
|
19606
|
+
--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));
|
|
19607
19607
|
font-size: var(--font-size-1);
|
|
19608
19608
|
line-height: var(--line-height-1);
|
|
19609
19609
|
letter-spacing: var(--letter-spacing-1);
|
|
19610
19610
|
}
|
|
19611
19611
|
.rt-ChatbarRoot:where(.md\:rt-r-size-2) .rt-ChatbarBox {
|
|
19612
|
-
border-radius: min(var(--radius-
|
|
19613
|
-
padding: var(--space-
|
|
19612
|
+
border-radius: min(var(--radius-7), calc(var(--radius-3) + var(--space-3)));
|
|
19613
|
+
padding: var(--space-4);
|
|
19614
19614
|
}
|
|
19615
19615
|
.rt-ChatbarRoot:where(.md\:rt-r-size-2) .rt-ChatbarInput {
|
|
19616
|
-
--text-area-padding-y: calc(var(--space-
|
|
19617
|
-
--text-area-padding-x: calc(var(--space-
|
|
19616
|
+
--text-area-padding-y: calc(var(--space-4) - var(--text-area-border-width));
|
|
19617
|
+
--text-area-padding-x: calc(var(--space-4) - var(--text-area-border-width));
|
|
19618
19618
|
font-size: var(--font-size-2);
|
|
19619
19619
|
line-height: var(--line-height-2);
|
|
19620
19620
|
letter-spacing: var(--letter-spacing-2);
|
|
19621
19621
|
}
|
|
19622
19622
|
.rt-ChatbarRoot:where(.md\:rt-r-size-3) .rt-ChatbarBox {
|
|
19623
|
-
border-radius: min(var(--radius-
|
|
19624
|
-
padding: var(--space-
|
|
19623
|
+
border-radius: min(var(--radius-8), calc(var(--radius-4) + var(--space-4)));
|
|
19624
|
+
padding: var(--space-5);
|
|
19625
19625
|
}
|
|
19626
19626
|
.rt-ChatbarRoot:where(.md\:rt-r-size-3) .rt-ChatbarInput {
|
|
19627
|
-
--text-area-padding-y: calc(var(--space-
|
|
19628
|
-
--text-area-padding-x: calc(var(--space-
|
|
19627
|
+
--text-area-padding-y: calc(var(--space-5) - var(--text-area-border-width));
|
|
19628
|
+
--text-area-padding-x: calc(var(--space-5) - var(--text-area-border-width));
|
|
19629
19629
|
font-size: var(--font-size-3);
|
|
19630
19630
|
line-height: var(--line-height-3);
|
|
19631
19631
|
letter-spacing: var(--letter-spacing-3);
|
|
@@ -19633,34 +19633,34 @@
|
|
|
19633
19633
|
}
|
|
19634
19634
|
@media (min-width: 1280px) {
|
|
19635
19635
|
.rt-ChatbarRoot:where(.lg\:rt-r-size-1) .rt-ChatbarBox {
|
|
19636
|
-
border-radius: min(var(--radius-
|
|
19637
|
-
padding: var(--space-
|
|
19636
|
+
border-radius: min(var(--radius-6), calc(var(--radius-2) + var(--space-2)));
|
|
19637
|
+
padding: var(--space-3);
|
|
19638
19638
|
}
|
|
19639
19639
|
.rt-ChatbarRoot:where(.lg\:rt-r-size-1) .rt-ChatbarInput {
|
|
19640
|
-
--text-area-padding-y: calc(var(--space-
|
|
19641
|
-
--text-area-padding-x: calc(var(--space-
|
|
19640
|
+
--text-area-padding-y: calc(var(--space-3) - var(--text-area-border-width));
|
|
19641
|
+
--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));
|
|
19642
19642
|
font-size: var(--font-size-1);
|
|
19643
19643
|
line-height: var(--line-height-1);
|
|
19644
19644
|
letter-spacing: var(--letter-spacing-1);
|
|
19645
19645
|
}
|
|
19646
19646
|
.rt-ChatbarRoot:where(.lg\:rt-r-size-2) .rt-ChatbarBox {
|
|
19647
|
-
border-radius: min(var(--radius-
|
|
19648
|
-
padding: var(--space-
|
|
19647
|
+
border-radius: min(var(--radius-7), calc(var(--radius-3) + var(--space-3)));
|
|
19648
|
+
padding: var(--space-4);
|
|
19649
19649
|
}
|
|
19650
19650
|
.rt-ChatbarRoot:where(.lg\:rt-r-size-2) .rt-ChatbarInput {
|
|
19651
|
-
--text-area-padding-y: calc(var(--space-
|
|
19652
|
-
--text-area-padding-x: calc(var(--space-
|
|
19651
|
+
--text-area-padding-y: calc(var(--space-4) - var(--text-area-border-width));
|
|
19652
|
+
--text-area-padding-x: calc(var(--space-4) - var(--text-area-border-width));
|
|
19653
19653
|
font-size: var(--font-size-2);
|
|
19654
19654
|
line-height: var(--line-height-2);
|
|
19655
19655
|
letter-spacing: var(--letter-spacing-2);
|
|
19656
19656
|
}
|
|
19657
19657
|
.rt-ChatbarRoot:where(.lg\:rt-r-size-3) .rt-ChatbarBox {
|
|
19658
|
-
border-radius: min(var(--radius-
|
|
19659
|
-
padding: var(--space-
|
|
19658
|
+
border-radius: min(var(--radius-8), calc(var(--radius-4) + var(--space-4)));
|
|
19659
|
+
padding: var(--space-5);
|
|
19660
19660
|
}
|
|
19661
19661
|
.rt-ChatbarRoot:where(.lg\:rt-r-size-3) .rt-ChatbarInput {
|
|
19662
|
-
--text-area-padding-y: calc(var(--space-
|
|
19663
|
-
--text-area-padding-x: calc(var(--space-
|
|
19662
|
+
--text-area-padding-y: calc(var(--space-5) - var(--text-area-border-width));
|
|
19663
|
+
--text-area-padding-x: calc(var(--space-5) - var(--text-area-border-width));
|
|
19664
19664
|
font-size: var(--font-size-3);
|
|
19665
19665
|
line-height: var(--line-height-3);
|
|
19666
19666
|
letter-spacing: var(--letter-spacing-3);
|
|
@@ -19668,34 +19668,34 @@
|
|
|
19668
19668
|
}
|
|
19669
19669
|
@media (min-width: 1640px) {
|
|
19670
19670
|
.rt-ChatbarRoot:where(.xl\:rt-r-size-1) .rt-ChatbarBox {
|
|
19671
|
-
border-radius: min(var(--radius-
|
|
19672
|
-
padding: var(--space-
|
|
19671
|
+
border-radius: min(var(--radius-6), calc(var(--radius-2) + var(--space-2)));
|
|
19672
|
+
padding: var(--space-3);
|
|
19673
19673
|
}
|
|
19674
19674
|
.rt-ChatbarRoot:where(.xl\:rt-r-size-1) .rt-ChatbarInput {
|
|
19675
|
-
--text-area-padding-y: calc(var(--space-
|
|
19676
|
-
--text-area-padding-x: calc(var(--space-
|
|
19675
|
+
--text-area-padding-y: calc(var(--space-3) - var(--text-area-border-width));
|
|
19676
|
+
--text-area-padding-x: calc(var(--space-3) - var(--text-area-border-width));
|
|
19677
19677
|
font-size: var(--font-size-1);
|
|
19678
19678
|
line-height: var(--line-height-1);
|
|
19679
19679
|
letter-spacing: var(--letter-spacing-1);
|
|
19680
19680
|
}
|
|
19681
19681
|
.rt-ChatbarRoot:where(.xl\:rt-r-size-2) .rt-ChatbarBox {
|
|
19682
|
-
border-radius: min(var(--radius-
|
|
19683
|
-
padding: var(--space-
|
|
19682
|
+
border-radius: min(var(--radius-7), calc(var(--radius-3) + var(--space-3)));
|
|
19683
|
+
padding: var(--space-4);
|
|
19684
19684
|
}
|
|
19685
19685
|
.rt-ChatbarRoot:where(.xl\:rt-r-size-2) .rt-ChatbarInput {
|
|
19686
|
-
--text-area-padding-y: calc(var(--space-
|
|
19687
|
-
--text-area-padding-x: calc(var(--space-
|
|
19686
|
+
--text-area-padding-y: calc(var(--space-4) - var(--text-area-border-width));
|
|
19687
|
+
--text-area-padding-x: calc(var(--space-4) - var(--text-area-border-width));
|
|
19688
19688
|
font-size: var(--font-size-2);
|
|
19689
19689
|
line-height: var(--line-height-2);
|
|
19690
19690
|
letter-spacing: var(--letter-spacing-2);
|
|
19691
19691
|
}
|
|
19692
19692
|
.rt-ChatbarRoot:where(.xl\:rt-r-size-3) .rt-ChatbarBox {
|
|
19693
|
-
border-radius: min(var(--radius-
|
|
19694
|
-
padding: var(--space-
|
|
19693
|
+
border-radius: min(var(--radius-8), calc(var(--radius-4) + var(--space-4)));
|
|
19694
|
+
padding: var(--space-5);
|
|
19695
19695
|
}
|
|
19696
19696
|
.rt-ChatbarRoot:where(.xl\:rt-r-size-3) .rt-ChatbarInput {
|
|
19697
|
-
--text-area-padding-y: calc(var(--space-
|
|
19698
|
-
--text-area-padding-x: calc(var(--space-
|
|
19697
|
+
--text-area-padding-y: calc(var(--space-5) - var(--text-area-border-width));
|
|
19698
|
+
--text-area-padding-x: calc(var(--space-5) - var(--text-area-border-width));
|
|
19699
19699
|
font-size: var(--font-size-3);
|
|
19700
19700
|
line-height: var(--line-height-3);
|
|
19701
19701
|
letter-spacing: var(--letter-spacing-3);
|
|
@@ -95,6 +95,18 @@ interface ChatbarRootBaseProps {
|
|
|
95
95
|
* @default true
|
|
96
96
|
*/
|
|
97
97
|
dropzone?: boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Optional API ref to control Chatbar imperatively without relying on DOM refs.
|
|
100
|
+
* Provides methods to focus the textarea and open the file picker.
|
|
101
|
+
*/
|
|
102
|
+
apiRef?: React.Ref<ChatbarApi>;
|
|
103
|
+
}
|
|
104
|
+
/** Imperative API for Chatbar.Root */
|
|
105
|
+
export interface ChatbarApi {
|
|
106
|
+
/** Focus the textarea input */
|
|
107
|
+
focusTextarea: () => void;
|
|
108
|
+
/** Open the file picker dialog (respects accept/multiple) */
|
|
109
|
+
openFilePicker: () => void;
|
|
98
110
|
}
|
|
99
111
|
/**
|
|
100
112
|
* Chatbar container and state provider.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatbar.d.ts","sourceRoot":"","sources":["../../../src/components/chatbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAWpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAKzF,KAAK,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AACvD,KAAK,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAGjD,4CAA4C;AAC5C,KAAK,gBAAgB,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAChE;;;;GAIG;AACH,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AA4DD;;;;;;;;;;;;;;GAcG;AACH,UAAU,oBAAoB;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAEvC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,iBAAiB,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAElF,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAC/D,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,2DAA2D;IAC3D,eAAe,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAEnC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IACjE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAAE,EAAE,KAAK,IAAI,CAAC;IAE/F;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"chatbar.d.ts","sourceRoot":"","sources":["../../../src/components/chatbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var et=Object.create;var ce=Object.defineProperty;var tt=Object.getOwnPropertyDescriptor;var nt=Object.getOwnPropertyNames;var at=Object.getPrototypeOf,ot=Object.prototype.hasOwnProperty;var rt=(a,o)=>{for(var r in o)ce(a,r,{get:o[r],enumerable:!0})},je=(a,o,r,d)=>{if(o&&typeof o=="object"||typeof o=="function")for(let c of nt(o))!ot.call(a,c)&&c!==r&&ce(a,c,{get:()=>o[c],enumerable:!(d=tt(o,c))||d.enumerable});return a};var Be=(a,o,r)=>(r=a!=null?et(at(a)):{},je(o||!a||!a.__esModule?ce(r,"default",{value:a,enumerable:!0}):r,a)),st=a=>je(ce({},"__esModule",{value:!0}),a);var it={};rt(it,{AttachTrigger:()=>Se,Attachment:()=>de,AttachmentsRow:()=>Oe,InlineEnd:()=>Te,InlineStart:()=>Ee,Root:()=>Re,Row:()=>Me,RowEnd:()=>Ne,RowStart:()=>Le,Send:()=>Fe,Textarea:()=>Pe});module.exports=st(it);var e=Be(require("react")),T=Be(require("classnames")),we=require("./icon-button.js"),me=require("./icons.js"),ae=require("./flex.js"),Ve=require("./scroll-area.js"),D=require("./slot.js"),Ue=require("./box.js"),ct=require("./card.js"),ue=require("./text.js"),dt=require("./inset.js"),Ke=require("react-dropzone");const Ae=typeof window<"u"?e.useLayoutEffect:e.useEffect,We=e.createContext(null),W=()=>{const a=e.useContext(We);if(!a)throw new Error("Chatbar context not found. Wrap parts in <Chatbar.Root>.");return a},Re=e.forwardRef((a,o)=>{const{className:r,style:d,children:c,value:f,defaultValue:x="",onValueChange:h,open:l,defaultOpen:s=!1,onOpenChange:A,expandOn:P="both",minLines:O=1,maxLines:m=6,sendMode:b="whenDirty",disabled:N,readOnly:G,onSubmit:S,size:F="2",variant:V,color:H,radius:U,panelBackground:M,material:z,width:oe,maxWidth:_,asChild:re,attachments:se,defaultAttachments:pe=[],onAttachmentsChange:K,accept:J,multiple:k=!0,maxAttachments:w,maxFileSize:p,paste:he=!0,pasteAccept:Q,clearOnSubmit:fe=!0,onAttachmentReject:$,dropzone:I=!0,...n}=a,u=z||M,C=f!=null,[R,L]=e.useState(x),X=C?f:R,j=l!=null,[be,q]=e.useState(s),Y=j?l:be,Z=e.useRef(null),Ce=e.useRef(null),He=e.useRef(!1),ie="attachments"in a,[$e,De]=e.useState(pe),B=ie?se??[]:$e,ee=e.useRef(new Set),ge=t=>Array.isArray(t)?t:typeof t=="string"?t.split(",").map(i=>i.trim()):[],te=ge(J),ze=ge(Q).length>0?ge(Q):te,ye=(t,i)=>{if(i.length===0)return!0;const g=t.type.toLowerCase(),E=t.name.toLowerCase();for(const y of i){const v=y.toLowerCase();if(v.includes("/")){const[le,xe]=v.split("/"),[ne,Ze]=g.split("/");if(le==="*"||le===ne&&(xe==="*"||xe===Ze))return!0}else if(v.startsWith(".")&&E.endsWith(v))return!0}return!1},qe=t=>{const i=[],g=[],E=typeof w=="number"?Math.max(w-B.length,0):1/0;for(const y of t){if(i.length>=E){g.push({file:y,reason:"count"});continue}if(typeof p=="number"&&y.size>p){g.push({file:y,reason:"size"});continue}if(!ye(y,te)){g.push({file:y,reason:"type"});continue}const v=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,le=/\.(png|jpe?g|gif|webp|bmp|svg)$/i.test(y.name),ne=(y.type||"").toLowerCase().startsWith("image/")||le?URL.createObjectURL(y):void 0;ne&&ee.current.add(ne),i.push({id:v,name:y.name,size:y.size,type:y.type,file:y,url:ne,status:"idle"})}return{accepted:i,rejected:g}},ve=t=>{const{accepted:i,rejected:g}=qe(t);if(i.length>0){const E=B.concat(i);ie||De(E),K?.(E),j||q(!0),A?.(!0)}g.length>0&&$?.(g)},Ye=t=>{const i=v=>ze.length===0?ye(v,te):ye(v,ze),g=[],E=[],y=typeof w=="number"?Math.max(w-B.length,0):1/0;for(const v of t){if(g.length>=y){E.push({file:v,reason:"count"});continue}if(typeof p=="number"&&v.size>p){E.push({file:v,reason:"size"});continue}if(!i(v)){E.push({file:v,reason:"type"});continue}g.push(v)}g.length>0&&ve(g),E.length>0&&$?.(E)};e.useEffect(()=>{const t=new Set(B.map(i=>i.url).filter(Boolean));for(const i of Array.from(ee.current))t.has(i)||(URL.revokeObjectURL(i),ee.current.delete(i))},[B]),e.useEffect(()=>()=>{for(const t of Array.from(ee.current))URL.revokeObjectURL(t);ee.current.clear()},[]);const Ge=re?D.Slot:"div",_e=e.useCallback(t=>{const i=t.relatedTarget,g=Z.current;g&&(i&&g.contains(i)||He.current||(X?.trim?.()??"").length===0&&B.length===0&&(j||q(!1),A?.(!1)))},[j,A,X,B]),{getRootProps:Je,getInputProps:Qe,isDragActive:ke}=(0,Ke.useDropzone)({onDrop:(t,i)=>{if(t.length>0&&ve(t),i.length>0&&$){const g=i.map(({file:E,errors:y})=>{const v=y[0]?.code==="file-too-large"?"size":y[0]?.code==="file-invalid-type"?"type":"count";return{file:E,reason:v}});$(g)}},accept:te.length>0?te.reduce((t,i)=>(i.includes("/")?t[i]=[]:i.startsWith(".")&&(t[i]=[]),t),{}):void 0,multiple:k,maxSize:p,noClick:!0,noKeyboard:!0,disabled:!I||N}),Ie=e.useCallback(t=>{if(!(t instanceof Element))return!1;const i=t;return i.closest(".rt-ChatbarDropOverlay")?!0:!!i.closest('button, [role="button"], a[href], input, textarea, select, [contenteditable], [tabindex]:not([tabindex="-1"])')},[]),Xe=e.useCallback(t=>{N||Ie(t.target)||t.pointerType==="mouse"&&t.button!==0||(t.preventDefault(),Ce.current?.focus({preventScroll:!0}))},[N,Ie,Ce]);return e.createElement(We.Provider,{value:{open:Y,setOpen:t=>{j||q(t),A?.(t)},isOpenControlled:j,value:X,setValue:t=>{C||L(t),h?.(t)},isValueControlled:C,size:F,expandOn:P,minLines:O,maxLines:m,sendMode:b,disabled:N,readOnly:G,onSubmit:S,rootRef:Z,textareaRef:Ce,attachments:B,setAttachments:t=>{ie||De(t),K?.(t)},isAttachmentsControlled:ie,accept:J,multiple:k,maxAttachments:w,maxFileSize:p,paste:he,pasteAccept:Q,clearOnSubmit:fe,onAttachmentReject:$,dropzone:I,appendFiles:ve,appendFilesFromPaste:Ye,fileDialogOpenRef:He}},e.createElement(Ge,{...n,ref:t=>{typeof o=="function"?o(t):o&&(o.current=t),Z.current=t},className:(0,T.default)("rt-ChatbarRoot",`rt-r-size-${F}`,r),style:{position:"relative",width:oe,maxWidth:_,...d},"data-state":Y?"open":"closed","data-disabled":N?"":void 0,"data-readonly":G?"":void 0,"data-drop-active":I&&ke?"":void 0,"data-accent-color":H,"data-radius":U,"data-panel-background":u,"data-material":u,"aria-expanded":Y,onBlurCapture:_e},I&&e.createElement("input",{...Qe()}),e.createElement("div",{...I?Je():{},style:{width:"100%",height:"100%"},onPointerDown:Xe},e.createElement(Ue.Box,{className:(0,T.default)("rt-ChatbarBox",`rt-variant-${V??"surface"}`),style:{position:"relative"},"data-accent-color":H,"data-radius":U,"data-panel-background":u,"data-material":u},e.createElement("div",{className:"rt-ChatbarGrid"},c),I&&ke&&e.createElement("div",{className:"rt-ChatbarDropOverlay"},e.createElement("div",{className:"rt-ChatbarDropContent"},e.createElement(ue.Text,{color:"gray",size:F,weight:"medium"},"Drop files here to attach")))))))});Re.displayName="Chatbar.Root";const Pe=e.forwardRef((a,o)=>{const{className:r,style:d,asChild:c,onFocus:f,onInput:x,onChange:h,onPaste:l,onKeyDown:s,submitOnEnter:A=!1,rows:P,...O}=a,m=W(),{open:b,minLines:N,maxLines:G,expandOn:S,disabled:F,readOnly:V,setOpen:H,setValue:U,textareaRef:M,value:z,isValueControlled:oe,sendMode:_,paste:re,appendFilesFromPaste:se,size:pe}=m,K=e.useRef(0),J=e.useRef(0),k=e.useRef(0),w=e.useCallback(()=>{const n=M.current;if(!n)return;const u=window.getComputedStyle(n),C=parseFloat(u.lineHeight)||20,R=parseFloat(u.paddingTop)||0,L=parseFloat(u.paddingBottom)||0;K.current=C,J.current=R+L,k.current=Math.ceil(1*C)+R+L},[M]),p=e.useCallback(n=>{const u=M.current;if(!u)return;u.style.height="auto",K.current===0&&w();const C=K.current,R=J.current,L=n??b,X=L?N:1,j=L?G:1,be=Math.ceil(X*C)+R,q=Math.ceil(j*C)+R,Y=Math.max(u.scrollHeight,be),Z=Math.min(Y,q);u.style.height=`${Z}px`,Y>q?(u.style.overflowY="auto",u.style.maxHeight=`${q}px`):(u.style.overflowY="hidden",u.style.maxHeight="none")},[b,N,G,M,w]);Ae(()=>{p()},[p,z,b]),Ae(()=>{if(!(S==="overflow"||S==="both")||b)return;const n=M.current;if(!n)return;n.style.height="auto",k.current===0&&w(),n.scrollHeight>k.current+1&&(H(!0),p(!0),requestAnimationFrame(()=>p(!0)))},[z,S,b,H,M,w,p]),Ae(()=>{w(),p()},[w,p,pe]),e.useEffect(()=>{const n=M.current;if(!n||typeof ResizeObserver>"u")return;let u=K.current;const C=new ResizeObserver(()=>{const R=window.getComputedStyle(n),L=parseFloat(R.lineHeight)||20;L!==u&&(u=L,w(),requestAnimationFrame(()=>p()))});return C.observe(n),()=>C.disconnect()},[M,w,p]),e.useEffect(()=>{},[]);const he=e.useCallback(n=>{F||V||((S==="focus"||S==="both")&&!b&&H(!0),f?.(n))},[F,V,S,b,H,f]),Q=e.useCallback(n=>{const u=n.currentTarget,C=u.value;U(C),(S==="overflow"||S==="both")&&!b&&(u.style.height="auto",k.current===0&&w(),u.scrollHeight>k.current+1&&(H(!0),p(!0),requestAnimationFrame(()=>p(!0)))),requestAnimationFrame(()=>p()),h?.(n)},[S,b,H,U,h,p,w]),fe=e.useCallback(n=>{if(re){const C=Array.from(n.clipboardData?.items??[]).filter(R=>R.kind==="file").map(R=>R.getAsFile()).filter(R=>!!R);C.length>0&&(n.preventDefault(),se(C))}setTimeout(()=>{b?p():p(!0)},0),l?.(n)},[re,b,p,l,se]),$=e.useCallback(n=>{if(!A){s?.(n);return}if(n.key==="Enter"&&!n.shiftKey&&!n.altKey&&!n.ctrlKey&&!n.metaKey&&!n.nativeEvent.isComposing){if(F||V){s?.(n);return}if(_==="never"){s?.(n);return}const C=z.trim().length>0||m.attachments.length>0;if(_==="whenDirty"&&!C){s?.(n);return}n.preventDefault(),m.onSubmit?.({value:z,attachments:m.attachments}),m.clearOnSubmit&&(oe||U(""),m.setAttachments([]))}s?.(n)},[A,F,V,_,z,oe,U,m,s]),I=c?D.Slot:"textarea";return e.createElement("div",{className:(0,T.default)("rt-ChatbarField","rt-ChatbarTextarea",r)},e.createElement(I,{...O,ref:n=>{typeof o=="function"?o(n):o&&(o.current=n),M.current=n},className:"rt-ChatbarInput",value:z,onInput:x,onChange:Q,onFocus:he,onPaste:fe,onKeyDown:$,disabled:F,readOnly:V,rows:b?N:1,spellCheck:O.spellCheck??!0,autoCorrect:O.autoCorrect??"on",style:d}))});Pe.displayName="Chatbar.Textarea";const Ee=e.forwardRef((a,o)=>{const{children:r,asChild:d,style:c,className:f,...x}=a;return W().open?null:e.createElement(d?D.Slot:"div",{...x,ref:o,className:(0,T.default)("rt-ChatbarInlineStart",f),style:c},r)});Ee.displayName="Chatbar.InlineStart";const Te=e.forwardRef((a,o)=>{const{children:r,asChild:d,style:c,className:f,...x}=a;return W().open?null:e.createElement(d?D.Slot:"div",{...x,ref:o,className:(0,T.default)("rt-ChatbarInlineEnd",f),style:c},r)});Te.displayName="Chatbar.InlineEnd";const Oe=e.forwardRef((a,o)=>{const{asChild:r,forceMount:d,renderAttachment:c,className:f,style:x,...h}=a,l=W();return!(l.attachments.length>0)&&!d?null:e.createElement(r?D.Slot:"div",{...h,ref:o,className:(0,T.default)("rt-ChatbarAttachmentsRow",f),style:x,role:"list","aria-label":h["aria-label"]??"Attachments"},e.createElement(Ve.ScrollArea,{className:"rt-ChatbarScrollArea",scrollbars:"horizontal",size:"1"},e.createElement(ae.Flex,{align:"center",gap:"2",style:{minWidth:"fit-content"}},l.attachments.map(P=>e.createElement(de,{key:P.id,attachment:P,asChild:!!c},c?.(P))))))});Oe.displayName="Chatbar.AttachmentsRow";const de=e.forwardRef((a,o)=>{const{attachment:r,asChild:d,className:c,style:f,children:x,...h}=a,l=W(),s=d?D.Slot:"div",A=!!r.url&&r.type.startsWith("image/");return e.createElement(s,{...h,ref:o,className:(0,T.default)("rt-ChatbarAttachment",c),style:f,role:"listitem","data-kind":A?"image":"file",title:r.name},x??e.createElement(ae.Flex,{align:"center",gap:"2",pr:A?void 0:"6"},e.createElement("div",{className:"rt-ChatbarAttachmentPreview","aria-hidden":!0},A?e.createElement("img",{className:"rt-ChatbarAttachmentImage",src:r.url,alt:""}):e.createElement(me.FileTextIcon,null)),!A&&e.createElement(ae.Flex,{direction:"column",gap:"0",style:{minWidth:0}},e.createElement(ue.Text,{size:l.size,weight:"medium",style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},r.name),e.createElement(ue.Text,{size:"1",color:"gray"},Math.ceil(r.size/1024)," KB")),e.createElement(we.IconButton,{className:"rt-ChatbarAttachmentRemove","aria-label":`Remove ${r.name}`,size:"1",variant:"classic",highContrast:!0,color:"gray",onClick:()=>l.setAttachments(l.attachments.filter(P=>P.id!==r.id))},e.createElement(me.CloseIcon,null))))});de.displayName="Chatbar.Attachment";const Se=e.forwardRef((a,o)=>{const{asChild:r,accept:d,multiple:c,className:f,style:x,...h}=a,l=W(),s=e.useRef(null),A=r?D.Slot:"button",P=d??l.accept,O=(Array.isArray(P)?P:P?.split(",")??[]).join(",");return e.useEffect(()=>{const m=()=>{l.fileDialogOpenRef.current=!1};return window.addEventListener("focus",m),()=>window.removeEventListener("focus",m)},[l.fileDialogOpenRef]),e.createElement(e.Fragment,null,e.createElement(A,{...h,ref:o,className:(0,T.default)("rt-ChatbarAttachTrigger",f),style:x,type:h.type??"button","aria-label":h["aria-label"]??"Add attachments",onPointerDown:m=>{l.fileDialogOpenRef.current=!0,h.onPointerDown?.(m)},onMouseDown:m=>{l.fileDialogOpenRef.current=!0,h.onMouseDown?.(m)},onClick:m=>{l.fileDialogOpenRef.current=!0,s.current&&s.current.click(),h.onClick?.(m)}}),e.createElement("input",{ref:s,type:"file",accept:O,multiple:c??l.multiple,tabIndex:-1,style:{display:"none"},onChange:m=>{const b=Array.from(m.currentTarget.files??[]);b.length>0&&l.appendFiles(b),l.fileDialogOpenRef.current=!1,m.currentTarget.value=""}}))});Se.displayName="Chatbar.AttachTrigger";const Me=e.forwardRef((a,o)=>{const{asChild:r,children:d,className:c,style:f,...x}=a;return W().open?e.createElement(r?D.Slot:"div",{...x,ref:o,className:(0,T.default)("rt-ChatbarRow",c),style:f},e.createElement(ae.Flex,{align:"center",justify:"between",width:"100%"},d)):null});Me.displayName="Chatbar.Row";const Le=e.forwardRef((a,o)=>{const{className:r,style:d,...c}=a;return e.createElement("div",{...c,ref:o,className:(0,T.default)("rt-ChatbarRowStart",r),style:d})});Le.displayName="Chatbar.RowStart";const Ne=e.forwardRef((a,o)=>{const{className:r,style:d,...c}=a;return e.createElement("div",{...c,ref:o,className:(0,T.default)("rt-ChatbarRowEnd",r),style:d})});Ne.displayName="Chatbar.RowEnd";const Fe=e.forwardRef((a,o)=>{const{asChild:r,clearOnSend:d=!0,disabled:c,children:f,className:x,style:h,...l}=a,s=W(),P=s.value.trim().length>0||s.attachments.length>0,O=s.sendMode==="always"||s.sendMode==="whenDirty"&&P;if(s.sendMode==="never")return null;const m=b=>{s.disabled||s.readOnly||(s.onSubmit?.({value:s.value,attachments:s.attachments}),d&&(s.isValueControlled||s.setValue(""),s.clearOnSubmit&&s.setAttachments([])),l.onClick?.(b))};return e.createElement(we.IconButton,{...l,ref:o,size:s.size,variant:s.open?"solid":"ghost",disabled:c||s.disabled||s.readOnly,className:(0,T.default)("rt-ChatbarSend",x),style:{opacity:O?1:0,pointerEvents:O?"auto":"none",...h},asChild:r,onClick:m,"aria-label":l["aria-label"]??"Send"},f??e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-arrow-right-icon lucide-arrow-right"},e.createElement("path",{d:"M5 12h14"}),e.createElement("path",{d:"m12 5 7 7-7 7"})))});Fe.displayName="Chatbar.Send";
|
|
1
|
+
"use strict";var nt=Object.create;var ue=Object.defineProperty;var at=Object.getOwnPropertyDescriptor;var ot=Object.getOwnPropertyNames;var rt=Object.getPrototypeOf,st=Object.prototype.hasOwnProperty;var it=(a,o)=>{for(var r in o)ue(a,r,{get:o[r],enumerable:!0})},We=(a,o,r,u)=>{if(o&&typeof o=="object"||typeof o=="function")for(let c of ot(o))!st.call(a,c)&&c!==r&&ue(a,c,{get:()=>o[c],enumerable:!(u=at(o,c))||u.enumerable});return a};var Ve=(a,o,r)=>(r=a!=null?nt(rt(a)):{},We(o||!a||!a.__esModule?ue(r,"default",{value:a,enumerable:!0}):r,a)),lt=a=>We(ue({},"__esModule",{value:!0}),a);var ct={};it(ct,{AttachTrigger:()=>Le,Attachment:()=>me,AttachmentsRow:()=>Me,InlineEnd:()=>Oe,InlineStart:()=>Se,Root:()=>Ee,Row:()=>Fe,RowEnd:()=>Ne,RowStart:()=>He,Send:()=>De,Textarea:()=>Te});module.exports=lt(ct);var e=Ve(require("react")),T=Ve(require("classnames")),Pe=require("./icon-button.js"),pe=require("./icons.js"),ae=require("./flex.js"),Ke=require("./scroll-area.js"),D=require("./slot.js"),$e=require("./box.js"),dt=require("./card.js"),de=require("./text.js"),pt=require("./inset.js"),qe=require("react-dropzone");const we=typeof window<"u"?e.useLayoutEffect:e.useEffect,Ue=e.createContext(null),W=()=>{const a=e.useContext(Ue);if(!a)throw new Error("Chatbar context not found. Wrap parts in <Chatbar.Root>.");return a},Ee=e.forwardRef((a,o)=>{const{className:r,style:u,children:c,value:b,defaultValue:A="",onValueChange:h,open:l,defaultOpen:s=!1,onOpenChange:R,expandOn:P="both",minLines:S=1,maxLines:m=6,sendMode:C="whenDirty",disabled:F,readOnly:Y,onSubmit:O,size:H="2",variant:V,color:N,radius:U,panelBackground:M,material:z,width:oe,maxWidth:G,asChild:re,attachments:se,defaultAttachments:he=[],onAttachmentsChange:K,accept:_,multiple:k=!0,maxAttachments:w,maxFileSize:p,paste:fe=!0,pasteAccept:J,clearOnSubmit:be=!0,onAttachmentReject:$,dropzone:I=!0,apiRef:n,...d}=a,f=z||M,v=b!=null,[L,Ce]=e.useState(A),Q=v?b:L,j=l!=null,[X,q]=e.useState(s),Z=j?l:X,ge=e.useRef(null),ie=e.useRef(null),ye=e.useRef(!1),le="attachments"in a,[Ye,ze]=e.useState(he),B=le?se??[]:Ye,ee=e.useRef(new Set),ve=t=>Array.isArray(t)?t:typeof t=="string"?t.split(",").map(i=>i.trim()):[],te=ve(_),ke=ve(J).length>0?ve(J):te,xe=(t,i)=>{if(i.length===0)return!0;const g=t.type.toLowerCase(),E=t.name.toLowerCase();for(const y of i){const x=y.toLowerCase();if(x.includes("/")){const[ce,Re]=x.split("/"),[ne,tt]=g.split("/");if(ce==="*"||ce===ne&&(Re==="*"||Re===tt))return!0}else if(x.startsWith(".")&&E.endsWith(x))return!0}return!1},Ge=t=>{const i=[],g=[],E=typeof w=="number"?Math.max(w-B.length,0):1/0;for(const y of t){if(i.length>=E){g.push({file:y,reason:"count"});continue}if(typeof p=="number"&&y.size>p){g.push({file:y,reason:"size"});continue}if(!xe(y,te)){g.push({file:y,reason:"type"});continue}const x=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,ce=/\.(png|jpe?g|gif|webp|bmp|svg)$/i.test(y.name),ne=(y.type||"").toLowerCase().startsWith("image/")||ce?URL.createObjectURL(y):void 0;ne&&ee.current.add(ne),i.push({id:x,name:y.name,size:y.size,type:y.type,file:y,url:ne,status:"idle"})}return{accepted:i,rejected:g}},Ae=t=>{const{accepted:i,rejected:g}=Ge(t);if(i.length>0){const E=B.concat(i);le||ze(E),K?.(E),j||q(!0),R?.(!0)}g.length>0&&$?.(g)},_e=t=>{const i=x=>ke.length===0?xe(x,te):xe(x,ke),g=[],E=[],y=typeof w=="number"?Math.max(w-B.length,0):1/0;for(const x of t){if(g.length>=y){E.push({file:x,reason:"count"});continue}if(typeof p=="number"&&x.size>p){E.push({file:x,reason:"size"});continue}if(!i(x)){E.push({file:x,reason:"type"});continue}g.push(x)}g.length>0&&Ae(g),E.length>0&&$?.(E)};e.useEffect(()=>{const t=new Set(B.map(i=>i.url).filter(Boolean));for(const i of Array.from(ee.current))t.has(i)||(URL.revokeObjectURL(i),ee.current.delete(i))},[B]),e.useEffect(()=>()=>{for(const t of Array.from(ee.current))URL.revokeObjectURL(t);ee.current.clear()},[]);const Je=re?D.Slot:"div",Qe=e.useCallback(t=>{const i=t.relatedTarget,g=ge.current;g&&(i&&g.contains(i)||ye.current||(Q?.trim?.()??"").length===0&&B.length===0&&(j||q(!1),R?.(!1)))},[j,R,Q,B]),{getRootProps:Xe,getInputProps:Ze,isDragActive:Ie,open:je}=(0,qe.useDropzone)({onDrop:(t,i)=>{if(t.length>0&&Ae(t),i.length>0&&$){const g=i.map(({file:E,errors:y})=>{const x=y[0]?.code==="file-too-large"?"size":y[0]?.code==="file-invalid-type"?"type":"count";return{file:E,reason:x}});$(g)}},accept:te.length>0?te.reduce((t,i)=>(i.includes("/")?t[i]=[]:i.startsWith(".")&&(t[i]=[]),t),{}):void 0,multiple:k,maxSize:p,noClick:!0,noKeyboard:!0,disabled:!I||F});e.useImperativeHandle(n,()=>({focusTextarea:()=>ie.current?.focus({preventScroll:!0}),openFilePicker:()=>{ye.current=!0,je()}}),[je]);const Be=e.useCallback(t=>{if(!(t instanceof Element))return!1;const i=t;return i.closest(".rt-ChatbarDropOverlay")?!0:!!i.closest('button, [role="button"], a[href], input, textarea, select, [contenteditable], [tabindex]:not([tabindex="-1"])')},[]),et=e.useCallback(t=>{F||Be(t.target)||t.pointerType==="mouse"&&t.button!==0||(t.preventDefault(),ie.current?.focus({preventScroll:!0}))},[F,Be,ie]);return e.createElement(Ue.Provider,{value:{open:Z,setOpen:t=>{j||q(t),R?.(t)},isOpenControlled:j,value:Q,setValue:t=>{v||Ce(t),h?.(t)},isValueControlled:v,size:H,expandOn:P,minLines:S,maxLines:m,sendMode:C,disabled:F,readOnly:Y,onSubmit:O,rootRef:ge,textareaRef:ie,attachments:B,setAttachments:t=>{le||ze(t),K?.(t)},isAttachmentsControlled:le,accept:_,multiple:k,maxAttachments:w,maxFileSize:p,paste:fe,pasteAccept:J,clearOnSubmit:be,onAttachmentReject:$,dropzone:I,appendFiles:Ae,appendFilesFromPaste:_e,fileDialogOpenRef:ye}},e.createElement(Je,{...d,ref:t=>{typeof o=="function"?o(t):o&&(o.current=t),ge.current=t},className:(0,T.default)("rt-ChatbarRoot",`rt-r-size-${H}`,r),style:{position:"relative",width:oe,maxWidth:G,...u},"data-state":Z?"open":"closed","data-disabled":F?"":void 0,"data-readonly":Y?"":void 0,"data-drop-active":I&&Ie?"":void 0,"data-accent-color":N,"data-radius":U,"data-panel-background":f,"data-material":f,"aria-expanded":Z,onBlurCapture:Qe},I&&e.createElement("input",{...Ze()}),e.createElement("div",{...I?Xe():{},style:{width:"100%",height:"100%"},onPointerDown:et},e.createElement($e.Box,{className:(0,T.default)("rt-ChatbarBox",`rt-variant-${V??"surface"}`),style:{position:"relative"},"data-accent-color":N,"data-radius":U,"data-panel-background":f,"data-material":f},e.createElement("div",{className:"rt-ChatbarGrid"},c),I&&Ie&&e.createElement("div",{className:"rt-ChatbarDropOverlay"},e.createElement("div",{className:"rt-ChatbarDropContent"},e.createElement(de.Text,{color:"gray",size:H,weight:"medium"},"Drop files here to attach")))))))});Ee.displayName="Chatbar.Root";const Te=e.forwardRef((a,o)=>{const{className:r,style:u,asChild:c,onFocus:b,onInput:A,onChange:h,onPaste:l,onKeyDown:s,submitOnEnter:R=!1,rows:P,...S}=a,m=W(),{open:C,minLines:F,maxLines:Y,expandOn:O,disabled:H,readOnly:V,setOpen:N,setValue:U,textareaRef:M,value:z,isValueControlled:oe,sendMode:G,paste:re,appendFilesFromPaste:se,size:he}=m,K=e.useRef(0),_=e.useRef(0),k=e.useRef(0),w=e.useCallback(()=>{const n=M.current;if(!n)return;const d=window.getComputedStyle(n),f=parseFloat(d.lineHeight)||20,v=parseFloat(d.paddingTop)||0,L=parseFloat(d.paddingBottom)||0;K.current=f,_.current=v+L,k.current=Math.ceil(1*f)+v+L},[M]),p=e.useCallback(n=>{const d=M.current;if(!d)return;d.style.height="auto",K.current===0&&w();const f=K.current,v=_.current,L=n??C,Ce=L?F:1,Q=L?Y:1,j=Math.ceil(Ce*f)+v,X=Math.ceil(Q*f)+v,q=Math.max(d.scrollHeight,j),Z=Math.min(q,X);d.style.height=`${Z}px`,q>X?(d.style.overflowY="auto",d.style.maxHeight=`${X}px`):(d.style.overflowY="hidden",d.style.maxHeight="none")},[C,F,Y,M,w]);we(()=>{p()},[p,z,C]),we(()=>{if(!(O==="overflow"||O==="both")||C)return;const n=M.current;if(!n)return;n.style.height="auto",k.current===0&&w(),n.scrollHeight>k.current+1&&(N(!0),p(!0),requestAnimationFrame(()=>p(!0)))},[z,O,C,N,M,w,p]),we(()=>{w(),p()},[w,p,he]),e.useEffect(()=>{const n=M.current;if(!n||typeof ResizeObserver>"u")return;let d=K.current;const f=new ResizeObserver(()=>{const v=window.getComputedStyle(n),L=parseFloat(v.lineHeight)||20;L!==d&&(d=L,w(),requestAnimationFrame(()=>p()))});return f.observe(n),()=>f.disconnect()},[M,w,p]),e.useEffect(()=>{},[]);const fe=e.useCallback(n=>{H||V||((O==="focus"||O==="both")&&!C&&N(!0),b?.(n))},[H,V,O,C,N,b]),J=e.useCallback(n=>{const d=n.currentTarget,f=d.value;U(f),(O==="overflow"||O==="both")&&!C&&(d.style.height="auto",k.current===0&&w(),d.scrollHeight>k.current+1&&(N(!0),p(!0),requestAnimationFrame(()=>p(!0)))),requestAnimationFrame(()=>p()),h?.(n)},[O,C,N,U,h,p,w]),be=e.useCallback(n=>{if(re){const f=Array.from(n.clipboardData?.items??[]).filter(v=>v.kind==="file").map(v=>v.getAsFile()).filter(v=>!!v);f.length>0&&(n.preventDefault(),se(f))}setTimeout(()=>{C?p():p(!0)},0),l?.(n)},[re,C,p,l,se]),$=e.useCallback(n=>{if(!R){s?.(n);return}if(n.key==="Enter"&&!n.shiftKey&&!n.altKey&&!n.ctrlKey&&!n.metaKey&&!n.nativeEvent.isComposing){if(H||V){s?.(n);return}if(G==="never"){s?.(n);return}const f=z.trim().length>0||m.attachments.length>0;if(G==="whenDirty"&&!f){s?.(n);return}n.preventDefault(),m.onSubmit?.({value:z,attachments:m.attachments}),m.clearOnSubmit&&(oe||U(""),m.setAttachments([]))}s?.(n)},[R,H,V,G,z,oe,U,m,s]),I=c?D.Slot:"textarea";return e.createElement("div",{className:(0,T.default)("rt-ChatbarField","rt-ChatbarTextarea",r)},e.createElement(I,{...S,ref:n=>{typeof o=="function"?o(n):o&&(o.current=n),M.current=n},className:"rt-ChatbarInput",value:z,onInput:A,onChange:J,onFocus:fe,onPaste:be,onKeyDown:$,disabled:H,readOnly:V,rows:C?F:1,spellCheck:S.spellCheck??!0,autoCorrect:S.autoCorrect??"on",style:u}))});Te.displayName="Chatbar.Textarea";const Se=e.forwardRef((a,o)=>{const{children:r,asChild:u,style:c,className:b,...A}=a;return W().open?null:e.createElement(u?D.Slot:"div",{...A,ref:o,className:(0,T.default)("rt-ChatbarInlineStart",b),style:c},r)});Se.displayName="Chatbar.InlineStart";const Oe=e.forwardRef((a,o)=>{const{children:r,asChild:u,style:c,className:b,...A}=a;return W().open?null:e.createElement(u?D.Slot:"div",{...A,ref:o,className:(0,T.default)("rt-ChatbarInlineEnd",b),style:c},r)});Oe.displayName="Chatbar.InlineEnd";const Me=e.forwardRef((a,o)=>{const{asChild:r,forceMount:u,renderAttachment:c,className:b,style:A,...h}=a,l=W();return!(l.attachments.length>0)&&!u?null:e.createElement(r?D.Slot:"div",{...h,ref:o,className:(0,T.default)("rt-ChatbarAttachmentsRow",b),style:A,role:"list","aria-label":h["aria-label"]??"Attachments"},e.createElement(Ke.ScrollArea,{className:"rt-ChatbarScrollArea",scrollbars:"horizontal",size:"1"},e.createElement(ae.Flex,{align:"center",gap:"2",style:{minWidth:"fit-content"}},l.attachments.map(P=>e.createElement(me,{key:P.id,attachment:P,asChild:!!c},c?.(P))))))});Me.displayName="Chatbar.AttachmentsRow";const me=e.forwardRef((a,o)=>{const{attachment:r,asChild:u,className:c,style:b,children:A,...h}=a,l=W(),s=u?D.Slot:"div",R=!!r.url&&r.type.startsWith("image/");return e.createElement(s,{...h,ref:o,className:(0,T.default)("rt-ChatbarAttachment",c),style:b,role:"listitem","data-kind":R?"image":"file",title:r.name},A??e.createElement(ae.Flex,{align:"center",gap:"2",pr:R?void 0:"6"},e.createElement("div",{className:"rt-ChatbarAttachmentPreview","aria-hidden":!0},R?e.createElement("img",{className:"rt-ChatbarAttachmentImage",src:r.url,alt:""}):e.createElement(pe.FileTextIcon,null)),!R&&e.createElement(ae.Flex,{direction:"column",gap:"0",style:{minWidth:0}},e.createElement(de.Text,{size:l.size,weight:"medium",style:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},r.name),e.createElement(de.Text,{size:"1",color:"gray"},Math.ceil(r.size/1024)," KB")),e.createElement(Pe.IconButton,{className:"rt-ChatbarAttachmentRemove","aria-label":`Remove ${r.name}`,size:"1",variant:"classic",highContrast:!0,color:"gray",onClick:()=>l.setAttachments(l.attachments.filter(P=>P.id!==r.id))},e.createElement(pe.CloseIcon,null))))});me.displayName="Chatbar.Attachment";const Le=e.forwardRef((a,o)=>{const{asChild:r,accept:u,multiple:c,className:b,style:A,...h}=a,l=W(),s=e.useRef(null),R=r?D.Slot:"button",P=u??l.accept,S=(Array.isArray(P)?P:P?.split(",")??[]).join(",");return e.useEffect(()=>{const m=()=>{l.fileDialogOpenRef.current=!1};return window.addEventListener("focus",m),()=>window.removeEventListener("focus",m)},[l.fileDialogOpenRef]),e.createElement(e.Fragment,null,e.createElement(R,{...h,ref:o,className:(0,T.default)("rt-ChatbarAttachTrigger",b),style:A,type:h.type??"button","aria-label":h["aria-label"]??"Add attachments",onPointerDown:m=>{l.fileDialogOpenRef.current=!0,h.onPointerDown?.(m)},onMouseDown:m=>{l.fileDialogOpenRef.current=!0,h.onMouseDown?.(m)},onClick:m=>{l.fileDialogOpenRef.current=!0,s.current&&s.current.click(),h.onClick?.(m)}}),e.createElement("input",{ref:s,type:"file",accept:S,multiple:c??l.multiple,tabIndex:-1,style:{display:"none"},onChange:m=>{const C=Array.from(m.currentTarget.files??[]);C.length>0&&l.appendFiles(C),l.fileDialogOpenRef.current=!1,m.currentTarget.value=""}}))});Le.displayName="Chatbar.AttachTrigger";const Fe=e.forwardRef((a,o)=>{const{asChild:r,children:u,className:c,style:b,...A}=a;return W().open?e.createElement(r?D.Slot:"div",{...A,ref:o,className:(0,T.default)("rt-ChatbarRow",c),style:b},e.createElement(ae.Flex,{align:"center",justify:"between",width:"100%"},u)):null});Fe.displayName="Chatbar.Row";const He=e.forwardRef((a,o)=>{const{className:r,style:u,...c}=a;return e.createElement("div",{...c,ref:o,className:(0,T.default)("rt-ChatbarRowStart",r),style:u})});He.displayName="Chatbar.RowStart";const Ne=e.forwardRef((a,o)=>{const{className:r,style:u,...c}=a;return e.createElement("div",{...c,ref:o,className:(0,T.default)("rt-ChatbarRowEnd",r),style:u})});Ne.displayName="Chatbar.RowEnd";const De=e.forwardRef((a,o)=>{const{asChild:r,clearOnSend:u=!0,disabled:c,children:b,className:A,style:h,...l}=a,s=W(),P=s.value.trim().length>0||s.attachments.length>0,S=s.sendMode==="always"||s.sendMode==="whenDirty"&&P;if(s.sendMode==="never")return null;const m=C=>{s.disabled||s.readOnly||(s.onSubmit?.({value:s.value,attachments:s.attachments}),u&&(s.isValueControlled||s.setValue(""),s.clearOnSubmit&&s.setAttachments([])),l.onClick?.(C))};return e.createElement(Pe.IconButton,{...l,ref:o,size:s.size,variant:s.open?"solid":"ghost",disabled:c||s.disabled||s.readOnly,className:(0,T.default)("rt-ChatbarSend",A),style:{opacity:S?1:0,pointerEvents:S?"auto":"none",...h},asChild:r,onClick:m,"aria-label":l["aria-label"]??"Send"},b??e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"lucide lucide-arrow-right-icon lucide-arrow-right"},e.createElement("path",{d:"M5 12h14"}),e.createElement("path",{d:"m12 5 7 7-7 7"})))});De.displayName="Chatbar.Send";
|
|
2
2
|
//# sourceMappingURL=chatbar.js.map
|