@nonoun/native-ai 1.0.18 → 1.0.21

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.
Files changed (142) hide show
  1. package/dist/native-ai.js +1673 -225
  2. package/dist/register.js +813 -112
  3. package/package.json +1 -1
  4. package/dist/a2ui/a2ui-diagnostics.d.ts +0 -31
  5. package/dist/a2ui/a2ui-diagnostics.d.ts.map +0 -1
  6. package/dist/a2ui/a2ui-element.d.ts +0 -30
  7. package/dist/a2ui/a2ui-element.d.ts.map +0 -1
  8. package/dist/a2ui/a2ui-presets.d.ts +0 -22
  9. package/dist/a2ui/a2ui-presets.d.ts.map +0 -1
  10. package/dist/a2ui/adapters/a2a-adapter.d.ts +0 -38
  11. package/dist/a2ui/adapters/a2a-adapter.d.ts.map +0 -1
  12. package/dist/a2ui/adapters/adapter-types.d.ts +0 -19
  13. package/dist/a2ui/adapters/adapter-types.d.ts.map +0 -1
  14. package/dist/a2ui/adapters/ag-ui-adapter.d.ts +0 -42
  15. package/dist/a2ui/adapters/ag-ui-adapter.d.ts.map +0 -1
  16. package/dist/a2ui/adapters/direct-adapter.d.ts +0 -30
  17. package/dist/a2ui/adapters/direct-adapter.d.ts.map +0 -1
  18. package/dist/a2ui/adapters/index.d.ts +0 -8
  19. package/dist/a2ui/adapters/index.d.ts.map +0 -1
  20. package/dist/a2ui/index.d.ts +0 -15
  21. package/dist/a2ui/index.d.ts.map +0 -1
  22. package/dist/a2ui/install.d.ts +0 -23
  23. package/dist/a2ui/install.d.ts.map +0 -1
  24. package/dist/a2ui/protocol/a2ui-adapter.d.ts +0 -52
  25. package/dist/a2ui/protocol/a2ui-adapter.d.ts.map +0 -1
  26. package/dist/a2ui/protocol/a2ui-component-map.d.ts +0 -75
  27. package/dist/a2ui/protocol/a2ui-component-map.d.ts.map +0 -1
  28. package/dist/a2ui/protocol/a2ui-converter.d.ts +0 -37
  29. package/dist/a2ui/protocol/a2ui-converter.d.ts.map +0 -1
  30. package/dist/a2ui/protocol/a2ui-surface.d.ts +0 -34
  31. package/dist/a2ui/protocol/a2ui-surface.d.ts.map +0 -1
  32. package/dist/a2ui/protocol/a2ui-transport.d.ts +0 -80
  33. package/dist/a2ui/protocol/a2ui-transport.d.ts.map +0 -1
  34. package/dist/a2ui/protocol/a2ui-types.d.ts +0 -104
  35. package/dist/a2ui/protocol/a2ui-types.d.ts.map +0 -1
  36. package/dist/a2ui/protocol/index.d.ts +0 -13
  37. package/dist/a2ui/protocol/index.d.ts.map +0 -1
  38. package/dist/a2ui/protocol/kernel-bridge.d.ts +0 -114
  39. package/dist/a2ui/protocol/kernel-bridge.d.ts.map +0 -1
  40. package/dist/a2ui/register.d.ts +0 -12
  41. package/dist/a2ui/register.d.ts.map +0 -1
  42. package/dist/a2ui/session/agent-session.d.ts +0 -44
  43. package/dist/a2ui/session/agent-session.d.ts.map +0 -1
  44. package/dist/a2ui/session/catalog.d.ts +0 -41
  45. package/dist/a2ui/session/catalog.d.ts.map +0 -1
  46. package/dist/a2ui/session/event-emitter.d.ts +0 -17
  47. package/dist/a2ui/session/event-emitter.d.ts.map +0 -1
  48. package/dist/a2ui/session/index.d.ts +0 -9
  49. package/dist/a2ui/session/index.d.ts.map +0 -1
  50. package/dist/a2ui/session/session-manager.d.ts +0 -33
  51. package/dist/a2ui/session/session-manager.d.ts.map +0 -1
  52. package/dist/a2ui/session/surface-registry.d.ts +0 -32
  53. package/dist/a2ui/session/surface-registry.d.ts.map +0 -1
  54. package/dist/a2ui/session/types.d.ts +0 -27
  55. package/dist/a2ui/session/types.d.ts.map +0 -1
  56. package/dist/chat/avatar/chat-avatar-element.d.ts +0 -18
  57. package/dist/chat/avatar/chat-avatar-element.d.ts.map +0 -1
  58. package/dist/chat/avatar/index.d.ts +0 -2
  59. package/dist/chat/avatar/index.d.ts.map +0 -1
  60. package/dist/chat/avatar/n-chat-avatar.d.ts +0 -2
  61. package/dist/chat/avatar/n-chat-avatar.d.ts.map +0 -1
  62. package/dist/chat/chat-input-element.d.ts +0 -32
  63. package/dist/chat/chat-input-element.d.ts.map +0 -1
  64. package/dist/chat/chat-panel-element.d.ts +0 -100
  65. package/dist/chat/chat-panel-element.d.ts.map +0 -1
  66. package/dist/chat/feed/chat-feed-element.d.ts +0 -48
  67. package/dist/chat/feed/chat-feed-element.d.ts.map +0 -1
  68. package/dist/chat/feed/index.d.ts +0 -2
  69. package/dist/chat/feed/index.d.ts.map +0 -1
  70. package/dist/chat/feed/n-chat-feed.d.ts +0 -2
  71. package/dist/chat/feed/n-chat-feed.d.ts.map +0 -1
  72. package/dist/chat/gateway/adapter-chatgpt.d.ts +0 -67
  73. package/dist/chat/gateway/adapter-chatgpt.d.ts.map +0 -1
  74. package/dist/chat/gateway/adapter-claude.d.ts +0 -68
  75. package/dist/chat/gateway/adapter-claude.d.ts.map +0 -1
  76. package/dist/chat/gateway/adapter-mock.d.ts +0 -3
  77. package/dist/chat/gateway/adapter-mock.d.ts.map +0 -1
  78. package/dist/chat/gateway/adapter.d.ts +0 -71
  79. package/dist/chat/gateway/adapter.d.ts.map +0 -1
  80. package/dist/chat/gateway/controller.d.ts +0 -46
  81. package/dist/chat/gateway/controller.d.ts.map +0 -1
  82. package/dist/chat/gateway/index.d.ts +0 -9
  83. package/dist/chat/gateway/index.d.ts.map +0 -1
  84. package/dist/chat/gateway/runtime.d.ts +0 -53
  85. package/dist/chat/gateway/runtime.d.ts.map +0 -1
  86. package/dist/chat/gateway/types.d.ts +0 -73
  87. package/dist/chat/gateway/types.d.ts.map +0 -1
  88. package/dist/chat/gateway.d.ts +0 -2
  89. package/dist/chat/gateway.d.ts.map +0 -1
  90. package/dist/chat/index.d.ts +0 -17
  91. package/dist/chat/index.d.ts.map +0 -1
  92. package/dist/chat/message/chat-input-structured-element.d.ts +0 -43
  93. package/dist/chat/message/chat-input-structured-element.d.ts.map +0 -1
  94. package/dist/chat/message/chat-message-activity-element.d.ts +0 -32
  95. package/dist/chat/message/chat-message-activity-element.d.ts.map +0 -1
  96. package/dist/chat/message/chat-message-element.d.ts +0 -44
  97. package/dist/chat/message/chat-message-element.d.ts.map +0 -1
  98. package/dist/chat/message/chat-message-genui-element.d.ts +0 -45
  99. package/dist/chat/message/chat-message-genui-element.d.ts.map +0 -1
  100. package/dist/chat/message/chat-message-seed-element.d.ts +0 -33
  101. package/dist/chat/message/chat-message-seed-element.d.ts.map +0 -1
  102. package/dist/chat/message/chat-message-text-element.d.ts +0 -37
  103. package/dist/chat/message/chat-message-text-element.d.ts.map +0 -1
  104. package/dist/chat/message/chat-messages-element.d.ts +0 -39
  105. package/dist/chat/message/chat-messages-element.d.ts.map +0 -1
  106. package/dist/chat/message/index.d.ts +0 -8
  107. package/dist/chat/message/index.d.ts.map +0 -1
  108. package/dist/chat/message/n-chat-message.d.ts +0 -2
  109. package/dist/chat/message/n-chat-message.d.ts.map +0 -1
  110. package/dist/chat/register.d.ts +0 -13
  111. package/dist/chat/register.d.ts.map +0 -1
  112. package/dist/chat/stream/classify.d.ts +0 -19
  113. package/dist/chat/stream/classify.d.ts.map +0 -1
  114. package/dist/chat/stream/create-transport.d.ts +0 -19
  115. package/dist/chat/stream/create-transport.d.ts.map +0 -1
  116. package/dist/chat/stream/index.d.ts +0 -9
  117. package/dist/chat/stream/index.d.ts.map +0 -1
  118. package/dist/chat/stream/parse-json.d.ts +0 -9
  119. package/dist/chat/stream/parse-json.d.ts.map +0 -1
  120. package/dist/chat/stream/parse-ndjson.d.ts +0 -9
  121. package/dist/chat/stream/parse-ndjson.d.ts.map +0 -1
  122. package/dist/chat/stream/parse-sse.d.ts +0 -9
  123. package/dist/chat/stream/parse-sse.d.ts.map +0 -1
  124. package/dist/chat/stream/types.d.ts +0 -42
  125. package/dist/chat/stream/types.d.ts.map +0 -1
  126. package/dist/chat/telemetry/emitter.d.ts +0 -20
  127. package/dist/chat/telemetry/emitter.d.ts.map +0 -1
  128. package/dist/chat/telemetry/events.d.ts +0 -11
  129. package/dist/chat/telemetry/events.d.ts.map +0 -1
  130. package/dist/chat/telemetry/index.d.ts +0 -5
  131. package/dist/chat/telemetry/index.d.ts.map +0 -1
  132. package/dist/chat/telemetry/redactor.d.ts +0 -17
  133. package/dist/chat/telemetry/redactor.d.ts.map +0 -1
  134. package/dist/chat/telemetry/types.d.ts +0 -27
  135. package/dist/chat/telemetry/types.d.ts.map +0 -1
  136. package/dist/gateway.d.ts +0 -2
  137. package/dist/gateway.d.ts.map +0 -1
  138. package/dist/index.d.ts +0 -5
  139. package/dist/index.d.ts.map +0 -1
  140. package/dist/native-ai.css +0 -1422
  141. package/dist/register.d.ts +0 -12
  142. package/dist/register.d.ts.map +0 -1
package/dist/register.js CHANGED
@@ -299,7 +299,14 @@ const k = new me([
299
299
  a2uiType: "Text",
300
300
  nativeTag: "span",
301
301
  childStrategy: "textContent",
302
- defaultAttributes: { class: "text" }
302
+ defaultAttributes: { class: "text" },
303
+ events: [],
304
+ properties: [{
305
+ attr: "variant",
306
+ type: "'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'heading' | 'caption' | 'body'",
307
+ note: "Resolved to HTML tag by textVariantTag()"
308
+ }],
309
+ methods: []
303
310
  },
304
311
  {
305
312
  a2uiType: "Button",
@@ -314,7 +321,21 @@ const k = new me([
314
321
  ghost: "ghost",
315
322
  outline: "outline",
316
323
  danger: "primary"
317
- }
324
+ },
325
+ events: [{
326
+ event: "native:press",
327
+ description: "Fires on click or keyboard activation (Enter/Space)."
328
+ }],
329
+ properties: [{
330
+ attr: "disabled",
331
+ type: "boolean",
332
+ reactive: !0
333
+ }, {
334
+ attr: "type",
335
+ type: "'button' | 'submit' | 'reset'",
336
+ reactive: !0
337
+ }],
338
+ methods: []
318
339
  },
319
340
  {
320
341
  a2uiType: "TextField",
@@ -325,7 +346,78 @@ const k = new me([
325
346
  propertyMap: {
326
347
  value: "value",
327
348
  placeholder: "placeholder"
328
- }
349
+ },
350
+ events: [
351
+ {
352
+ event: "native:input",
353
+ detail: { value: "string" },
354
+ description: "Fires on each keystroke."
355
+ },
356
+ {
357
+ event: "native:change",
358
+ detail: { value: "string" },
359
+ description: "Fires on blur after value changed."
360
+ },
361
+ {
362
+ event: "native:format",
363
+ detail: {
364
+ type: "string",
365
+ value: "string"
366
+ },
367
+ description: "Fires after text formatting is applied."
368
+ }
369
+ ],
370
+ properties: [
371
+ {
372
+ attr: "value",
373
+ type: "string",
374
+ reactive: !0
375
+ },
376
+ {
377
+ attr: "placeholder",
378
+ type: "string",
379
+ reactive: !0
380
+ },
381
+ {
382
+ attr: "disabled",
383
+ type: "boolean",
384
+ reactive: !0
385
+ },
386
+ {
387
+ attr: "readonly",
388
+ type: "boolean",
389
+ reactive: !0
390
+ },
391
+ {
392
+ attr: "required",
393
+ type: "boolean",
394
+ reactive: !0
395
+ },
396
+ {
397
+ attr: "pattern",
398
+ type: "string"
399
+ },
400
+ {
401
+ attr: "type",
402
+ type: "'text' | 'password'",
403
+ reactive: !0
404
+ },
405
+ {
406
+ attr: "formatting",
407
+ type: "string",
408
+ note: "Space-separated format list (code, bold, italic)"
409
+ }
410
+ ],
411
+ methods: [{
412
+ name: "select",
413
+ returns: "void",
414
+ description: "Select all text in the input."
415
+ }, {
416
+ name: "focus",
417
+ params: { options: "FocusOptions" },
418
+ returns: "void",
419
+ description: "Focus the editing surface."
420
+ }]
329
421
  },
330
422
  {
331
423
  a2uiType: "TextArea",
@@ -340,21 +432,172 @@ const k = new me([
340
432
  value: "value",
341
433
  placeholder: "placeholder",
342
434
  rows: "rows"
343
- }
435
+ },
436
+ events: [
437
+ {
438
+ event: "native:input",
439
+ detail: { value: "string" },
440
+ description: "Fires on each keystroke."
441
+ },
442
+ {
443
+ event: "native:change",
444
+ detail: { value: "string" },
445
+ description: "Fires on blur after value changed."
446
+ },
447
+ {
448
+ event: "native:format",
449
+ detail: {
450
+ type: "string",
451
+ value: "string"
452
+ },
453
+ description: "Fires after text formatting is applied."
454
+ }
455
+ ],
456
+ properties: [
457
+ {
458
+ attr: "value",
459
+ type: "string",
460
+ reactive: !0
461
+ },
462
+ {
463
+ attr: "placeholder",
464
+ type: "string",
465
+ reactive: !0
466
+ },
467
+ {
468
+ attr: "disabled",
469
+ type: "boolean",
470
+ reactive: !0
471
+ },
472
+ {
473
+ attr: "readonly",
474
+ type: "boolean",
475
+ reactive: !0
476
+ },
477
+ {
478
+ attr: "required",
479
+ type: "boolean",
480
+ reactive: !0
481
+ },
482
+ {
483
+ attr: "rows",
484
+ type: "number",
485
+ reactive: !0
486
+ },
487
+ {
488
+ attr: "maxlength",
489
+ type: "number"
490
+ },
491
+ {
492
+ attr: "autogrow",
493
+ type: "boolean",
494
+ reactive: !0
495
+ },
496
+ {
497
+ attr: "pattern",
498
+ type: "string"
499
+ },
500
+ {
501
+ attr: "formatting",
502
+ type: "string",
503
+ note: "Space-separated format list (code, bold, italic)"
504
+ }
505
+ ],
506
+ methods: [{
507
+ name: "applyFormat",
508
+ params: { type: "string" },
509
+ returns: "void",
510
+ description: "Apply or toggle a text format on the current selection."
511
+ }]
344
512
  },
345
513
  {
346
514
  a2uiType: "CheckBox",
347
515
  nativeTag: "n-checkbox",
348
516
  childStrategy: "textContent",
349
517
  actionEvent: "native:change",
350
- defaultAttributes: { size: "sm" }
518
+ defaultAttributes: { size: "sm" },
519
+ events: [{
520
+ event: "native:change",
521
+ detail: {
522
+ checked: "boolean",
523
+ value: "string"
524
+ },
525
+ description: "Fires when checked state toggles."
526
+ }],
527
+ properties: [
528
+ {
529
+ attr: "checked",
530
+ type: "boolean",
531
+ reactive: !0
532
+ },
533
+ {
534
+ attr: "indeterminate",
535
+ type: "boolean",
536
+ reactive: !0
537
+ },
538
+ {
539
+ attr: "disabled",
540
+ type: "boolean",
541
+ reactive: !0
542
+ },
543
+ {
544
+ attr: "name",
545
+ type: "string"
546
+ },
547
+ {
548
+ attr: "value",
549
+ type: "string",
550
+ note: "Defaults to 'on'"
551
+ },
552
+ {
553
+ attr: "required",
554
+ type: "boolean",
555
+ reactive: !0
556
+ }
557
+ ],
558
+ methods: []
351
559
  },
352
560
  {
353
561
  a2uiType: "Switch",
354
562
  nativeTag: "n-switch",
355
563
  childStrategy: "textContent",
356
564
  actionEvent: "native:change",
357
- defaultAttributes: { size: "sm" }
565
+ defaultAttributes: { size: "sm" },
566
+ events: [{
567
+ event: "native:change",
568
+ detail: {
569
+ checked: "boolean",
570
+ value: "string"
571
+ },
572
+ description: "Fires when toggled on/off."
573
+ }],
574
+ properties: [
575
+ {
576
+ attr: "checked",
577
+ type: "boolean",
578
+ reactive: !0
579
+ },
580
+ {
581
+ attr: "disabled",
582
+ type: "boolean",
583
+ reactive: !0
584
+ },
585
+ {
586
+ attr: "name",
587
+ type: "string"
588
+ },
589
+ {
590
+ attr: "value",
591
+ type: "string",
592
+ note: "Defaults to 'on'"
593
+ },
594
+ {
595
+ attr: "required",
596
+ type: "boolean",
597
+ reactive: !0
598
+ }
599
+ ],
600
+ methods: []
358
601
  },
359
602
  {
360
603
  a2uiType: "ChoicePicker",
@@ -362,7 +605,53 @@ const k = new me([
362
605
  childStrategy: "children",
363
606
  actionEvent: "native:change",
364
607
  defaultAttributes: { size: "sm" },
365
- propertyMap: { placeholder: "placeholder" }
608
+ propertyMap: { placeholder: "placeholder" },
609
+ events: [{
610
+ event: "native:change",
611
+ detail: {
612
+ value: "string",
613
+ label: "string",
614
+ previousValue: "string"
615
+ },
616
+ description: "Fires when selection changes."
617
+ }],
618
+ properties: [
619
+ {
620
+ attr: "value",
621
+ type: "string",
622
+ reactive: !0
623
+ },
624
+ {
625
+ attr: "disabled",
626
+ type: "boolean",
627
+ reactive: !0
628
+ },
629
+ {
630
+ attr: "name",
631
+ type: "string"
632
+ },
633
+ {
634
+ attr: "options",
635
+ type: "string",
636
+ note: "JSON array: [{ value, label }]"
637
+ },
638
+ {
639
+ attr: "src",
640
+ type: "string",
641
+ note: "URL for fetching options"
642
+ },
643
+ {
644
+ attr: "placeholder",
645
+ type: "string",
646
+ reactive: !0
647
+ },
648
+ {
649
+ attr: "required",
650
+ type: "boolean",
651
+ reactive: !0
652
+ }
653
+ ],
654
+ methods: []
366
655
  },
367
656
  {
368
657
  a2uiType: "Slider",
@@ -374,7 +663,37 @@ const k = new me([
374
663
  min: "min",
375
664
  max: "max",
376
665
  value: "value"
377
- }
666
+ },
667
+ events: [{
668
+ event: "native:change",
669
+ detail: { value: "number" },
670
+ description: "Fires when slider value changes."
671
+ }],
672
+ properties: [
673
+ {
674
+ attr: "value",
675
+ type: "number",
676
+ reactive: !0
677
+ },
678
+ {
679
+ attr: "min",
680
+ type: "number"
681
+ },
682
+ {
683
+ attr: "max",
684
+ type: "number"
685
+ },
686
+ {
687
+ attr: "step",
688
+ type: "number"
689
+ },
690
+ {
691
+ attr: "disabled",
692
+ type: "boolean",
693
+ reactive: !0
694
+ }
695
+ ],
696
+ methods: []
378
697
  },
379
698
  {
380
699
  a2uiType: "DateTimeInput",
@@ -386,60 +705,226 @@ const k = new me([
386
705
  value: "value",
387
706
  min: "min",
388
707
  max: "max"
389
- }
708
+ },
709
+ events: [{
710
+ event: "native:change",
711
+ detail: { value: "string" },
712
+ description: "Fires when date/time value changes."
713
+ }],
714
+ properties: [
715
+ {
716
+ attr: "value",
717
+ type: "string",
718
+ reactive: !0
719
+ },
720
+ {
721
+ attr: "min",
722
+ type: "string"
723
+ },
724
+ {
725
+ attr: "max",
726
+ type: "string"
727
+ },
728
+ {
729
+ attr: "disabled",
730
+ type: "boolean",
731
+ reactive: !0
732
+ },
733
+ {
734
+ attr: "required",
735
+ type: "boolean",
736
+ reactive: !0
737
+ }
738
+ ],
739
+ methods: []
390
740
  },
391
741
  {
392
742
  a2uiType: "Row",
393
743
  nativeTag: "n-stack",
394
744
  childStrategy: "children",
395
- defaultAttributes: { direction: "row" }
745
+ defaultAttributes: { direction: "row" },
746
+ events: [],
747
+ properties: [{
748
+ attr: "gap",
749
+ type: "string"
750
+ }, {
751
+ attr: "align",
752
+ type: "string"
753
+ }],
754
+ methods: []
396
755
  },
397
756
  {
398
757
  a2uiType: "Column",
399
758
  nativeTag: "n-stack",
400
- childStrategy: "children"
759
+ childStrategy: "children",
760
+ events: [],
761
+ properties: [{
762
+ attr: "gap",
763
+ type: "string"
764
+ }, {
765
+ attr: "align",
766
+ type: "string"
767
+ }],
768
+ methods: []
401
769
  },
402
770
  {
403
771
  a2uiType: "Card",
404
772
  nativeTag: "n-container",
405
- childStrategy: "children"
773
+ childStrategy: "children",
774
+ events: [],
775
+ properties: [{
776
+ attr: "bordered",
777
+ type: "boolean"
778
+ }, {
779
+ attr: "data-kind",
780
+ type: "'panel'"
781
+ }],
782
+ methods: []
406
783
  },
407
784
  {
408
785
  a2uiType: "Header",
409
786
  nativeTag: "n-header",
410
- childStrategy: "children"
787
+ childStrategy: "children",
788
+ events: [],
789
+ properties: [],
790
+ methods: []
411
791
  },
412
792
  {
413
793
  a2uiType: "Body",
414
794
  nativeTag: "n-body",
415
- childStrategy: "children"
795
+ childStrategy: "children",
796
+ events: [],
797
+ properties: [],
798
+ methods: []
416
799
  },
417
800
  {
418
801
  a2uiType: "Footer",
419
802
  nativeTag: "n-footer",
420
- childStrategy: "children"
803
+ childStrategy: "children",
804
+ events: [],
805
+ properties: [],
806
+ methods: []
421
807
  },
422
808
  {
423
809
  a2uiType: "Modal",
424
810
  nativeTag: "n-dialog",
425
811
  childStrategy: "children",
426
- actionEvent: "native:dismiss"
812
+ actionEvent: "native:dismiss",
813
+ events: [{
814
+ event: "close",
815
+ description: "Fires when the dialog is closed."
816
+ }],
817
+ properties: [{
818
+ attr: "no-close-on-escape",
819
+ type: "boolean"
820
+ }, {
821
+ attr: "no-close-on-backdrop",
822
+ type: "boolean"
823
+ }],
824
+ methods: [{
825
+ name: "showModal",
826
+ returns: "void",
827
+ description: "Open the dialog in modal mode."
828
+ }, {
829
+ name: "close",
830
+ returns: "void",
831
+ description: "Close the dialog."
832
+ }]
427
833
  },
428
834
  {
429
835
  a2uiType: "Tabs",
430
836
  nativeTag: "n-tabs",
431
- childStrategy: "children"
837
+ childStrategy: "children",
838
+ events: [{
839
+ event: "native:change",
840
+ detail: {
841
+ value: "string",
842
+ label: "string"
843
+ },
844
+ description: "Fires when the active tab changes."
845
+ }],
846
+ properties: [
847
+ {
848
+ attr: "value",
849
+ type: "string",
850
+ reactive: !0
851
+ },
852
+ {
853
+ attr: "disabled",
854
+ type: "boolean",
855
+ reactive: !0
856
+ },
857
+ {
858
+ attr: "orientation",
859
+ type: "'horizontal' | 'vertical'",
860
+ reactive: !0
861
+ }
862
+ ],
863
+ methods: []
432
864
  },
433
865
  {
434
866
  a2uiType: "List",
435
867
  nativeTag: "n-listbox",
436
868
  childStrategy: "children",
437
- actionEvent: "native:select"
869
+ actionEvent: "native:select",
870
+ events: [{
871
+ event: "native:change",
872
+ detail: {
873
+ value: "string",
874
+ label: "string"
875
+ },
876
+ description: "Fires when the selected option changes."
877
+ }],
878
+ properties: [
879
+ {
880
+ attr: "disabled",
881
+ type: "boolean",
882
+ reactive: !0
883
+ },
884
+ {
885
+ attr: "multiple",
886
+ type: "boolean",
887
+ reactive: !0
888
+ },
889
+ {
890
+ attr: "virtual-focus",
891
+ type: "boolean"
892
+ }
893
+ ],
894
+ methods: [{
895
+ name: "getActiveOption",
896
+ returns: "Element | null",
897
+ description: "Returns the currently keyboard-focused option."
898
+ }]
438
899
  },
439
900
  {
440
901
  a2uiType: "ListItem",
441
902
  nativeTag: "n-option",
442
- childStrategy: "textContent"
903
+ childStrategy: "textContent",
904
+ events: [{
905
+ event: "native:select",
906
+ detail: {
907
+ value: "string",
908
+ label: "string"
909
+ },
910
+ description: "Fires when this option is clicked."
911
+ }],
912
+ properties: [
913
+ {
914
+ attr: "value",
915
+ type: "string"
916
+ },
917
+ {
918
+ attr: "disabled",
919
+ type: "boolean"
920
+ },
921
+ {
922
+ attr: "label",
923
+ type: "string",
924
+ note: "Falls back to textContent"
925
+ }
926
+ ],
927
+ methods: []
443
928
  },
444
929
  {
445
930
  a2uiType: "Image",
@@ -448,24 +933,55 @@ const k = new me([
448
933
  propertyMap: {
449
934
  url: "src",
450
935
  alt: "alt"
451
- }
936
+ },
937
+ events: [],
938
+ properties: [{
939
+ attr: "src",
940
+ type: "string"
941
+ }, {
942
+ attr: "alt",
943
+ type: "string"
944
+ }],
945
+ methods: []
452
946
  },
453
947
  {
454
948
  a2uiType: "Icon",
455
949
  nativeTag: "n-icon",
456
950
  childStrategy: "none",
457
951
  defaultAttributes: { "aria-hidden": "true" },
458
- propertyMap: { name: "name" }
952
+ propertyMap: { name: "name" },
953
+ events: [],
954
+ properties: [{
955
+ attr: "name",
956
+ type: "string",
957
+ reactive: !0
958
+ }],
959
+ methods: []
459
960
  },
460
961
  {
461
962
  a2uiType: "Divider",
462
963
  nativeTag: "n-divider",
463
- childStrategy: "none"
964
+ childStrategy: "none",
965
+ events: [],
966
+ properties: [{
967
+ attr: "orientation",
968
+ type: "'horizontal' | 'vertical'"
969
+ }],
970
+ methods: []
464
971
  },
465
972
  {
466
973
  a2uiType: "Badge",
467
974
  nativeTag: "n-badge",
468
- childStrategy: "textContent"
975
+ childStrategy: "textContent",
976
+ events: [],
977
+ properties: [{
978
+ attr: "intent",
979
+ type: "'info' | 'success' | 'warning' | 'danger'"
980
+ }, {
981
+ attr: "dot",
982
+ type: "boolean"
983
+ }],
984
+ methods: []
469
985
  },
470
986
  {
471
987
  a2uiType: "Avatar",
@@ -474,14 +990,69 @@ const k = new me([
474
990
  propertyMap: {
475
991
  src: "src",
476
992
  alt: "alt"
477
- }
993
+ },
994
+ events: [],
995
+ properties: [{
996
+ attr: "src",
997
+ type: "string"
998
+ }, {
999
+ attr: "alt",
1000
+ type: "string"
1001
+ }],
1002
+ methods: []
478
1003
  },
479
1004
  {
480
1005
  a2uiType: "Select",
481
1006
  nativeTag: "n-select",
482
1007
  childStrategy: "children",
483
1008
  actionEvent: "native:change",
484
- propertyMap: { placeholder: "placeholder" }
1009
+ propertyMap: { placeholder: "placeholder" },
1010
+ events: [{
1011
+ event: "native:change",
1012
+ detail: {
1013
+ value: "string",
1014
+ label: "string",
1015
+ previousValue: "string"
1016
+ },
1017
+ description: "Fires when selection changes."
1018
+ }],
1019
+ properties: [
1020
+ {
1021
+ attr: "value",
1022
+ type: "string",
1023
+ reactive: !0
1024
+ },
1025
+ {
1026
+ attr: "disabled",
1027
+ type: "boolean",
1028
+ reactive: !0
1029
+ },
1030
+ {
1031
+ attr: "name",
1032
+ type: "string"
1033
+ },
1034
+ {
1035
+ attr: "options",
1036
+ type: "string",
1037
+ note: "JSON array: [{ value, label }]"
1038
+ },
1039
+ {
1040
+ attr: "src",
1041
+ type: "string",
1042
+ note: "URL for fetching options"
1043
+ },
1044
+ {
1045
+ attr: "placeholder",
1046
+ type: "string",
1047
+ reactive: !0
1048
+ },
1049
+ {
1050
+ attr: "required",
1051
+ type: "boolean",
1052
+ reactive: !0
1053
+ }
1054
+ ],
1055
+ methods: []
485
1056
  },
486
1057
  {
487
1058
  a2uiType: "Video",
@@ -490,29 +1061,127 @@ const k = new me([
490
1061
  propertyMap: {
491
1062
  url: "src",
492
1063
  poster: "poster"
493
- }
1064
+ },
1065
+ events: [],
1066
+ properties: [{
1067
+ attr: "src",
1068
+ type: "string"
1069
+ }, {
1070
+ attr: "poster",
1071
+ type: "string"
1072
+ }],
1073
+ methods: []
494
1074
  },
495
1075
  {
496
1076
  a2uiType: "AudioPlayer",
497
1077
  nativeTag: "n-audio",
498
1078
  childStrategy: "none",
499
- propertyMap: { url: "src" }
1079
+ propertyMap: { url: "src" },
1080
+ events: [],
1081
+ properties: [{
1082
+ attr: "src",
1083
+ type: "string"
1084
+ }],
1085
+ methods: []
500
1086
  },
501
1087
  {
502
1088
  a2uiType: "Accordion",
503
1089
  nativeTag: "n-accordion",
504
- childStrategy: "children"
1090
+ childStrategy: "children",
1091
+ events: [],
1092
+ properties: [{
1093
+ attr: "multiple",
1094
+ type: "boolean",
1095
+ reactive: !0
1096
+ }, {
1097
+ attr: "disabled",
1098
+ type: "boolean",
1099
+ reactive: !0
1100
+ }],
1101
+ methods: []
505
1102
  },
506
1103
  {
507
1104
  a2uiType: "AccordionItem",
508
1105
  nativeTag: "n-accordion-item",
509
1106
  childStrategy: "children",
510
- propertyMap: { label: "label" }
1107
+ propertyMap: { label: "label" },
1108
+ events: [],
1109
+ properties: [
1110
+ {
1111
+ attr: "open",
1112
+ type: "boolean",
1113
+ reactive: !0
1114
+ },
1115
+ {
1116
+ attr: "disabled",
1117
+ type: "boolean",
1118
+ reactive: !0
1119
+ },
1120
+ {
1121
+ attr: "label",
1122
+ type: "string"
1123
+ }
1124
+ ],
1125
+ methods: []
511
1126
  },
512
1127
  {
513
1128
  a2uiType: "Table",
514
1129
  nativeTag: "n-table",
515
- childStrategy: "children"
1130
+ childStrategy: "children",
1131
+ events: [
1132
+ {
1133
+ event: "native:table-sort",
1134
+ detail: {
1135
+ column: "string",
1136
+ direction: "'asc' | 'desc' | null"
1137
+ },
1138
+ description: "Fires when column sort changes."
1139
+ },
1140
+ {
1141
+ event: "native:table-select",
1142
+ detail: {
1143
+ value: "string",
1144
+ selected: "boolean",
1145
+ allSelected: "string[]"
1146
+ },
1147
+ description: "Fires when row selection changes."
1148
+ },
1149
+ {
1150
+ event: "native:table-reorder",
1151
+ detail: {
1152
+ sourceIndex: "number",
1153
+ targetIndex: "number",
1154
+ inserted: "string[]"
1155
+ },
1156
+ description: "Fires when rows are drag-reordered."
1157
+ }
1158
+ ],
1159
+ properties: [
1160
+ {
1161
+ attr: "selectable",
1162
+ type: "boolean",
1163
+ reactive: !0
1164
+ },
1165
+ {
1166
+ attr: "resizable",
1167
+ type: "boolean"
1168
+ },
1169
+ {
1170
+ attr: "reorderable",
1171
+ type: "boolean"
1172
+ },
1173
+ {
1174
+ attr: "cols",
1175
+ type: "string",
1176
+ reactive: !0,
1177
+ note: "Sets grid-template-columns CSS"
1178
+ },
1179
+ {
1180
+ attr: "sticky-header",
1181
+ type: "boolean"
1182
+ }
1183
+ ],
1184
+ methods: []
516
1185
  },
517
1186
  {
518
1187
  a2uiType: "Progress",
@@ -521,17 +1190,49 @@ const k = new me([
521
1190
  propertyMap: {
522
1191
  value: "value",
523
1192
  max: "max"
524
- }
1193
+ },
1194
+ events: [],
1195
+ properties: [{
1196
+ attr: "value",
1197
+ type: "number",
1198
+ reactive: !0
1199
+ }, {
1200
+ attr: "max",
1201
+ type: "number"
1202
+ }],
1203
+ methods: []
525
1204
  },
526
1205
  {
527
1206
  a2uiType: "Breadcrumb",
528
1207
  nativeTag: "n-breadcrumb",
529
- childStrategy: "children"
1208
+ childStrategy: "children",
1209
+ events: [],
1210
+ properties: [],
1211
+ methods: []
530
1212
  },
531
1213
  {
532
1214
  a2uiType: "Toast",
533
1215
  nativeTag: "n-toast",
534
- childStrategy: "textContent"
1216
+ childStrategy: "textContent",
1217
+ events: [{
1218
+ event: "native:dismiss",
1219
+ description: "Fires when the toast dismiss button is clicked."
1220
+ }],
1221
+ properties: [
1222
+ {
1223
+ attr: "message",
1224
+ type: "string"
1225
+ },
1226
+ {
1227
+ attr: "dismissible",
1228
+ type: "boolean"
1229
+ },
1230
+ {
1231
+ attr: "intent",
1232
+ type: "'info' | 'success' | 'warning' | 'danger'"
1233
+ }
1234
+ ],
1235
+ methods: []
535
1236
  }
536
1237
  ], {
537
1238
  Text: "display",
@@ -9139,8 +9840,8 @@ var V = [
9139
9840
  i.addEventListener("native:press", this.#Ce);
9140
9841
  let a = this.#Q("Play all", "play", !0);
9141
9842
  a.dataset.role = "run", a.addEventListener("native:press", this.#Se);
9142
- let o = document.createElement("div");
9143
- o.className = "divider", o.setAttribute("orientation", "vertical");
9843
+ let o = document.createElement("n-divider");
9844
+ o.setAttribute("orientation", "vertical");
9144
9845
  let s = this.#Q("Insert createSurface", "plus-circle");
9145
9846
  s.addEventListener("native:press", this.#Ee("createSurface"));
9146
9847
  let c = this.#Q("Insert updateComponents", "squares-four");
@@ -9157,8 +9858,8 @@ var V = [
9157
9858
  n.addEventListener("native:press", () => this.#R());
9158
9859
  let r = this.#Q("Format JSON", "text-align-left");
9159
9860
  r.addEventListener("native:press", () => this.#z());
9160
- let i = document.createElement("div");
9161
- i.className = "divider", i.setAttribute("orientation", "vertical");
9861
+ let i = document.createElement("n-divider");
9862
+ i.setAttribute("orientation", "vertical");
9162
9863
  let a = this.#Q("Reset to defaults", "arrow-counter-clockwise");
9163
9864
  a.addEventListener("native:press", () => this.#B()), e.append(n, r, i, a), t.appendChild(e);
9164
9865
  }
@@ -9648,7 +10349,7 @@ y("native-a2ui", Re), y("n-button", e), y("n-icon", r), y("n-toolbar", f), y("n-
9648
10349
  * @fires native:composer-focus - Fired when the composer textarea gains focus
9649
10350
  * @fires native:composer-blur - Fired when the composer textarea loses focus
9650
10351
  */
9651
- var Be = class extends p {
10352
+ var W = class extends p {
9652
10353
  static observedAttributes = [
9653
10354
  "disabled",
9654
10355
  "busy",
@@ -9721,10 +10422,10 @@ var Be = class extends p {
9721
10422
  this.removeEventListener("native:input", this.#c), this.removeEventListener("native:press", this.#l), this.removeEventListener("keydown", this.#f), this.removeEventListener("focusin", this.#u), this.removeEventListener("focusout", this.#d), this.#r = null, this.#i = null, super.teardown();
9722
10423
  }
9723
10424
  #a() {
9724
- this.#r = this.querySelector(":scope > n-textarea"), this.#i = this.querySelector("[data-submit]") ?? this.#o();
10425
+ this.#r = this.querySelector(":scope > n-textarea") ?? this.querySelector(":scope > n-chat-input-prompt > n-textarea"), this.#i = this.querySelector("[data-submit]") ?? this.#o();
9725
10426
  }
9726
10427
  #o() {
9727
- let e = this.querySelector(":scope > n-chat-input-actions");
10428
+ let e = this.querySelector(":scope > n-chat-input-actions, :scope > n-toolbar") ?? this.querySelector(":scope > n-chat-input-prompt > n-chat-input-actions, :scope > n-chat-input-prompt > n-toolbar");
9728
10429
  if (!e) return null;
9729
10430
  let t = e.querySelectorAll("n-button[variant=\"primary\"]");
9730
10431
  return t.length ? t[t.length - 1] : null;
@@ -9757,7 +10458,7 @@ var Be = class extends p {
9757
10458
  let t = e;
9758
10459
  if (t.isComposing) return;
9759
10460
  let n = t.target;
9760
- !this.#r?.contains(n) && n !== this.#r || t.key === "Enter" && !t.shiftKey && !t.ctrlKey && !t.metaKey && (t.preventDefault(), this.value.trim() && this.#p());
10461
+ !this.#r?.contains(n) && n !== this.#r || t.key === "Enter" && (t.metaKey || t.ctrlKey) && !t.shiftKey && (t.preventDefault(), this.value.trim() && this.#p());
9761
10462
  };
9762
10463
  #p() {
9763
10464
  let e = this.value.trim();
@@ -9778,7 +10479,7 @@ var Be = class extends p {
9778
10479
  })) && !this.hasAttribute("no-auto-clear") && (this.value = "", this.#i?.setAttribute("disabled", ""));
9779
10480
  }
9780
10481
  }
9781
- }, W = class extends Error {
10482
+ }, Be = class extends W {}, G = class extends Error {
9782
10483
  kind;
9783
10484
  status;
9784
10485
  body;
@@ -9789,7 +10490,7 @@ var Be = class extends p {
9789
10490
  }
9790
10491
  };
9791
10492
  async function Ve(e) {
9792
- return G(e, e.retryPolicy ?? {
10493
+ return K(e, e.retryPolicy ?? {
9793
10494
  delaysMs: [
9794
10495
  1e3,
9795
10496
  2e3,
@@ -9813,7 +10514,7 @@ function He(e, t) {
9813
10514
  ...t
9814
10515
  };
9815
10516
  }
9816
- async function G(e, t, n) {
10517
+ async function K(e, t, n) {
9817
10518
  let { url: r, init: i, onEvent: a } = e, o = performance.now();
9818
10519
  a?.({
9819
10520
  type: "request:start",
@@ -9848,7 +10549,7 @@ async function G(e, t, n) {
9848
10549
  durationMs: p,
9849
10550
  status: f.status,
9850
10551
  errorKind: s
9851
- }), await Ge(We(t.delaysMs[n], t.jitterRatio ?? 0)), G(e, t, n + 1);
10552
+ }), await Ge(We(t.delaysMs[n], t.jitterRatio ?? 0)), K(e, t, n + 1);
9852
10553
  throw a?.({
9853
10554
  type: "request:error",
9854
10555
  requestId: i.requestId,
@@ -9859,7 +10560,7 @@ async function G(e, t, n) {
9859
10560
  durationMs: p,
9860
10561
  status: f.status,
9861
10562
  errorKind: s
9862
- }), new W({
10563
+ }), new G({
9863
10564
  message: Je(f.status, o, c),
9864
10565
  kind: s,
9865
10566
  requestId: i.requestId,
@@ -9879,7 +10580,7 @@ async function G(e, t, n) {
9879
10580
  status: f.status
9880
10581
  }), f;
9881
10582
  } catch (s) {
9882
- if (s instanceof DOMException && s.name === "AbortError" || s instanceof W) throw s;
10583
+ if (s instanceof DOMException && s.name === "AbortError" || s instanceof G) throw s;
9883
10584
  let c = Math.round(performance.now() - o);
9884
10585
  if (!e.noRetry && n < t.delaysMs.length) return a?.({
9885
10586
  type: "request:retry",
@@ -9890,7 +10591,7 @@ async function G(e, t, n) {
9890
10591
  maxAttempts: t.delaysMs.length + 1,
9891
10592
  durationMs: c,
9892
10593
  errorKind: "network"
9893
- }), await Ge(We(t.delaysMs[n], t.jitterRatio ?? 0)), G(e, t, n + 1);
10594
+ }), await Ge(We(t.delaysMs[n], t.jitterRatio ?? 0)), K(e, t, n + 1);
9894
10595
  throw a?.({
9895
10596
  type: "request:error",
9896
10597
  requestId: i.requestId,
@@ -9900,7 +10601,7 @@ async function G(e, t, n) {
9900
10601
  maxAttempts: t.delaysMs.length + 1,
9901
10602
  durationMs: c,
9902
10603
  errorKind: "network"
9903
- }), new W({
10604
+ }), new G({
9904
10605
  message: s instanceof Error ? s.message : "Network error",
9905
10606
  kind: "network",
9906
10607
  requestId: i.requestId
@@ -9910,9 +10611,9 @@ async function G(e, t, n) {
9910
10611
  function Ue(e) {
9911
10612
  return e === 401 || e === 403 ? "auth" : e === 429 ? "rate-limit" : e >= 500 ? "server" : e >= 400 ? "client" : "unknown";
9912
10613
  }
9913
- async function K(e, t) {
10614
+ async function q(e, t) {
9914
10615
  let n = e.headers.get("content-type") ?? "", r = await e.text();
9915
- if (!r.trim()) throw new W({
10616
+ if (!r.trim()) throw new G({
9916
10617
  message: "Empty response body",
9917
10618
  kind: "unknown",
9918
10619
  requestId: t,
@@ -9922,7 +10623,7 @@ async function K(e, t) {
9922
10623
  try {
9923
10624
  return JSON.parse(r);
9924
10625
  } catch {
9925
- throw new W({
10626
+ throw new G({
9926
10627
  message: `Invalid JSON response (status ${e.status}, content-type "${n || "unknown"}")`,
9927
10628
  kind: "unknown",
9928
10629
  requestId: t,
@@ -9932,7 +10633,7 @@ async function K(e, t) {
9932
10633
  });
9933
10634
  }
9934
10635
  }
9935
- function q() {
10636
+ function J() {
9936
10637
  return crypto.randomUUID();
9937
10638
  }
9938
10639
  function We(e, t) {
@@ -9983,15 +10684,15 @@ var Ye = class {
9983
10684
  }
9984
10685
  async bootstrapSession() {
9985
10686
  return {
9986
- id: this.defaultSessionId ?? q(),
10687
+ id: this.defaultSessionId ?? J(),
9987
10688
  messages: []
9988
10689
  };
9989
10690
  }
9990
10691
  async sendMessage(e) {
9991
- let t = e.requestId ?? q();
10692
+ let t = e.requestId ?? J();
9992
10693
  return {
9993
10694
  role: "assistant",
9994
- message: (await K(await this.request({
10695
+ message: (await q(await this.request({
9995
10696
  url: `${this.baseUrl}/chat/completions`,
9996
10697
  init: {
9997
10698
  method: "POST",
@@ -10006,7 +10707,7 @@ var Ye = class {
10006
10707
  };
10007
10708
  }
10008
10709
  async sendMessageStream(e) {
10009
- let t = e.requestId ?? q(), n = await this.request({
10710
+ let t = e.requestId ?? J(), n = await this.request({
10010
10711
  url: `${this.baseUrl}/chat/completions`,
10011
10712
  init: {
10012
10713
  method: "POST",
@@ -10030,7 +10731,7 @@ var Ye = class {
10030
10731
  mode: "json",
10031
10732
  contentType: r
10032
10733
  });
10033
- let i = (await K(n, t)).choices?.[0]?.message?.content?.trim() || "No response returned.", a = {
10734
+ let i = (await q(n, t)).choices?.[0]?.message?.content?.trim() || "No response returned.", a = {
10034
10735
  role: "assistant",
10035
10736
  message: i,
10036
10737
  datetime: Date.now(),
@@ -10050,7 +10751,7 @@ var Ye = class {
10050
10751
  }), a;
10051
10752
  }
10052
10753
  async checkHealth(e) {
10053
- let t = e?.requestId ?? q(), n = performance.now();
10754
+ let t = e?.requestId ?? J(), n = performance.now();
10054
10755
  try {
10055
10756
  let r = await this.request({
10056
10757
  url: `${this.baseUrl}/models`,
@@ -10070,7 +10771,7 @@ var Ye = class {
10070
10771
  return {
10071
10772
  healthy: !1,
10072
10773
  requestId: t,
10073
- status: e instanceof W ? e.status : 0,
10774
+ status: e instanceof G ? e.status : 0,
10074
10775
  durationMs: Math.round(performance.now() - n)
10075
10776
  };
10076
10777
  }
@@ -10083,7 +10784,7 @@ var Ye = class {
10083
10784
  };
10084
10785
  }
10085
10786
  async listModels(e) {
10086
- let t = e?.requestId ?? q(), n = ((await K(await this.request({
10787
+ let t = e?.requestId ?? J(), n = ((await q(await this.request({
10087
10788
  url: `${this.baseUrl}/models`,
10088
10789
  init: {
10089
10790
  method: "GET",
@@ -10116,7 +10817,7 @@ var Ye = class {
10116
10817
  }))), n;
10117
10818
  }
10118
10819
  async parseEventStream(e, t, n, r, i) {
10119
- if (!e.body) throw new W({
10820
+ if (!e.body) throw new G({
10120
10821
  message: "Missing stream body",
10121
10822
  kind: "unknown",
10122
10823
  requestId: t,
@@ -10152,7 +10853,7 @@ var Ye = class {
10152
10853
  mode: "sse",
10153
10854
  contentType: i,
10154
10855
  message: n
10155
- }), new W({
10856
+ }), new G({
10156
10857
  message: n,
10157
10858
  kind: "server",
10158
10859
  requestId: t,
@@ -10182,7 +10883,7 @@ var Ye = class {
10182
10883
  } finally {
10183
10884
  a.releaseLock();
10184
10885
  }
10185
- if (!c.trim()) throw new W({
10886
+ if (!c.trim()) throw new G({
10186
10887
  message: "Empty stream response body",
10187
10888
  kind: "unknown",
10188
10889
  requestId: t,
@@ -10262,12 +10963,12 @@ var Qe = class {
10262
10963
  }
10263
10964
  async bootstrapSession() {
10264
10965
  return {
10265
- id: this.defaultSessionId ?? q(),
10966
+ id: this.defaultSessionId ?? J(),
10266
10967
  messages: []
10267
10968
  };
10268
10969
  }
10269
10970
  async sendMessage(e) {
10270
- let t = e.requestId ?? q(), n = await K(await this.request({
10971
+ let t = e.requestId ?? J(), n = await q(await this.request({
10271
10972
  url: `${this.baseUrl}/messages`,
10272
10973
  init: {
10273
10974
  method: "POST",
@@ -10284,7 +10985,7 @@ var Qe = class {
10284
10985
  };
10285
10986
  }
10286
10987
  async sendMessageStream(e) {
10287
- let t = e.requestId ?? q(), n = await this.request({
10988
+ let t = e.requestId ?? J(), n = await this.request({
10288
10989
  url: `${this.baseUrl}/messages`,
10289
10990
  init: {
10290
10991
  method: "POST",
@@ -10305,7 +11006,7 @@ var Qe = class {
10305
11006
  mode: "json",
10306
11007
  contentType: r
10307
11008
  });
10308
- let i = await K(n, t), a = {
11009
+ let i = await q(n, t), a = {
10309
11010
  role: "assistant",
10310
11011
  message: this.extractTextFromMessage(i),
10311
11012
  datetime: Date.now(),
@@ -10325,7 +11026,7 @@ var Qe = class {
10325
11026
  }), a;
10326
11027
  }
10327
11028
  async checkHealth(e) {
10328
- let t = e?.requestId ?? q(), n = performance.now();
11029
+ let t = e?.requestId ?? J(), n = performance.now();
10329
11030
  try {
10330
11031
  let r = await this.request({
10331
11032
  url: `${this.baseUrl}/models`,
@@ -10345,7 +11046,7 @@ var Qe = class {
10345
11046
  return {
10346
11047
  healthy: !1,
10347
11048
  requestId: t,
10348
- status: e instanceof W ? e.status : 0,
11049
+ status: e instanceof G ? e.status : 0,
10349
11050
  durationMs: Math.round(performance.now() - n)
10350
11051
  };
10351
11052
  }
@@ -10358,8 +11059,8 @@ var Qe = class {
10358
11059
  };
10359
11060
  }
10360
11061
  async listModels(e) {
10361
- let t = e?.requestId ?? q();
10362
- return ((await K(await this.request({
11062
+ let t = e?.requestId ?? J();
11063
+ return ((await q(await this.request({
10363
11064
  url: `${this.baseUrl}/models`,
10364
11065
  init: {
10365
11066
  method: "GET",
@@ -10391,7 +11092,7 @@ var Qe = class {
10391
11092
  return (e.content ?? []).filter((e) => e.type === "text").map((e) => e.text ?? "").join("") || "No response returned.";
10392
11093
  }
10393
11094
  async parseEventStream(e, t, n, r, i) {
10394
- if (!e.body) throw new W({
11095
+ if (!e.body) throw new G({
10395
11096
  message: "Missing stream body",
10396
11097
  kind: "unknown",
10397
11098
  requestId: t,
@@ -10426,7 +11127,7 @@ var Qe = class {
10426
11127
  mode: "sse",
10427
11128
  contentType: i,
10428
11129
  message: a
10429
- }), new W({
11130
+ }), new G({
10430
11131
  message: a,
10431
11132
  kind: "server",
10432
11133
  requestId: t,
@@ -10459,7 +11160,7 @@ var Qe = class {
10459
11160
  } finally {
10460
11161
  a.releaseLock();
10461
11162
  }
10462
- if (!c.trim()) throw new W({
11163
+ if (!c.trim()) throw new G({
10463
11164
  message: "Empty stream response body",
10464
11165
  kind: "unknown",
10465
11166
  requestId: t,
@@ -10520,7 +11221,7 @@ const $e = ({ clientId: e, baseUrl: t, gatewayConfig: n, onEvent: r, auth: i })
10520
11221
  onEvent: r
10521
11222
  });
10522
11223
  };
10523
- var J = [
11224
+ var Y = [
10524
11225
  "That's a great question! Here's what I think:\n\n**Web components** are built on three main browser APIs:\n\n1. **Custom Elements** — define your own HTML tags\n2. **Shadow DOM** — encapsulated styling and markup\n3. **HTML Templates** — reusable content fragments\n\nThey work natively in all modern browsers.",
10525
11226
  "Sure, I can help with that! Let me break it down:\n\n- First, you'll want to understand the **component lifecycle**\n- Then look at how **attributes** map to **properties**\n- Finally, consider your **event strategy**\n\n```js\nclass MyElement extends HTMLElement {\n connectedCallback() {\n console.log('Connected!');\n }\n}\n```",
10526
11227
  "Here are some key points to consider:\n\n> The best code is the code you don't have to write.\n\n1. Keep components **small and focused**\n2. Use **composition** over inheritance\n3. Leverage **CSS custom properties** for theming\n4. Always consider **accessibility**\n\nLet me know if you'd like more detail on any of these!"
@@ -10530,7 +11231,7 @@ var J = [
10530
11231
  return Promise.resolve({ id: "mock-session" });
10531
11232
  }
10532
11233
  sendMessage(e) {
10533
- let t = J[this.#e++ % J.length];
11234
+ let t = Y[this.#e++ % Y.length];
10534
11235
  return Promise.resolve({
10535
11236
  role: "assistant",
10536
11237
  message: t,
@@ -10538,7 +11239,7 @@ var J = [
10538
11239
  });
10539
11240
  }
10540
11241
  async sendMessageStream(e) {
10541
- let t = J[this.#e++ % J.length], n = t.split(/(\s+)/);
11242
+ let t = Y[this.#e++ % Y.length], n = t.split(/(\s+)/);
10542
11243
  e.onMode?.("sse", "text/event-stream"), e.onStreamEvent?.({
10543
11244
  phase: "start",
10544
11245
  mode: "sse"
@@ -10894,7 +11595,7 @@ var rt = class extends p {
10894
11595
  return;
10895
11596
  }
10896
11597
  let r = {
10897
- clientId: q(),
11598
+ clientId: J(),
10898
11599
  baseUrl: t,
10899
11600
  gatewayConfig: n ?? {}
10900
11601
  }, i = null;
@@ -11065,13 +11766,13 @@ var rt = class extends p {
11065
11766
  this.#f.push(r);
11066
11767
  let i = this.constructor.MAX_CONTEXT_MESSAGES;
11067
11768
  this.#f.length > i && (this.#f = this.#f.slice(-i)), this.#F(r);
11068
- let a = `msg-${q()}`, o = this.#I(a), s = o?.querySelector("n-chat-message-text");
11769
+ let a = `msg-${J()}`, o = this.#I(a), s = o?.querySelector("n-chat-message-text");
11069
11770
  o?.setAttribute("status", "typing"), this.#u.value = !0;
11070
11771
  let c = this.#w();
11071
11772
  c && (c.busy = !0);
11072
11773
  try {
11073
11774
  let r = await t.sendMessageStream({
11074
- id: q(),
11775
+ id: J(),
11075
11776
  messages: this.#f,
11076
11777
  query: e,
11077
11778
  model: this.#a.value ?? void 0,
@@ -11106,7 +11807,7 @@ var rt = class extends p {
11106
11807
  let n = document.createElement("n-chat-messages");
11107
11808
  n.setAttribute("data-role", e.role), n.setAttribute("sender", e.role === "user" ? "You" : "Assistant");
11108
11809
  let r = document.createElement("n-chat-message");
11109
- r.setAttribute("data-role", e.role), r.setAttribute("message-id", `msg-${q()}`), r.setAttribute("status", "sent");
11810
+ r.setAttribute("data-role", e.role), r.setAttribute("message-id", `msg-${J()}`), r.setAttribute("status", "sent");
11110
11811
  let i = document.createElement("n-chat-message-text");
11111
11812
  i.content = e.message, r.appendChild(i), n.appendChild(r), t.appendChild(n);
11112
11813
  }
@@ -11650,7 +12351,7 @@ var ft = class extends p {
11650
12351
  !this.#t.value && this.textContent?.trim() && (this.#t.value = this.textContent.trim()), this.#n = document.createElement("div"), this.#n.className = "n-chat-prose", this.textContent = "", this.appendChild(this.#n), this.addEffect(() => {
11651
12352
  let e = this.#t.value, t = this.#e.value;
11652
12353
  this.#n && (t === "plain" ? this.#n.textContent = e : (cancelAnimationFrame(this.#r), this.#r = requestAnimationFrame(() => {
11653
- this.#n && (this.#n.innerHTML = ht(Z(e)));
12354
+ this.#n && (this.#n.innerHTML = gt(ht(e)));
11654
12355
  })));
11655
12356
  });
11656
12357
  });
@@ -11678,14 +12379,14 @@ var ft = class extends p {
11678
12379
  "blockquote",
11679
12380
  "hr"
11680
12381
  ]);
11681
- function Y(e) {
12382
+ function X(e) {
11682
12383
  return e.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll("\"", "&quot;").replaceAll("'", "&#39;");
11683
12384
  }
11684
- function X(e) {
11685
- let t = Y(e);
12385
+ function Z(e) {
12386
+ let t = X(e);
11686
12387
  return t = t.replace(/`([^`]+)`/g, "<code>$1</code>"), t = t.replace(/\*\*(.+?)\*\*/g, "<strong>$1</strong>"), t = t.replace(/__(.+?)__/g, "<strong>$1</strong>"), t = t.replace(/\*(.+?)\*/g, "<em>$1</em>"), t = t.replace(/(?<!\w)_(.+?)_(?!\w)/g, "<em>$1</em>"), t = t.replace(/\[([^\]]+)\]\((https?:\/\/[^)]+)\)/g, "<a href=\"$2\" rel=\"noopener noreferrer\" target=\"_blank\">$1</a>"), t;
11687
12388
  }
11688
- function Z(e) {
12389
+ function ht(e) {
11689
12390
  if (!e) return "";
11690
12391
  let t = e.split("\n"), n = [], r = 0;
11691
12392
  for (; r < t.length;) {
@@ -11694,14 +12395,14 @@ function Z(e) {
11694
12395
  let i = e.slice(3).trim(), a = [];
11695
12396
  for (r += 1; r < t.length && !t[r].startsWith("```");) a.push(t[r]), r += 1;
11696
12397
  r += 1;
11697
- let o = i ? ` data-lang="${Y(i)}"` : "";
11698
- n.push(`<pre${o}><code>${Y(a.join("\n"))}</code></pre>`);
12398
+ let o = i ? ` data-lang="${X(i)}"` : "";
12399
+ n.push(`<pre${o}><code>${X(a.join("\n"))}</code></pre>`);
11699
12400
  continue;
11700
12401
  }
11701
12402
  let i = e.match(/^(#{1,6})\s+(.+)/);
11702
12403
  if (i) {
11703
12404
  let e = i[1].length;
11704
- n.push(`<h${e}>${X(i[2])}</h${e}>`), r += 1;
12405
+ n.push(`<h${e}>${Z(i[2])}</h${e}>`), r += 1;
11705
12406
  continue;
11706
12407
  }
11707
12408
  if (/^---+$/.test(e.trim()) || /^\*\*\*+$/.test(e.trim())) {
@@ -11711,19 +12412,19 @@ function Z(e) {
11711
12412
  if (e.startsWith("> ")) {
11712
12413
  let e = [];
11713
12414
  for (; r < t.length && t[r].startsWith("> ");) e.push(t[r].slice(2)), r += 1;
11714
- n.push(`<blockquote>${Z(e.join("\n"))}</blockquote>`);
12415
+ n.push(`<blockquote>${ht(e.join("\n"))}</blockquote>`);
11715
12416
  continue;
11716
12417
  }
11717
12418
  if (/^[-*+]\s/.test(e)) {
11718
12419
  let e = [];
11719
12420
  for (; r < t.length && /^[-*+]\s/.test(t[r]);) e.push(t[r].replace(/^[-*+]\s/, "")), r += 1;
11720
- n.push("<ul>" + e.map((e) => `<li>${X(e)}</li>`).join("") + "</ul>");
12421
+ n.push("<ul>" + e.map((e) => `<li>${Z(e)}</li>`).join("") + "</ul>");
11721
12422
  continue;
11722
12423
  }
11723
12424
  if (/^\d+\.\s/.test(e)) {
11724
12425
  let e = [];
11725
12426
  for (; r < t.length && /^\d+\.\s/.test(t[r]);) e.push(t[r].replace(/^\d+\.\s/, "")), r += 1;
11726
- n.push("<ol>" + e.map((e) => `<li>${X(e)}</li>`).join("") + "</ol>");
12427
+ n.push("<ol>" + e.map((e) => `<li>${Z(e)}</li>`).join("") + "</ol>");
11727
12428
  continue;
11728
12429
  }
11729
12430
  if (!e.trim()) {
@@ -11732,12 +12433,12 @@ function Z(e) {
11732
12433
  }
11733
12434
  let a = [];
11734
12435
  for (; r < t.length && t[r].trim() && !t[r].startsWith("#") && !t[r].startsWith("```") && !t[r].startsWith("> ") && !/^[-*+]\s/.test(t[r]) && !/^\d+\.\s/.test(t[r]) && !/^---+$/.test(t[r].trim());) a.push(t[r]), r += 1;
11735
- a.length > 0 && n.push(`<p>${X(a.join("\n"))}</p>`);
12436
+ a.length > 0 && n.push(`<p>${Z(a.join("\n"))}</p>`);
11736
12437
  }
11737
12438
  return n.join("");
11738
12439
  }
11739
12440
  /** Sanitize rendered HTML — strip any tags not in allowlist. */
11740
- function ht(e) {
12441
+ function gt(e) {
11741
12442
  return e.replace(/<\/?([a-zA-Z][a-zA-Z0-9]*)[^>]*>/g, (e, t) => {
11742
12443
  let n = t.toLowerCase();
11743
12444
  return mt.has(n) ? e : "";
@@ -11761,7 +12462,7 @@ function ht(e) {
11761
12462
  * @attr {boolean} expandable - Allow click to expand trace content
11762
12463
  * @fires native:activity-toggle - Fired when trace is expanded/collapsed
11763
12464
  */
11764
- var gt = class extends p {
12465
+ var _t = class extends p {
11765
12466
  static observedAttributes = [
11766
12467
  "type",
11767
12468
  "label",
@@ -11819,7 +12520,7 @@ var gt = class extends p {
11819
12520
  this.#r.value ? (this.#p(), this.#e.states.add("active")) : (this.#m(), this.#e.states.delete("active"));
11820
12521
  }), this.addEffect(() => {
11821
12522
  if (!this.#c) return;
11822
- let e = this.#n.value || _t(this.#t.value);
12523
+ let e = this.#n.value || vt(this.#t.value);
11823
12524
  this.#c.textContent = e;
11824
12525
  }), this.addEffect(() => {
11825
12526
  this.#u && (this.#u.hidden = !this.#r.value);
@@ -11849,7 +12550,7 @@ var gt = class extends p {
11849
12550
  #h = () => {
11850
12551
  if (!this.#r.value || !this.#l) return;
11851
12552
  let e = performance.now() - this.#o;
11852
- this.#l.textContent = vt(e), this.#s = requestAnimationFrame(this.#h);
12553
+ this.#l.textContent = yt(e), this.#s = requestAnimationFrame(this.#h);
11853
12554
  };
11854
12555
  #g = () => {
11855
12556
  this.#i.value && (this.#a.value = !this.#a.value, this.toggleAttribute("expanded", this.#a.value), this.dispatchEvent(new CustomEvent("native:activity-toggle", {
@@ -11859,14 +12560,14 @@ var gt = class extends p {
11859
12560
  })));
11860
12561
  };
11861
12562
  };
11862
- function _t(e) {
12563
+ function vt(e) {
11863
12564
  switch (e) {
11864
12565
  case "thinking": return "Thinking…";
11865
12566
  case "tool-use": return "Using tools…";
11866
12567
  default: return "Host is typing…";
11867
12568
  }
11868
12569
  }
11869
- function vt(e) {
12570
+ function yt(e) {
11870
12571
  let t = Math.floor(e / 1e3);
11871
12572
  if (t < 60) return `${t}s`;
11872
12573
  let n = Math.floor(t / 60), r = t % 60;
@@ -11886,7 +12587,7 @@ function vt(e) {
11886
12587
  * @attr {boolean} disabled - Disables all chips
11887
12588
  * @fires native:seed-select - Fired when a chip is clicked
11888
12589
  */
11889
- var yt = class extends p {
12590
+ var Q = class extends p {
11890
12591
  static observedAttributes = ["options", "disabled"];
11891
12592
  #e;
11892
12593
  #t = x([]);
@@ -11927,8 +12628,8 @@ var yt = class extends p {
11927
12628
  super.setup(), this.addEffect(v(this, this.#n, this.#e)), this.addEffect(() => {
11928
12629
  let e = this.#t.value;
11929
12630
  this.textContent = "";
11930
- let t = document.createElement("div");
11931
- t.className = "stack", t.setAttribute("direction", "row"), t.setAttribute("wrap", "");
12631
+ let t = document.createElement("n-stack");
12632
+ t.setAttribute("direction", "row"), t.setAttribute("wrap", "");
11932
12633
  for (let n of e) {
11933
12634
  let e = document.createElement("n-button");
11934
12635
  if (e.setAttribute("variant", "outline"), e.setAttribute("size", "sm"), e.setAttribute("inline", ""), e.setAttribute("data-value", n.value), n.icon) {
@@ -12032,7 +12733,7 @@ var yt = class extends p {
12032
12733
  }
12033
12734
  if (t === "lightbox") this.#s(e);
12034
12735
  else {
12035
- let t = Q(e);
12736
+ let t = $(e);
12036
12737
  t && this.#i.appendChild(t);
12037
12738
  }
12038
12739
  this.#e.states.add("rendered");
@@ -12057,7 +12758,7 @@ var yt = class extends p {
12057
12758
  }
12058
12759
  #c(e) {
12059
12760
  this.#l();
12060
- let t = document.createElement("n-dialog"), n = Q(e);
12761
+ let t = document.createElement("n-dialog"), n = $(e);
12061
12762
  n && t.appendChild(n), this.appendChild(t), this.#a = t, requestAnimationFrame(() => {
12062
12763
  let e = t.querySelector("dialog");
12063
12764
  e && e.showModal();
@@ -12092,13 +12793,13 @@ function St(e, t = 0) {
12092
12793
  if (bt.has(e.tag.toLowerCase()) && n.push(`Forbidden tag: <${e.tag}>`), e.children) for (let r of e.children) n.push(...St(r, t + 1));
12093
12794
  return n;
12094
12795
  }
12095
- function Q(e) {
12796
+ function $(e) {
12096
12797
  if (bt.has(e.tag.toLowerCase())) return null;
12097
12798
  let t = document.createElement(e.tag);
12098
12799
  if (e.id && (t.id = e.id), e.slot && (t.slot = e.slot), e.attributes) for (let [n, r] of Object.entries(e.attributes)) t.setAttribute(n, r);
12099
12800
  if (e.properties) for (let [n, r] of Object.entries(e.properties)) t[n] = r;
12100
12801
  if (e.text && (t.textContent = e.text), e.children) for (let n of e.children) {
12101
- let e = Q(n);
12802
+ let e = $(n);
12102
12803
  e && t.appendChild(e);
12103
12804
  }
12104
12805
  return t;
@@ -12123,7 +12824,7 @@ function Q(e) {
12123
12824
  * @fires native:structured-submit - Fired on submit with selections
12124
12825
  * @fires native:structured-cancel - Fired when dismissed without selecting
12125
12826
  */
12126
- var $ = class extends p {
12827
+ var Ct = class extends p {
12127
12828
  static observedAttributes = [
12128
12829
  "question",
12129
12830
  "type",
@@ -12212,8 +12913,8 @@ var $ = class extends p {
12212
12913
  let t = document.createElement("div");
12213
12914
  t.className = "n-chat-structured-question", t.textContent = e, this.appendChild(t);
12214
12915
  }
12215
- let r = document.createElement("div");
12216
- r.className = "stack", r.setAttribute("direction", "row"), r.setAttribute("wrap", ""), r.setAttribute("role", n === "multi" ? "group" : "radiogroup");
12916
+ let r = document.createElement("n-stack");
12917
+ r.setAttribute("direction", "row"), r.setAttribute("wrap", ""), r.setAttribute("role", n === "multi" ? "group" : "radiogroup");
12217
12918
  for (let e of t) {
12218
12919
  let t = document.createElement("n-button");
12219
12920
  if (t.setAttribute("variant", "outline"), t.setAttribute("data-value", e.value), t.setAttribute("aria-pressed", "false"), e.icon) {
@@ -12258,5 +12959,5 @@ var $ = class extends p {
12258
12959
  }));
12259
12960
  };
12260
12961
  };
12261
- y("n-chat-input", Be), y("native-chat-panel", rt), y("n-chat-feed", at), y("n-chat-avatar", ot), y("n-chat-message", ut), y("n-chat-messages", ft), y("n-chat-message-text", pt), y("n-chat-message-activity", gt), y("n-chat-message-seed", yt), y("n-chat-message-genui", xt), y("n-chat-input-structured", $), y("n-textarea", d), y("n-button", e), y("n-icon", r), y("n-toolbar", f), y("n-dialog", n), y("n-container", t), y("n-listbox", i), y("n-option", a), y("n-option-group", o), y("n-option-group-header", s), y("n-select", u), b("chat-dots", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M116,128a12,12,0,1,1,12,12A12,12,0,0,1,116,128ZM84,140a12,12,0,1,0-12-12A12,12,0,0,0,84,140Zm88,0a12,12,0,1,0-12-12A12,12,0,0,0,172,140Zm60-76V192a16,16,0,0,1-16,16H83l-32.6,28.16-.09.07A15.89,15.89,0,0,1,40,240a16.13,16.13,0,0,1-6.8-1.52A15.85,15.85,0,0,1,24,224V64A16,16,0,0,1,40,48H216A16,16,0,0,1,232,64ZM40,224h0ZM216,64H40V224l34.77-30A8,8,0,0,1,80,192H216Z\"/></svg>"), b("user", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M230.92,212c-15.23-26.33-38.7-45.21-66.09-54.16a72,72,0,1,0-73.66,0C63.78,166.78,40.31,185.66,25.08,212a8,8,0,1,0,13.85,8C55.71,194.74,89.05,176,128,176s72.29,18.74,89.07,44a8,8,0,0,0,13.85-8ZM72,96a56,56,0,1,1,56,56A56.06,56.06,0,0,1,72,96Z\"/></svg>"), b("stop", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M200,40H56A16,16,0,0,0,40,56V200a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V56A16,16,0,0,0,200,40Zm0,160H56V56H200V200Z\"/></svg>"), b("arrow-counter-clockwise", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M224,128a96,96,0,0,1-94.71,96H128A95.38,95.38,0,0,1,62.1,197.8a8,8,0,0,1,11-11.63A80,80,0,1,0,71.43,71.39a3.07,3.07,0,0,1-.26.25L44.59,96H72a8,8,0,0,1,0,16H24a8,8,0,0,1-8-8V56a8,8,0,0,1,16,0V85.8L60.25,60A96,96,0,0,1,224,128Z\"/></svg>"), b("caret-up-down", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M181.66,170.34a8,8,0,0,1,0,11.32l-48,48a8,8,0,0,1-11.32,0l-48-48a8,8,0,0,1,11.32-11.32L128,212.69l42.34-42.35A8,8,0,0,1,181.66,170.34Zm-96-84.68L128,43.31l42.34,42.35a8,8,0,0,0,11.32-11.32l-48-48a8,8,0,0,0-11.32,0l-48,48A8,8,0,0,0,85.66,85.66Z\"/></svg>"), b("dots-three-outline-fill", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M156,128a28,28,0,1,1-28-28A28,28,0,0,1,156,128ZM48,100a28,28,0,1,0,28,28A28,28,0,0,0,48,100Zm160,0a28,28,0,1,0,28,28A28,28,0,0,0,208,100Z\"/></svg>"), b("plus", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z\"/></svg>"), b("microphone", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M128,176a48.05,48.05,0,0,0,48-48V64a48,48,0,0,0-96,0v64A48.05,48.05,0,0,0,128,176ZM96,64a32,32,0,0,1,64,0v64a32,32,0,0,1-64,0Zm40,143.6V240a8,8,0,0,1-16,0V207.6A80.11,80.11,0,0,1,48,128a8,8,0,0,1,16,0,64,64,0,0,0,128,0,8,8,0,0,1,16,0A80.11,80.11,0,0,1,136,207.6Z\"/></svg>"), b("arrow-up", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M205.66,117.66a8,8,0,0,1-11.32,0L136,59.31V216a8,8,0,0,1-16,0V59.31L61.66,117.66a8,8,0,0,1-11.32-11.32l72-72a8,8,0,0,1,11.32,0l72,72A8,8,0,0,1,205.66,117.66Z\"/></svg>"), b("copy", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z\"/></svg>"), b("arrow-clockwise", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M240,56v48a8,8,0,0,1-8,8H184a8,8,0,0,1,0-16H211.4L184.81,71.64l-.25-.24a80,80,0,1,0-1.67,114.78,8,8,0,0,1,11,11.63A95.44,95.44,0,0,1,128,224h-1.32A96,96,0,1,1,195.75,60L224,85.8V56a8,8,0,1,1,16,0Z\"/></svg>"), b("pencil-simple", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M227.31,73.37,182.63,28.68a16,16,0,0,0-22.63,0L36.69,152A15.86,15.86,0,0,0,32,163.31V208a16,16,0,0,0,16,16H92.69A15.86,15.86,0,0,0,104,219.31L227.31,96a16,16,0,0,0,0-22.63ZM92.69,208H48V163.31l88-88L180.69,120ZM192,108.68,147.31,64l24-24L216,84.68Z\"/></svg>"), b("thumbs-up", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M234,80.12A24,24,0,0,0,216,72H160V56a40,40,0,0,0-40-40,8,8,0,0,0-7.16,4.42L75.06,96H32a16,16,0,0,0-16,16v88a16,16,0,0,0,16,16H204a24,24,0,0,0,23.82-21l12-96A24,24,0,0,0,234,80.12ZM32,112H72v88H32ZM223.94,97l-12,96a8,8,0,0,1-7.94,7H88V105.89l36.71-73.43A24,24,0,0,1,144,56V80a8,8,0,0,0,8,8h64a8,8,0,0,1,7.94,9Z\"/></svg>"), b("thumbs-down", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M239.82,157l-12-96A24,24,0,0,0,204,40H32A16,16,0,0,0,16,56v88a16,16,0,0,0,16,16H75.06l37.78,75.58A8,8,0,0,0,120,240a40,40,0,0,0,40-40V184h56a24,24,0,0,0,23.82-27ZM72,144H32V56H72Zm150,21.29a7.88,7.88,0,0,1-6,2.71H152a8,8,0,0,0-8,8v24a24,24,0,0,1-19.29,23.54L88,150.11V56H204a8,8,0,0,1,7.94,7l12,96A7.87,7.87,0,0,1,222,165.29Z\"/></svg>"), b("arrow-right", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M221.66,133.66l-72,72a8,8,0,0,1-11.32-11.32L196.69,136H40a8,8,0,0,1,0-16H196.69L138.34,61.66a8,8,0,0,1,11.32-11.32l72,72A8,8,0,0,1,221.66,133.66Z\"/></svg>");
12262
- export { Re as NA2UI, ot as NChatAvatar, at as NChatFeed, Be as NChatInput, $ as NChatInputStructured, ut as NChatMessage, gt as NChatMessageActivity, xt as NChatMessageGenUI, yt as NChatMessageSeed, pt as NChatMessageText, ft as NChatMessages, rt as NChatPanel };
12962
+ y("n-chat-input", W), y("n-chat-input-advanced", Be), y("native-chat-panel", rt), y("n-chat-feed", at), y("n-chat-avatar", ot), y("n-chat-message", ut), y("n-chat-messages", ft), y("n-chat-message-text", pt), y("n-chat-message-activity", _t), y("n-chat-message-seed", Q), y("n-chat-message-genui", xt), y("n-chat-input-structured", Ct), y("n-textarea", d), y("n-button", e), y("n-icon", r), y("n-toolbar", f), y("n-dialog", n), y("n-container", t), y("n-listbox", i), y("n-option", a), y("n-option-group", o), y("n-option-group-header", s), y("n-select", u), b("chat-dots", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M116,128a12,12,0,1,1,12,12A12,12,0,0,1,116,128ZM84,140a12,12,0,1,0-12-12A12,12,0,0,0,84,140Zm88,0a12,12,0,1,0-12-12A12,12,0,0,0,172,140Zm60-76V192a16,16,0,0,1-16,16H83l-32.6,28.16-.09.07A15.89,15.89,0,0,1,40,240a16.13,16.13,0,0,1-6.8-1.52A15.85,15.85,0,0,1,24,224V64A16,16,0,0,1,40,48H216A16,16,0,0,1,232,64ZM40,224h0ZM216,64H40V224l34.77-30A8,8,0,0,1,80,192H216Z\"/></svg>"), b("user", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M230.92,212c-15.23-26.33-38.7-45.21-66.09-54.16a72,72,0,1,0-73.66,0C63.78,166.78,40.31,185.66,25.08,212a8,8,0,1,0,13.85,8C55.71,194.74,89.05,176,128,176s72.29,18.74,89.07,44a8,8,0,0,0,13.85-8ZM72,96a56,56,0,1,1,56,56A56.06,56.06,0,0,1,72,96Z\"/></svg>"), b("stop", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M200,40H56A16,16,0,0,0,40,56V200a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V56A16,16,0,0,0,200,40Zm0,160H56V56H200V200Z\"/></svg>"), b("arrow-counter-clockwise", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M224,128a96,96,0,0,1-94.71,96H128A95.38,95.38,0,0,1,62.1,197.8a8,8,0,0,1,11-11.63A80,80,0,1,0,71.43,71.39a3.07,3.07,0,0,1-.26.25L44.59,96H72a8,8,0,0,1,0,16H24a8,8,0,0,1-8-8V56a8,8,0,0,1,16,0V85.8L60.25,60A96,96,0,0,1,224,128Z\"/></svg>"), b("caret-up-down", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M181.66,170.34a8,8,0,0,1,0,11.32l-48,48a8,8,0,0,1-11.32,0l-48-48a8,8,0,0,1,11.32-11.32L128,212.69l42.34-42.35A8,8,0,0,1,181.66,170.34Zm-96-84.68L128,43.31l42.34,42.35a8,8,0,0,0,11.32-11.32l-48-48a8,8,0,0,0-11.32,0l-48,48A8,8,0,0,0,85.66,85.66Z\"/></svg>"), b("dots-three-outline-fill", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M156,128a28,28,0,1,1-28-28A28,28,0,0,1,156,128ZM48,100a28,28,0,1,0,28,28A28,28,0,0,0,48,100Zm160,0a28,28,0,1,0,28,28A28,28,0,0,0,208,100Z\"/></svg>"), b("plus", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z\"/></svg>"), b("microphone", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M128,176a48.05,48.05,0,0,0,48-48V64a48,48,0,0,0-96,0v64A48.05,48.05,0,0,0,128,176ZM96,64a32,32,0,0,1,64,0v64a32,32,0,0,1-64,0Zm40,143.6V240a8,8,0,0,1-16,0V207.6A80.11,80.11,0,0,1,48,128a8,8,0,0,1,16,0,64,64,0,0,0,128,0,8,8,0,0,1,16,0A80.11,80.11,0,0,1,136,207.6Z\"/></svg>"), b("arrow-up", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M205.66,117.66a8,8,0,0,1-11.32,0L136,59.31V216a8,8,0,0,1-16,0V59.31L61.66,117.66a8,8,0,0,1-11.32-11.32l72-72a8,8,0,0,1,11.32,0l72,72A8,8,0,0,1,205.66,117.66Z\"/></svg>"), b("copy", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M216,32H88a8,8,0,0,0-8,8V80H40a8,8,0,0,0-8,8V216a8,8,0,0,0,8,8H168a8,8,0,0,0,8-8V176h40a8,8,0,0,0,8-8V40A8,8,0,0,0,216,32ZM160,208H48V96H160Zm48-48H176V88a8,8,0,0,0-8-8H96V48H208Z\"/></svg>"), b("arrow-clockwise", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M240,56v48a8,8,0,0,1-8,8H184a8,8,0,0,1,0-16H211.4L184.81,71.64l-.25-.24a80,80,0,1,0-1.67,114.78,8,8,0,0,1,11,11.63A95.44,95.44,0,0,1,128,224h-1.32A96,96,0,1,1,195.75,60L224,85.8V56a8,8,0,1,1,16,0Z\"/></svg>"), b("pencil-simple", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M227.31,73.37,182.63,28.68a16,16,0,0,0-22.63,0L36.69,152A15.86,15.86,0,0,0,32,163.31V208a16,16,0,0,0,16,16H92.69A15.86,15.86,0,0,0,104,219.31L227.31,96a16,16,0,0,0,0-22.63ZM92.69,208H48V163.31l88-88L180.69,120ZM192,108.68,147.31,64l24-24L216,84.68Z\"/></svg>"), b("thumbs-up", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M234,80.12A24,24,0,0,0,216,72H160V56a40,40,0,0,0-40-40,8,8,0,0,0-7.16,4.42L75.06,96H32a16,16,0,0,0-16,16v88a16,16,0,0,0,16,16H204a24,24,0,0,0,23.82-21l12-96A24,24,0,0,0,234,80.12ZM32,112H72v88H32ZM223.94,97l-12,96a8,8,0,0,1-7.94,7H88V105.89l36.71-73.43A24,24,0,0,1,144,56V80a8,8,0,0,0,8,8h64a8,8,0,0,1,7.94,9Z\"/></svg>"), b("thumbs-down", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M239.82,157l-12-96A24,24,0,0,0,204,40H32A16,16,0,0,0,16,56v88a16,16,0,0,0,16,16H75.06l37.78,75.58A8,8,0,0,0,120,240a40,40,0,0,0,40-40V184h56a24,24,0,0,0,23.82-27ZM72,144H32V56H72Zm150,21.29a7.88,7.88,0,0,1-6,2.71H152a8,8,0,0,0-8,8v24a24,24,0,0,1-19.29,23.54L88,150.11V56H204a8,8,0,0,1,7.94,7l12,96A7.87,7.87,0,0,1,222,165.29Z\"/></svg>"), b("arrow-right", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M221.66,133.66l-72,72a8,8,0,0,1-11.32-11.32L196.69,136H40a8,8,0,0,1,0-16H196.69L138.34,61.66a8,8,0,0,1,11.32-11.32l72,72A8,8,0,0,1,221.66,133.66Z\"/></svg>"), b("brain", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M248,124a56.11,56.11,0,0,0-32-50.61V72a48,48,0,0,0-88-26.49A48,48,0,0,0,40,72v1.39a56,56,0,0,0,0,101.2V176a48,48,0,0,0,88,26.49A48,48,0,0,0,216,176v-1.41A56.09,56.09,0,0,0,248,124ZM88,208a32,32,0,0,1-31.81-28.56A55.87,55.87,0,0,0,64,180h8a8,8,0,0,0,0-16H64A40,40,0,0,1,50.67,86.27,8,8,0,0,0,56,78.73V72a32,32,0,0,1,64,0v68.26A47.8,47.8,0,0,0,88,128a8,8,0,0,0,0,16,32,32,0,0,1,0,64Zm104-44h-8a8,8,0,0,0,0,16h8a55.87,55.87,0,0,0,7.81-.56A32,32,0,1,1,168,144a8,8,0,0,0,0-16,47.8,47.8,0,0,0-32,12.26V72a32,32,0,0,1,64,0v6.73a8,8,0,0,0,5.33,7.54A40,40,0,0,1,192,164Zm16-52a8,8,0,0,1-8,8h-4a36,36,0,0,1-36-36V80a8,8,0,0,1,16,0v4a20,20,0,0,0,20,20h4A8,8,0,0,1,208,112ZM60,120H56a8,8,0,0,1,0-16h4A20,20,0,0,0,80,84V80a8,8,0,0,1,16,0v4A36,36,0,0,1,60,120Z\"/></svg>"), b("sliders", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M64,105V40a8,8,0,0,0-16,0v65a32,32,0,0,0,0,62v49a8,8,0,0,0,16,0V167a32,32,0,0,0,0-62Zm-8,47a16,16,0,1,1,16-16A16,16,0,0,1,56,152Zm80-95V40a8,8,0,0,0-16,0V57a32,32,0,0,0,0,62v97a8,8,0,0,0,16,0V119a32,32,0,0,0,0-62Zm-8,47a16,16,0,1,1,16-16A16,16,0,0,1,128,104Zm104,64a32.06,32.06,0,0,0-24-31V40a8,8,0,0,0-16,0v97a32,32,0,0,0,0,62v17a8,8,0,0,0,16,0V199A32.06,32.06,0,0,0,232,168Zm-32,16a16,16,0,1,1,16-16A16,16,0,0,1,200,184Z\"/></svg>"), b("clock", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z\"/></svg>"), b("magnifying-glass", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M229.66,218.34l-50.07-50.06a88.11,88.11,0,1,0-11.31,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z\"/></svg>"), b("compass", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216ZM172.42,72.84l-64,32a8.05,8.05,0,0,0-3.58,3.58l-32,64A8,8,0,0,0,80,184a8.1,8.1,0,0,0,3.58-.84l64-32a8.05,8.05,0,0,0,3.58-3.58l32-64a8,8,0,0,0-10.74-10.74ZM138,138,97.89,158.11,118,118l40.15-20.07Z\"/></svg>"), b("flask", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M221.69,199.77,160,96.92V40h8a8,8,0,0,0,0-16H88a8,8,0,0,0,0,16h8V96.92L34.31,199.77A16,16,0,0,0,48,224H208a16,16,0,0,0,13.72-24.23ZM110.86,103.25A7.93,7.93,0,0,0,112,99.14V40h32V99.14a7.93,7.93,0,0,0,1.14,4.11L183.36,167c-12,2.37-29.07,1.37-51.75-10.11-15.91-8.05-31.05-12.32-45.22-12.81ZM48,208l28.54-47.58c14.25-1.74,30.31,1.85,47.82,10.72,19,9.61,35,12.88,48,12.88a69.89,69.89,0,0,0,19.55-2.7L208,208Z\"/></svg>"), b("lightbulb", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M176,232a8,8,0,0,1-8,8H88a8,8,0,0,1,0-16h80A8,8,0,0,1,176,232Zm40-128a87.55,87.55,0,0,1-33.64,69.21A16.24,16.24,0,0,0,176,186v6a16,16,0,0,1-16,16H96a16,16,0,0,1-16-16v-6a16,16,0,0,0-6.23-12.66A87.59,87.59,0,0,1,40,104.49C39.74,56.83,78.26,17.14,125.88,16A88,88,0,0,1,216,104Zm-16,0a72,72,0,0,0-73.74-72c-39,.92-70.47,33.39-70.26,72.39a71.65,71.65,0,0,0,27.64,56.3A32,32,0,0,1,96,186v6h64v-6a32.15,32.15,0,0,1,12.47-25.35A71.65,71.65,0,0,0,200,104Zm-16.11-9.34a57.6,57.6,0,0,0-46.56-46.55,8,8,0,0,0-2.66,15.78c16.57,2.79,30.63,16.85,33.44,33.45A8,8,0,0,0,176,104a9,9,0,0,0,1.35-.11A8,8,0,0,0,183.89,94.66Z\"/></svg>"), b("crosshair", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M232,120h-8.34A96.14,96.14,0,0,0,136,32.34V24a8,8,0,0,0-16,0v8.34A96.14,96.14,0,0,0,32.34,120H24a8,8,0,0,0,0,16h8.34A96.14,96.14,0,0,0,120,223.66V232a8,8,0,0,0,16,0v-8.34A96.14,96.14,0,0,0,223.66,136H232a8,8,0,0,0,0-16Zm-96,87.6V200a8,8,0,0,0-16,0v7.6A80.15,80.15,0,0,1,48.4,136H56a8,8,0,0,0,0-16H48.4A80.15,80.15,0,0,1,120,48.4V56a8,8,0,0,0,16,0V48.4A80.15,80.15,0,0,1,207.6,120H200a8,8,0,0,0,0,16h7.6A80.15,80.15,0,0,1,136,207.6ZM128,88a40,40,0,1,0,40,40A40,40,0,0,0,128,88Zm0,64a24,24,0,1,1,24-24A24,24,0,0,1,128,152Z\"/></svg>"), b("list-checks", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M224,128a8,8,0,0,1-8,8H128a8,8,0,0,1,0-16h88A8,8,0,0,1,224,128ZM128,72h88a8,8,0,0,0,0-16H128a8,8,0,0,0,0,16Zm88,112H128a8,8,0,0,0,0,16h88a8,8,0,0,0,0-16ZM82.34,42.34,56,68.69,45.66,58.34A8,8,0,0,0,34.34,69.66l16,16a8,8,0,0,0,11.32,0l32-32A8,8,0,0,0,82.34,42.34Zm0,64L56,132.69,45.66,122.34a8,8,0,0,0-11.32,11.32l16,16a8,8,0,0,0,11.32,0l32-32a8,8,0,0,0-11.32-11.32Zm0,64L56,196.69,45.66,186.34a8,8,0,0,0-11.32,11.32l16,16a8,8,0,0,0,11.32,0l32-32a8,8,0,0,0-11.32-11.32Z\"/></svg>"), b("sparkle", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M197.58,129.06,146,110l-19-51.62a15.92,15.92,0,0,0-29.88,0L78,110l-51.62,19a15.92,15.92,0,0,0,0,29.88L78,178l19,51.62a15.92,15.92,0,0,0,29.88,0L146,178l51.62-19a15.92,15.92,0,0,0,0-29.88ZM137,164.22a8,8,0,0,0-4.74,4.74L112,223.85,91.78,169A8,8,0,0,0,87,164.22L32.15,144,87,123.78A8,8,0,0,0,91.78,119L112,64.15,132.22,119a8,8,0,0,0,4.74,4.74L191.85,144ZM144,40a8,8,0,0,1,8-8h16V16a8,8,0,0,1,16,0V32h16a8,8,0,0,1,0,16H184V64a8,8,0,0,1-16,0V48H152A8,8,0,0,1,144,40ZM248,88a8,8,0,0,1-8,8h-8v8a8,8,0,0,1-16,0V96h-8a8,8,0,0,1,0-16h8V72a8,8,0,0,1,16,0v8h8A8,8,0,0,1,248,88Z\"/></svg>"), b("record", "<svg viewBox=\"0 0 256 256\" fill=\"currentColor\"><path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm0-160a72,72,0,1,0,72,72A72.08,72.08,0,0,0,128,56Zm0,128a56,56,0,1,1,56-56A56.06,56.06,0,0,1,128,184Z\"/></svg>");
12963
+ export { Re as NA2UI, ot as NChatAvatar, at as NChatFeed, W as NChatInput, Ct as NChatInputStructured, ut as NChatMessage, _t as NChatMessageActivity, xt as NChatMessageGenUI, Q as NChatMessageSeed, pt as NChatMessageText, ft as NChatMessages, rt as NChatPanel };