@pgcorp/ui-kit 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +136 -11
  2. package/dist/assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_a5d8f7e0_scoped_a5d8f7e0_lang.css +2 -0
  3. package/dist/assets/src/components/shared/controls/SChoiceCards.css_vue_type_style_index_0_src_af9fa9d1_scoped_af9fa9d1_lang.css +2 -0
  4. package/dist/assets/src/components/shared/data-display/{SCodeEditor.css_vue_type_style_index_0_src_124ca461_scoped_124ca461_lang.css → SCodeEditor.css_vue_type_style_index_0_src_3ad533d9_scoped_3ad533d9_lang.css} +1 -1
  5. package/dist/assets/src/components/shared/data-display/SStatus.css_vue_type_style_index_0_src_3ce41a12_scoped_3ce41a12_lang.css +2 -0
  6. package/dist/assets/src/components/shared/data-display/SVirtualList.css_vue_type_style_index_0_src_cee8c247_scoped_cee8c247_lang.css +2 -0
  7. package/dist/src/components/layout/SSideMenuButton.vue.d.ts +1 -1
  8. package/dist/src/components/shared/controls/SButton.vue.d.ts +3 -0
  9. package/dist/src/components/shared/controls/SButton.vue.js +2 -2
  10. package/dist/src/components/shared/controls/SButton.vue_vue_type_script_setup_true_lang.js +103 -99
  11. package/dist/src/components/shared/controls/SChoiceCards.vue.d.ts +1 -0
  12. package/dist/src/components/shared/controls/SChoiceCards.vue.js +2 -2
  13. package/dist/src/components/shared/controls/SChoiceCards.vue_vue_type_script_setup_true_lang.js +53 -49
  14. package/dist/src/components/shared/controls/SMenuSurface.vue.d.ts +2 -2
  15. package/dist/src/components/shared/controls/STextarea.vue.d.ts +4 -0
  16. package/dist/src/components/shared/controls/STextarea.vue_vue_type_script_setup_true_lang.js +5 -1
  17. package/dist/src/components/shared/data-display/SCodeEditor.vue.d.ts +90 -7
  18. package/dist/src/components/shared/data-display/SCodeEditor.vue.js +2 -2
  19. package/dist/src/components/shared/data-display/SStatus.vue.d.ts +7 -0
  20. package/dist/src/components/shared/data-display/SStatus.vue.js +2 -2
  21. package/dist/src/components/shared/data-display/SStatus.vue_vue_type_script_setup_true_lang.js +28 -21
  22. package/dist/src/components/shared/data-display/SVirtualList.vue.d.ts +2 -0
  23. package/dist/src/components/shared/data-display/SVirtualList.vue.js +2 -2
  24. package/dist/src/components/shared/data-display/SVirtualList.vue_vue_type_script_setup_true_lang.js +317 -210
  25. package/dist/src/internal/useBinaryInput.js +3 -2
  26. package/package.json +1 -1
  27. package/src/components/shared/controls/SButton.css +28 -0
  28. package/src/components/shared/controls/SChoiceCards.css +10 -3
  29. package/src/components/shared/data-display/SStatus.css +4 -0
  30. package/src/components/shared/data-display/SVirtualList.css +12 -0
  31. package/dist/assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_52ad38b1_scoped_52ad38b1_lang.css +0 -2
  32. package/dist/assets/src/components/shared/controls/SChoiceCards.css_vue_type_style_index_0_src_627a8628_scoped_627a8628_lang.css +0 -2
  33. package/dist/assets/src/components/shared/data-display/SStatus.css_vue_type_style_index_0_src_c76fa058_scoped_c76fa058_lang.css +0 -2
  34. package/dist/assets/src/components/shared/data-display/SVirtualList.css_vue_type_style_index_0_src_1717877d_scoped_1717877d_lang.css +0 -2
package/README.md CHANGED
@@ -551,14 +551,16 @@ button and owns ARIA/focus, while `pointerTarget` is applied to a passive
551
551
 
552
552
  ### Composer textarea
553
553
 
554
- `STextarea` передаёт исходный `ClipboardEvent` синхронно. Обработчик может
554
+ `STextarea` передаёт исходные `FocusEvent` через `focus`/`blur` и
555
+ `ClipboardEvent` через `paste` синхронно. Обработчик может
555
556
  отменить default-вставку файлов и изображений; текстовая вставка без
556
557
  `preventDefault()` остаётся native. Typed `suggestions` связывает multiline
557
558
  textbox с consumer-owned popup без private attributes. Нативная роль textarea
558
559
  сохраняется: `role="combobox"` для этого HTML-элемента не используется. Pixel
559
560
  bounds принадлежат auto-resize contract.
560
561
 
561
- `STextarea` emits the original `ClipboardEvent` synchronously. A handler may
562
+ `STextarea` synchronously emits the original `FocusEvent` through `focus`/`blur`
563
+ and the original `ClipboardEvent` through `paste`. A handler may
562
564
  cancel the default insertion for files and images; text paste remains native
563
565
  unless `preventDefault()` is called. The typed `suggestions` prop associates
564
566
  the multiline textbox with a consumer-owned popup without private attributes.
@@ -579,6 +581,8 @@ HTML element. Pixel bounds belong to the auto-resize contract.
579
581
  autocomplete: 'list',
580
582
  popupRole: 'listbox',
581
583
  }"
584
+ @focus="handleFocus"
585
+ @blur="handleBlur"
582
586
  @paste="handlePaste"
583
587
  />
584
588
  ```
@@ -590,6 +594,12 @@ function handlePaste(event: ClipboardEvent): void {
590
594
  attachFiles([...(event.clipboardData?.files ?? [])])
591
595
  }
592
596
 
597
+ function handleFocus(event: FocusEvent): void {
598
+ activeField.value = event.currentTarget instanceof HTMLTextAreaElement
599
+ ? event.currentTarget.id
600
+ : null
601
+ }
602
+
593
603
  composer.value?.setSelection({ start, end, direction: 'forward' })
594
604
  composer.value?.replaceSelection('@file README.md')
595
605
  ```
@@ -606,6 +616,73 @@ IME composition fails with an explicit diagnostic. The `selection-change`,
606
616
  `compositionstart`, `compositionupdate`, `compositionend`, and `state-change`
607
617
  events synchronize a popup without reading internal DOM.
608
618
 
619
+ ### Карточки и строки выбора / Choice cards and rows
620
+
621
+ `SChoiceCards` использует `appearance="cards"` для крупных плиток и
622
+ `appearance="rows"` для естественных по высоте стековых radio-строк. Оба
623
+ варианта сохраняют одинаковые `v-model`, keyboard roving, disabled, readonly,
624
+ validation и field semantics. `density="compact"` остаётся компактной
625
+ карточной плотностью и не заменяет rows presentation.
626
+
627
+ `SChoiceCards` uses `appearance="cards"` for large tiles and
628
+ `appearance="rows"` for natural-height stacked radio rows. Both presentations
629
+ share the same `v-model`, keyboard roving, disabled, readonly, validation, and
630
+ field semantics. `density="compact"` remains the compact card density and does
631
+ not replace the rows presentation.
632
+
633
+ ```vue
634
+ <SChoiceCards
635
+ v-model="scope"
636
+ label="Область ответа"
637
+ appearance="rows"
638
+ :options="scopeOptions"
639
+ />
640
+ ```
641
+
642
+ ### Длинные подписи кнопок / Long button labels
643
+
644
+ `SButton` по умолчанию сохраняет однострочную подпись с усечением. Для
645
+ действий с длинным названием разрешения, scope или политики используйте
646
+ `label-overflow="wrap"`: кнопка сохраняет semantic minimum текущего размера,
647
+ но растёт по содержимому и переносит подпись без consumer CSS. Icon, loading,
648
+ disabled, focus и keyboard contract не меняются.
649
+
650
+ `SButton` keeps its label on one truncated line by default. For permission,
651
+ scope, or policy actions with long names, use `label-overflow="wrap"`: the
652
+ button preserves the selected size's semantic minimum while growing with its
653
+ content and wrapping the label without consumer CSS. Icon, loading, disabled,
654
+ focus, and keyboard contracts remain unchanged.
655
+
656
+ ```vue
657
+ <SButton size="sm" label-overflow="wrap" @click="requestPermission">
658
+ Разрешить выполнение команды только для выбранного проекта
659
+ </SButton>
660
+ ```
661
+
662
+ ### Controlled checkbox и switch / Controlled checkbox and switch
663
+
664
+ `SCheckbox` и `SSwitch` всегда отражают authoritative `modelValue` в native
665
+ `checked` и assistive state. Пользовательское действие эмитит intent через
666
+ `update:modelValue`, но неподтверждённое значение не остаётся в DOM. Это
667
+ позволяет выполнять асинхронное сохранение или отклонять запрос без rekey,
668
+ ручного сброса DOM и optimistic-модели. После подтверждения consumer обновляет
669
+ `modelValue` обычным способом.
670
+
671
+ `SCheckbox` and `SSwitch` always reflect the authoritative `modelValue` in the
672
+ native `checked` and assistive state. User interaction emits intent through
673
+ `update:modelValue`, but an unconfirmed value never remains in the DOM. This
674
+ supports asynchronous persistence or rejection without rekeying, manual DOM
675
+ resets, or an optimistic model. The consumer updates `modelValue` normally
676
+ after confirmation.
677
+
678
+ ```vue
679
+ <SSwitch
680
+ :model-value="autoPublish"
681
+ label="Автоматическая публикация"
682
+ @update:model-value="saveAutoPublish"
683
+ />
684
+ ```
685
+
609
686
  ### Ограничения длины текста / Text length constraints
610
687
 
611
688
  `SInputText.minLength` и `SInputText.maxLength` задают native constraint
@@ -703,17 +780,45 @@ by the dialog surface.
703
780
  </SModal>
704
781
  ```
705
782
 
783
+ ### Assistive live status
784
+
785
+ `SStatus` с `visibility="assistive"` выводит всю status surface из layout,
786
+ сохраняя текст сообщения в accessibility tree. `live="polite"` или
787
+ `live="assertive"` задаёт live-region semantics; `ariaLabel` предоставляет
788
+ типизированное accessible name владельцу root без raw `aria-label`. Такой status
789
+ не создаёт дополнительный flex/grid item и не требует consumer `sr-only` CSS.
790
+
791
+ `SStatus` with `visibility="assistive"` removes the complete status surface from
792
+ layout while retaining the message in the accessibility tree. `live="polite"`
793
+ or `live="assertive"` declares live-region semantics; `ariaLabel` gives the root
794
+ owner a typed accessible name without a raw `aria-label`. This status does not
795
+ create an extra flex/grid item and requires no consumer-owned `sr-only` CSS.
796
+
797
+ ```vue
798
+ <SStatus
799
+ :label="turnAnnouncement"
800
+ :aria-label="turnAnnouncement"
801
+ visibility="assistive"
802
+ live="polite"
803
+ :icon="null"
804
+ />
805
+ ```
806
+
706
807
  ### Virtual conversation history
707
808
 
708
- `SVirtualList` сохраняет viewport по domain key и смещению внутри первой
709
- видимой строки. Prepend, keyed replace и пакетные variable-height measurements
710
- не требуют ручной коррекции `scrollTop`. Снимок переносится между экземплярами
711
- или сохраняется на время переключения чата.
809
+ `SVirtualList` использует `itemSize` как начальную оценку, а не минимальную
810
+ высоту: фактическое измерение принимает как сжатие, так и рост строк. Viewport
811
+ сохраняется по domain key и смещению внутри первой видимой строки. Prepend,
812
+ keyed replace, изменение `header`/`footer` и пакетные variable-height
813
+ measurements не требуют ручной коррекции `scrollTop`. Снимок переносится между
814
+ экземплярами или сохраняется на время переключения чата.
712
815
 
713
- `SVirtualList` preserves its viewport by domain key and the offset inside the
714
- first visible row. Prepend, keyed replacement, and batched variable-height
715
- measurements do not require manual `scrollTop` correction. A snapshot can move
716
- between instances or be retained while switching chats.
816
+ `SVirtualList` treats `itemSize` as an initial estimate rather than a minimum
817
+ height: actual measurement accepts both shrinking and growing rows. It
818
+ preserves the viewport by domain key and the offset inside the first visible
819
+ row. Prepend, keyed replacement, `header`/`footer` changes, and batched
820
+ variable-height measurements do not require manual `scrollTop` correction. A
821
+ snapshot can move between instances or be retained while switching chats.
717
822
 
718
823
  ```vue
719
824
  <SVirtualList
@@ -730,7 +835,19 @@ between instances or be retained while switching chats.
730
835
  accessible-label="История сообщений"
731
836
  @near-start="loadPreviousPage"
732
837
  @viewport-change="viewport = $event"
733
- />
838
+ >
839
+ <template #header>
840
+ <SButton variant="ghost" @click="loadPreviousPage">
841
+ Загрузить предыдущие
842
+ </SButton>
843
+ </template>
844
+ <template #default="{ item: message }">
845
+ <MessageRow :message="message" />
846
+ </template>
847
+ <template #footer>
848
+ <SStatus label="Конец истории" :icon="null" />
849
+ </template>
850
+ </SVirtualList>
734
851
  ```
735
852
 
736
853
  ```ts
@@ -745,6 +862,10 @@ history.value?.scrollToEnd({ follow: true })
745
862
  явного `scrollToEnd()` или пользовательского возврата в конец. Append, stream,
746
863
  resize и shrink не включают follow-tail самостоятельно. `role=log`, live mode и
747
864
  busy state задаются typed props `semanticRole`, `live` и `busy`.
865
+ Paging, status и end-marker рендерятся через `header`/`footer`, а не как
866
+ синтетические элементы domain-списка. Home, End, Page и Arrow keys владеют
867
+ viewport navigation только при focus самого `SVirtualList`; вложенный
868
+ editable/control сохраняет свою keyboard-семантику.
748
869
 
749
870
  `viewport-change` reports the keyed anchor, visible range, `nearStart`, `atEnd`,
750
871
  and `pinnedToEnd`. An upward wheel, keyboard, or scrollbar gesture detaches
@@ -752,6 +873,10 @@ follow-tail until an explicit `scrollToEnd()` or a user return to the end.
752
873
  Append, stream, resize, and shrink do not re-enable follow-tail. `role=log`, the
753
874
  live mode, and busy state are declared through the typed `semanticRole`, `live`,
754
875
  and `busy` props.
876
+ Paging, status, and end markers belong in `header`/`footer`, not in the keyed
877
+ domain items. Home, End, Page, and Arrow keys control the viewport only while
878
+ `SVirtualList` itself owns focus; a nested editable/control retains its own
879
+ keyboard semantics.
755
880
 
756
881
  ## Темы и стили / Themes and styles
757
882
 
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-a5d8f7e0],[data-v-a5d8f7e0]:before,[data-v-a5d8f7e0]:after,[data-v-a5d8f7e0]::backdrop{--tw-font-weight:initial;--tw-leading:initial}}}.s-button[data-v-a5d8f7e0]{--s-button-accent:var(--s-button-primary-accent);--s-button-solid-background:var(--s-button-primary-solid-background);--s-button-solid-background-hover:var(--s-button-primary-solid-background-hover);--s-button-solid-background-active:var(--s-button-primary-solid-background-active);--s-button-on-solid:var(--s-button-primary-solid-foreground);--s-button-foreground:var(--s-button-primary-foreground);--s-button-outline:var(--s-button-accent)}@supports (color:color-mix(in lab, red, red)){.s-button[data-v-a5d8f7e0]{--s-button-outline:color-mix(in srgb, var(--s-button-accent) 45%, transparent)}}.s-button[data-v-a5d8f7e0]{--s-button-soft-background:var(--s-button-accent)}@supports (color:color-mix(in lab, red, red)){.s-button[data-v-a5d8f7e0]{--s-button-soft-background:color-mix(in srgb, var(--s-button-accent) 12%, transparent)}}.s-button[data-v-a5d8f7e0]{--s-button-hover-background:var(--s-button-accent)}@supports (color:color-mix(in lab, red, red)){.s-button[data-v-a5d8f7e0]{--s-button-hover-background:color-mix(in srgb, var(--s-button-accent) 10%, transparent)}}.s-button[data-v-a5d8f7e0]{--tw-font-weight:var(--font-weight-semibold,600);min-width:0;font-weight:var(--font-weight-semibold,600);border-radius:var(--radius-xs);appearance:none;touch-action:manipulation;transition:background-color var(--s-motion-standard) ease, border-color var(--s-motion-standard) ease, box-shadow var(--s-motion-standard) ease, color var(--s-motion-standard) ease, transform var(--s-motion-fast) ease;border:1px solid #0000;justify-content:center;align-items:center;font-family:inherit;line-height:1.25;text-decoration:none;display:inline-flex;position:relative}.s-button[data-size=xs][data-v-a5d8f7e0]:not([data-icon-only=true]){block-size:var(--s-control-hitbox-xs);min-block-size:var(--s-control-hitbox-xs);padding:0 .5rem;font-size:.75rem}.s-button[data-density=compact][data-size=xs][data-v-a5d8f7e0]:not([data-icon-only=true]){block-size:var(--s-control-hitbox-2xs);min-block-size:var(--s-control-hitbox-2xs);padding-block:0}.s-button[data-density=compact][data-size=sm][data-v-a5d8f7e0]:not([data-icon-only=true]){block-size:var(--s-control-hitbox-xs);min-block-size:var(--s-control-hitbox-xs)}.s-button[data-density=compact][data-size=md][data-v-a5d8f7e0]:not([data-icon-only=true]){block-size:var(--s-control-hitbox-sm);min-block-size:var(--s-control-hitbox-sm)}.s-button[data-density=compact][data-size=lg][data-v-a5d8f7e0]:not([data-icon-only=true]){block-size:var(--s-control-hitbox-md);min-block-size:var(--s-control-hitbox-md);font-size:.875rem}.s-button[data-size=sm][data-v-a5d8f7e0]:not([data-icon-only=true]){block-size:var(--s-control-hitbox-sm);min-block-size:var(--s-control-hitbox-sm);padding:0 .625rem;font-size:.75rem}.s-button[data-spacing=tight][data-size=sm][data-v-a5d8f7e0]:not([data-icon-only=true]){height:var(--s-control-hitbox-sm);min-height:var(--s-control-hitbox-sm);padding-block:0;padding-inline:.25rem}.s-button[data-spacing=tight] .s-button__content[data-v-a5d8f7e0]{gap:.25rem}.s-button[data-size=md][data-v-a5d8f7e0]:not([data-icon-only=true]){block-size:var(--s-control-hitbox-md);min-block-size:var(--s-control-hitbox-md);padding:0 1.25rem;font-size:.875rem}.s-button[data-size=lg][data-v-a5d8f7e0]:not([data-icon-only=true]){block-size:var(--s-control-hitbox-lg);min-block-size:var(--s-control-hitbox-lg);padding:0 1.75rem;font-size:1.125rem}.s-button[data-label-overflow=wrap][data-v-a5d8f7e0]:not([data-icon-only=true]){block-size:auto;max-inline-size:100%;padding-block:.375rem}.s-button[data-label-overflow=wrap][data-density=compact][data-v-a5d8f7e0]:not([data-icon-only=true]){block-size:auto;padding-block:.25rem}.s-button[data-label-overflow=wrap][data-size=lg][data-v-a5d8f7e0]:not([data-icon-only=true]){padding-block:.5rem}.s-button[data-icon-only=true][data-v-a5d8f7e0]{flex:none;padding:0}.s-button[data-icon-only=true][data-size=xs][data-v-a5d8f7e0]{width:var(--s-control-hitbox-xs);height:var(--s-control-hitbox-xs)}.s-button[data-icon-only=true][data-size=sm][data-v-a5d8f7e0]{width:var(--s-control-hitbox-sm);height:var(--s-control-hitbox-sm)}.s-button[data-icon-only=true][data-size=md][data-v-a5d8f7e0]{width:var(--s-control-hitbox-md);height:var(--s-control-hitbox-md)}.s-button[data-icon-only=true][data-size=lg][data-v-a5d8f7e0]{width:var(--s-control-hitbox-lg);height:var(--s-control-hitbox-lg)}.s-button[data-density=compact][data-icon-only=true][data-size=xs][data-v-a5d8f7e0]{width:var(--s-control-hitbox-2xs);height:var(--s-control-hitbox-2xs)}.s-button[data-density=compact][data-icon-only=true][data-size=sm][data-v-a5d8f7e0]{width:var(--s-control-hitbox-xs);height:var(--s-control-hitbox-xs)}.s-button[data-density=compact][data-icon-only=true][data-size=md][data-v-a5d8f7e0]{width:var(--s-control-hitbox-sm);height:var(--s-control-hitbox-sm)}.s-button[data-density=compact][data-icon-only=true][data-size=lg][data-v-a5d8f7e0]{width:var(--s-control-hitbox-md);height:var(--s-control-hitbox-md)}.s-button[data-s-tone=secondary][data-v-a5d8f7e0]{--s-button-accent:var(--s-button-secondary-accent);--s-button-solid-background:var(--s-button-secondary-solid-background);--s-button-solid-background-hover:var(--s-button-secondary-solid-background-hover);--s-button-solid-background-active:var(--s-button-secondary-solid-background-active);--s-button-on-solid:var(--s-button-secondary-solid-foreground);--s-button-foreground:var(--s-button-secondary-foreground);--s-button-outline:var(--color-surface-300)}.s-button[data-s-tone=success][data-v-a5d8f7e0]{--s-button-accent:var(--s-button-success-accent);--s-button-solid-background:var(--s-button-success-solid-background);--s-button-solid-background-hover:var(--s-button-success-solid-background-hover);--s-button-solid-background-active:var(--s-button-success-solid-background-active);--s-button-on-solid:var(--s-button-success-solid-foreground);--s-button-foreground:var(--s-button-success-foreground)}.s-button[data-s-tone=info][data-v-a5d8f7e0]{--s-button-accent:var(--s-button-info-accent);--s-button-solid-background:var(--s-button-info-solid-background);--s-button-solid-background-hover:var(--s-button-info-solid-background-hover);--s-button-solid-background-active:var(--s-button-info-solid-background-active);--s-button-on-solid:var(--s-button-info-solid-foreground);--s-button-foreground:var(--s-button-info-foreground)}.s-button[data-s-tone=warn][data-v-a5d8f7e0]{--s-button-accent:var(--s-button-warn-accent);--s-button-solid-background:var(--s-button-warn-solid-background);--s-button-solid-background-hover:var(--s-button-warn-solid-background-hover);--s-button-solid-background-active:var(--s-button-warn-solid-background-active);--s-button-on-solid:var(--s-button-warn-solid-foreground);--s-button-foreground:var(--s-button-warn-foreground)}.s-button[data-s-tone=danger][data-v-a5d8f7e0]{--s-button-accent:var(--s-button-danger-accent);--s-button-solid-background:var(--s-button-danger-solid-background);--s-button-solid-background-hover:var(--s-button-danger-solid-background-hover);--s-button-solid-background-active:var(--s-button-danger-solid-background-active);--s-button-on-solid:var(--s-button-danger-solid-foreground);--s-button-foreground:var(--s-button-danger-foreground)}.s-button[data-s-tone=contrast][data-v-a5d8f7e0]{--s-button-accent:var(--s-button-contrast-accent);--s-button-solid-background:var(--s-button-contrast-solid-background);--s-button-solid-background-hover:var(--s-button-contrast-solid-background-hover);--s-button-solid-background-active:var(--s-button-contrast-solid-background-active);--s-button-on-solid:var(--s-button-contrast-solid-foreground);--s-button-foreground:var(--s-button-contrast-foreground);--s-button-outline:var(--color-surface-500)}.s-button[data-appearance=solid][data-v-a5d8f7e0]{border-color:var(--s-button-solid-background);background:var(--s-button-solid-background);box-shadow:var(--s-elevation-control);color:var(--s-button-on-solid)}.s-button[data-appearance=solid][data-v-a5d8f7e0]:hover:not(:disabled){border-color:var(--s-button-solid-background-hover);background:var(--s-button-solid-background-hover)}.s-button[aria-disabled=true][data-v-a5d8f7e0]{pointer-events:none}.s-button[data-appearance=solid][data-v-a5d8f7e0]:active:not(:disabled){border-color:var(--s-button-solid-background-active);background:var(--s-button-solid-background-active)}.s-button[data-appearance=soft][data-v-a5d8f7e0]{background:var(--s-button-soft-background);color:var(--s-button-foreground)}.s-button[data-appearance=soft][data-v-a5d8f7e0]:hover:not(:disabled){background:var(--s-button-accent)}@supports (color:color-mix(in lab, red, red)){.s-button[data-appearance=soft][data-v-a5d8f7e0]:hover:not(:disabled){background:color-mix(in srgb, var(--s-button-accent) 20%, transparent)}}.s-button[data-appearance=outline][data-v-a5d8f7e0]{border-color:var(--s-button-outline);color:var(--s-button-foreground);background:0 0}.s-button[data-appearance=outline][data-v-a5d8f7e0]:hover:not(:disabled),.s-button[data-appearance=ghost][data-v-a5d8f7e0]:hover:not(:disabled){background:var(--s-button-hover-background)}.s-button[data-hover-surface=parent][data-appearance=ghost][data-v-a5d8f7e0]:hover:not(:disabled){background:0 0}.s-button[data-appearance=ghost][data-v-a5d8f7e0],.s-button[data-appearance=text][data-v-a5d8f7e0]{box-shadow:none;color:var(--s-button-foreground);background:0 0}.s-button[data-appearance=text][data-v-a5d8f7e0]{padding-inline:.25rem}.s-button[data-appearance=text][data-v-a5d8f7e0]:hover:not(:disabled){text-decoration:underline}.s-button[data-v-a5d8f7e0]:focus-visible{z-index:var(--s-layer-focused-control);outline:var(--s-focus-ring-width) solid var(--s-button-accent);outline-offset:var(--s-focus-ring-offset)}.s-button[data-v-a5d8f7e0]:active:not(:disabled){transform:translateY(1px)}.s-button[aria-pressed=true][data-v-a5d8f7e0],.s-button[aria-pressed=mixed][data-v-a5d8f7e0]{box-shadow:0 0 0 2px var(--s-button-accent)}@supports (color:color-mix(in lab, red, red)){.s-button[aria-pressed=true][data-v-a5d8f7e0],.s-button[aria-pressed=mixed][data-v-a5d8f7e0]{box-shadow:0 0 0 2px color-mix(in srgb, var(--s-button-accent) 30%, transparent)}}.s-button[data-appearance=ghost][aria-current=page][data-v-a5d8f7e0],.s-button[data-appearance=soft][aria-current=page][data-v-a5d8f7e0]{background:var(--s-button-soft-background);color:var(--s-button-foreground)}.s-button[data-v-a5d8f7e0]:disabled,.s-button[aria-disabled=true][data-v-a5d8f7e0]{background:var(--s-button-disabled-background);box-shadow:none;color:var(--s-button-disabled-foreground);cursor:not-allowed;border-color:#0000}.s-button[data-appearance=ghost][data-v-a5d8f7e0]:disabled,.s-button[data-appearance=text][data-v-a5d8f7e0]:disabled{background:0 0}.s-button[data-loading=true][data-v-a5d8f7e0]{cursor:wait;opacity:.75}.s-button[data-loading=true] .s-button__content[data-v-a5d8f7e0]{opacity:0}.s-button__content[data-v-a5d8f7e0]{justify-content:center;align-items:center;gap:var(--s-space-control-gap);flex-shrink:0;min-width:0;display:inline-flex}.s-button[data-width=full][data-v-a5d8f7e0]{width:100%;display:flex}.s-button[data-width=fit][data-v-a5d8f7e0]{width:fit-content}.s-button[data-width=full] .s-button__content[data-v-a5d8f7e0]{width:100%}.s-button[data-content-align=start] .s-button__content[data-v-a5d8f7e0]{text-align:left;justify-content:flex-start}.s-button[data-content-align=end] .s-button__content[data-v-a5d8f7e0]{text-align:right;justify-content:flex-end}.s-button[data-content-align=between] .s-button__content[data-v-a5d8f7e0]{text-align:left;justify-content:space-between}.s-button[data-shape=pill][data-v-a5d8f7e0],.s-button[data-shape=circle][data-v-a5d8f7e0]{border-radius:var(--s-radius-pill)}.s-button[data-shape=square][data-v-a5d8f7e0],.s-button[data-shape=row][data-v-a5d8f7e0]{border-radius:var(--radius-xs)}.s-button[data-shape=row][data-v-a5d8f7e0]{width:100%}.s-button__label[data-v-a5d8f7e0]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.s-button[data-label-overflow=wrap] .s-button__content[data-v-a5d8f7e0]{flex:auto;max-inline-size:100%}.s-button[data-label-overflow=wrap] .s-button__label[data-v-a5d8f7e0]{overflow-wrap:anywhere;text-overflow:clip;white-space:normal;flex:auto;overflow:visible}.s-button__badge-slot[data-v-a5d8f7e0]{margin-left:auto;display:inline-flex}.s-button__shortcut[data-v-a5d8f7e0]{text-align:right;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:calc(var(--spacing,.25rem) * 4);line-height:calc(var(--spacing,.25rem) * 4);white-space:nowrap;color:var(--color-surface-400);margin-left:auto}.dark{color:var(--color-surface-500)}.s-button__icon[data-v-a5d8f7e0]{width:var(--s-icon-size-xs);height:var(--s-icon-size-xs);flex:none}.s-button[data-size=lg] .s-button__icon[data-v-a5d8f7e0]{width:var(--s-icon-size-sm);height:var(--s-icon-size-sm)}.s-button[data-icon-size=large] .s-button__icon[data-v-a5d8f7e0]{width:var(--s-icon-size-md);height:var(--s-icon-size-md)}.s-button__loader[data-v-a5d8f7e0]{display:inline-flex;position:absolute}.s-button__disclosure-icon[data-v-a5d8f7e0]{transition:transform var(--s-motion-fast) ease}.s-button__disclosure-icon[data-expanded=true][data-v-a5d8f7e0]{transform:rotate(90deg)}.s-button__disclosure-icon>svg[data-v-a5d8f7e0]{width:100%;height:100%}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-af9fa9d1],[data-v-af9fa9d1]:before,[data-v-af9fa9d1]:after,[data-v-af9fa9d1]::backdrop{--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-font-weight:initial;--tw-tracking:initial;--tw-leading:initial}}}.s-choice-cards[data-v-af9fa9d1]{gap:.75rem;display:grid}.s-choice-cards[data-columns=auto][data-v-af9fa9d1]{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.s-choice-cards[data-columns="2"][data-v-af9fa9d1]{grid-template-columns:repeat(2,minmax(0,1fr))}.s-choice-cards[data-columns="3"][data-v-af9fa9d1]{grid-template-columns:repeat(3,minmax(0,1fr))}.s-choice-cards[data-appearance=rows][data-v-af9fa9d1]{grid-template-columns:minmax(0,1fr);gap:.5rem}.s-choice-card[data-v-af9fa9d1]{min-height:calc(var(--spacing,.25rem) * 28);align-items:flex-start;gap:calc(var(--spacing,.25rem) * 2);border-radius:var(--radius-2xl,1rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-surface-300,#cbd5e1);background-color:var(--color-surface-0,#fff);min-width:0;padding:calc(var(--spacing,.25rem) * 4);text-align:left;color:var(--color-surface-800,#1e293b);flex-direction:column;display:flex;position:relative;overflow:hidden}@media (hover:hover){.s-choice-card[data-v-af9fa9d1]:hover{border-color:var(--color-primary-300,#93c5fd);background-color:#eff6ff4d}@supports (color:color-mix(in lab, red, red)){.s-choice-card[data-v-af9fa9d1]:hover{background-color:color-mix(in oklab, var(--color-primary-50,#eff6ff) 30%, transparent)}}}.s-choice-card[data-v-af9fa9d1]:disabled{cursor:not-allowed;opacity:.5}.s-choice-card[data-v-af9fa9d1]:where(.dark,.dark *){border-color:var(--color-surface-700,#334155);background-color:var(--color-surface-900,#0f172a);color:var(--color-surface-100,#f1f5f9)}.s-choice-card[data-v-af9fa9d1]:focus-visible{outline:var(--s-focus-ring-width) solid var(--s-focus-ring-color);outline-offset:var(--s-focus-ring-offset)}.s-choice-card[aria-checked=true][data-v-af9fa9d1]{border-color:var(--color-primary-500,#3b82f6);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:#3b82f633}@supports (color:color-mix(in lab, red, red)){.s-choice-card[aria-checked=true][data-v-af9fa9d1]{--tw-ring-color:color-mix(in oklab, var(--color-primary-500,#3b82f6) 20%, transparent)}}.s-choice-card__kicker[data-v-af9fa9d1]{--tw-font-weight:var(--font-weight-semibold,600);font-size:.7rem;font-weight:var(--font-weight-semibold,600);--tw-tracking:var(--tracking-wide,.025em);letter-spacing:var(--tracking-wide,.025em);color:var(--color-surface-500,#64748b);text-transform:uppercase}.s-choice-card__kicker[data-v-af9fa9d1]:where(.dark,.dark *){color:var(--color-surface-400,#94a3b8)}.s-choice-card__title[data-v-af9fa9d1]{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-leading:calc(var(--spacing,.25rem) * 5);line-height:calc(var(--spacing,.25rem) * 5);--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600)}.s-choice-card__description[data-v-af9fa9d1]{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:calc(var(--spacing,.25rem) * 5);line-height:calc(var(--spacing,.25rem) * 5);color:var(--color-surface-500,#64748b)}.s-choice-card__description[data-v-af9fa9d1]:where(.dark,.dark *){color:var(--color-surface-400,#94a3b8)}.s-choice-card__meta[data-v-af9fa9d1]{font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:calc(var(--spacing,.25rem) * 4);line-height:calc(var(--spacing,.25rem) * 4);color:var(--color-surface-500,#64748b);margin-top:auto}.s-choice-card__meta[data-v-af9fa9d1]:where(.dark,.dark *){color:var(--color-surface-400,#94a3b8)}.s-choice-card__mark[data-v-af9fa9d1]{top:calc(var(--spacing,.25rem) * 4);right:calc(var(--spacing,.25rem) * 4);height:calc(var(--spacing,.25rem) * 6);width:calc(var(--spacing,.25rem) * 6);background-color:var(--color-primary-100,#dbeafe);--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:var(--color-primary-600,#2563eb);border-radius:2147483647px;justify-content:center;align-items:center;display:inline-flex;position:absolute}.s-choice-cards[data-density=compact] .s-choice-card[data-v-af9fa9d1]{min-height:calc(var(--spacing,.25rem) * 24);padding:calc(var(--spacing,.25rem) * 3)}.s-choice-cards[data-appearance=rows] .s-choice-card[data-v-af9fa9d1]{gap:calc(var(--spacing,.25rem) * .5);border-radius:var(--radius-xl,1.5rem);min-height:0;padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2)}.s-choice-cards[data-appearance=rows] .s-choice-card__meta[data-v-af9fa9d1]{margin-top:var(--spacing,.25rem)}.s-choice-cards[aria-readonly=true] .s-choice-card[data-v-af9fa9d1]{cursor:default}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-124ca461],[data-v-124ca461]:before,[data-v-124ca461]:after,[data-v-124ca461]::backdrop{--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-font-weight:initial}}}.s-code-editor[data-v-124ca461]{width:100%;min-width:0;max-width:100%;min-height:0;overflow:hidden}.s-code-editor[data-viewport=content][data-v-124ca461]{max-height:var(--s-code-editor-viewport-content-max)}.s-code-editor[data-viewport=document][data-v-124ca461]{overflow:visible}.s-code-editor[data-viewport=document][data-v-124ca461] .cm-editor{height:auto;max-height:none;overflow:visible}.s-code-editor[data-viewport=document][data-variant][data-v-124ca461] .cm-scroller{height:auto;overflow:visible}.s-code-editor[data-viewport=compact][data-v-124ca461]{height:var(--s-code-editor-viewport-compact)}.s-code-editor[data-viewport=standard][data-v-124ca461]{height:var(--s-code-editor-viewport-standard)}.s-code-editor[data-viewport=expanded][data-v-124ca461]{height:var(--s-code-editor-viewport-expanded)}.s-code-editor[data-viewport=fill][data-v-124ca461]{height:100%}.s-code-editor[data-v-124ca461] .cm-editor{min-width:0;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));width:100%;max-width:100%;height:inherit;max-height:inherit}.s-code-editor[data-v-124ca461] .cm-scroller{max-width:100%;overflow:auto}.s-code-editor[data-line-numbers=hidden][data-v-124ca461] .cm-gutters{display:none}.s-code-editor[data-line-numbers=hidden][data-v-124ca461] .cm-content{padding-left:0}.s-code-editor[data-variant=code][data-v-124ca461] .cm-scroller{padding:calc(var(--spacing,.25rem) * 3);overflow-x:auto}.s-code-editor[data-variant=code][data-v-124ca461] .cm-lineNumbers{padding-inline:calc(var(--spacing,.25rem) * 1.5)}.s-code-editor[data-variant=sql][data-v-124ca461] .cm-line{padding-inline:.75rem}.s-code-editor[data-variant=sql][data-v-124ca461] .cm-content{min-height:12rem}.s-code-editor[data-variant=sql][data-v-124ca461]:not([data-viewport=content]) .cm-content{min-height:100%}.s-code-editor[data-v-124ca461] .cm-gutters{color:var(--color-surface-400,#94a3b8)}.s-code-editor[data-v-124ca461] .cm-gutters:where(.dark,.dark *){color:var(--color-surface-500,#64748b)}.s-code-editor[data-v-124ca461] .cm-lintRange-error{-webkit-text-decoration-color:var(--s-code-editor-diagnostic-error);-webkit-text-decoration-color:var(--s-code-editor-diagnostic-error);-webkit-text-decoration-color:var(--s-code-editor-diagnostic-error);text-decoration-color:var(--s-code-editor-diagnostic-error)}.s-code-editor[data-v-124ca461] .cm-lintRange-warning{-webkit-text-decoration-color:var(--s-code-editor-diagnostic-warning);-webkit-text-decoration-color:var(--s-code-editor-diagnostic-warning);-webkit-text-decoration-color:var(--s-code-editor-diagnostic-warning);text-decoration-color:var(--s-code-editor-diagnostic-warning)}:is(.s-code-editor[data-v-124ca461] .cm-lintRange-info,.s-code-editor[data-v-124ca461] .cm-lintRange-hint){-webkit-text-decoration-color:var(--s-code-editor-diagnostic-info);-webkit-text-decoration-color:var(--s-code-editor-diagnostic-info);-webkit-text-decoration-color:var(--s-code-editor-diagnostic-info);text-decoration-color:var(--s-code-editor-diagnostic-info)}.s-code-editor__diagnostics[data-v-124ca461]{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.s-code-editor[data-v-124ca461] .cm-tooltip{border-radius:var(--radius-md,.75rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-surface-200,#e2e8f0);background-color:var(--color-surface-0,#fff);color:var(--color-surface-900,#0f172a);--tw-shadow:0 20px 50px var(--tw-shadow-color,#0f172a24);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.s-code-editor[data-v-124ca461] .cm-tooltip:where(.dark,.dark *){border-color:var(--color-surface-700,#334155);background-color:var(--color-surface-800,#1e293b);color:var(--color-surface-100,#f1f5f9)}.s-code-editor[data-v-124ca461] .cm-tooltip{z-index:var(--s-layer-floating)}.s-code-editor[data-v-124ca461] .cm-panels{z-index:var(--s-layer-affordance);pointer-events:none;inset-inline:0;background:0 0;border:0;justify-content:center;padding:0 1rem 1rem;display:flex;position:absolute;bottom:0}.s-code-editor[data-v-124ca461] .cm-panel[class~=s-codemirror-search-panel-host]{pointer-events:auto;background:0 0;border:0;width:min(34rem,100vw - 2rem);max-width:calc(100vw - 2rem);margin:0;padding:0}.s-code-editor[data-v-124ca461] .cm-searchMatch{background-color:var(--s-code-editor-search-match-background)}.s-code-editor[data-v-124ca461] .cm-searchMatch.cm-searchMatch-selected{background-color:var(--s-code-editor-search-match-selected-background);outline:1px solid var(--s-code-editor-search-match-selected-outline)}:is(.s-code-editor[data-v-124ca461] .cm-tooltip-hover,.s-code-editor[data-v-124ca461] .cm-completionInfo,.s-code-editor[data-v-124ca461] .cm-tooltip-markdown){border-radius:var(--radius-xl,1.5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-surface-200,#e2e8f0);background-color:var(--color-surface-0,#fff);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-surface-900,#0f172a);--tw-shadow:0 30px 80px var(--tw-shadow-color,#0f172a2e);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:is(.s-code-editor[data-v-124ca461] .cm-tooltip-hover,.s-code-editor[data-v-124ca461] .cm-completionInfo,.s-code-editor[data-v-124ca461] .cm-tooltip-markdown):where(.dark,.dark *){border-color:var(--color-surface-700,#334155);background-color:var(--color-surface-900,#0f172a);color:var(--color-surface-50,#f8fafc)}.s-code-editor[data-v-124ca461] .cm-tooltip-autocomplete{min-width:calc(var(--spacing,.25rem) * 72);border-radius:var(--radius-md,.75rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-surface-200,#e2e8f0);background-color:var(--color-surface-50,#f8fafc);color:var(--color-surface-900,#0f172a);--tw-shadow:0 30px 80px var(--tw-shadow-color,#0f172a2e);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.s-code-editor[data-v-124ca461] .cm-tooltip-autocomplete:where(.dark,.dark *){border-color:var(--color-surface-700,#334155);background-color:var(--color-surface-800,#1e293b);color:var(--color-surface-50,#f8fafc)}.s-code-editor[data-v-124ca461] .cm-tooltip-autocomplete>ul{max-height:calc(var(--spacing,.25rem) * 72);padding:var(--spacing,.25rem);font-family:var(--font-sans,"IBM Plex Sans", "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));margin:0;list-style-type:none;overflow-y:auto}.s-code-editor[data-v-124ca461] .cm-tooltip-autocomplete>ul>li{cursor:pointer;align-items:center;gap:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1.5);color:var(--color-surface-700,#334155);border-radius:.25rem;display:flex}.s-code-editor[data-v-124ca461] .cm-tooltip-autocomplete>ul>li:where(.dark,.dark *){color:var(--color-surface-300,#cbd5e1)}.s-code-editor[data-v-124ca461] .cm-tooltip-autocomplete>ul>li:hover{background-color:var(--color-surface-200,#e2e8f0)}.s-code-editor[data-v-124ca461] .cm-tooltip-autocomplete>ul>li:hover:where(.dark,.dark *){background-color:var(--color-surface-700,#334155)}.s-code-editor[data-v-124ca461] .cm-tooltip-autocomplete>ul>li[aria-selected]{background-color:var(--color-primary-500,#3b82f6);color:var(--color-white,#fff)}.s-code-editor[data-v-124ca461] .cm-completionLabel{text-overflow:ellipsis;white-space:nowrap;--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);overflow:hidden}.s-code-editor[data-v-124ca461] .cm-completionDetail{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));opacity:.7;margin-left:auto;font-style:italic;overflow:hidden}:is(.s-code-editor[data-v-124ca461] .cm-completionInfo,.s-code-editor[data-v-124ca461] .cm-tooltip-markdown__content){overscroll-behavior:contain;white-space:normal;max-height:min(26rem,100vh - 3rem);padding:.75rem .875rem;line-height:1.45;overflow:auto}.s-code-editor[data-v-124ca461] .cm-tooltip-markdown{white-space:normal;word-break:break-word;max-width:min(34rem,100vw - 2rem);max-height:min(30rem,100vh - 3rem);line-height:1.45;overflow:hidden}@media (width<=768px){.s-code-editor[data-v-124ca461] .cm-panels{padding-inline:.75rem;padding-bottom:.75rem}.s-code-editor[data-v-124ca461] .cm-panel[class~=s-codemirror-search-panel-host]{width:calc(100vw - 1.5rem);max-width:calc(100vw - 1.5rem)}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-font-weight{syntax:"*";inherits:false}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-3ad533d9],[data-v-3ad533d9]:before,[data-v-3ad533d9]:after,[data-v-3ad533d9]::backdrop{--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-font-weight:initial}}}.s-code-editor[data-v-3ad533d9]{width:100%;min-width:0;max-width:100%;min-height:0;overflow:hidden}.s-code-editor[data-viewport=content][data-v-3ad533d9]{max-height:var(--s-code-editor-viewport-content-max)}.s-code-editor[data-viewport=document][data-v-3ad533d9]{overflow:visible}.s-code-editor[data-viewport=document][data-v-3ad533d9] .cm-editor{height:auto;max-height:none;overflow:visible}.s-code-editor[data-viewport=document][data-variant][data-v-3ad533d9] .cm-scroller{height:auto;overflow:visible}.s-code-editor[data-viewport=compact][data-v-3ad533d9]{height:var(--s-code-editor-viewport-compact)}.s-code-editor[data-viewport=standard][data-v-3ad533d9]{height:var(--s-code-editor-viewport-standard)}.s-code-editor[data-viewport=expanded][data-v-3ad533d9]{height:var(--s-code-editor-viewport-expanded)}.s-code-editor[data-viewport=fill][data-v-3ad533d9]{height:100%}.s-code-editor[data-v-3ad533d9] .cm-editor{min-width:0;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));width:100%;max-width:100%;height:inherit;max-height:inherit}.s-code-editor[data-v-3ad533d9] .cm-scroller{max-width:100%;overflow:auto}.s-code-editor[data-line-numbers=hidden][data-v-3ad533d9] .cm-gutters{display:none}.s-code-editor[data-line-numbers=hidden][data-v-3ad533d9] .cm-content{padding-left:0}.s-code-editor[data-variant=code][data-v-3ad533d9] .cm-scroller{padding:calc(var(--spacing,.25rem) * 3);overflow-x:auto}.s-code-editor[data-variant=code][data-v-3ad533d9] .cm-lineNumbers{padding-inline:calc(var(--spacing,.25rem) * 1.5)}.s-code-editor[data-variant=sql][data-v-3ad533d9] .cm-line{padding-inline:.75rem}.s-code-editor[data-variant=sql][data-v-3ad533d9] .cm-content{min-height:12rem}.s-code-editor[data-variant=sql][data-v-3ad533d9]:not([data-viewport=content]) .cm-content{min-height:100%}.s-code-editor[data-v-3ad533d9] .cm-gutters{color:var(--color-surface-400,#94a3b8)}.s-code-editor[data-v-3ad533d9] .cm-gutters:where(.dark,.dark *){color:var(--color-surface-500,#64748b)}.s-code-editor[data-v-3ad533d9] .cm-lintRange-error{-webkit-text-decoration-color:var(--s-code-editor-diagnostic-error);-webkit-text-decoration-color:var(--s-code-editor-diagnostic-error);-webkit-text-decoration-color:var(--s-code-editor-diagnostic-error);text-decoration-color:var(--s-code-editor-diagnostic-error)}.s-code-editor[data-v-3ad533d9] .cm-lintRange-warning{-webkit-text-decoration-color:var(--s-code-editor-diagnostic-warning);-webkit-text-decoration-color:var(--s-code-editor-diagnostic-warning);-webkit-text-decoration-color:var(--s-code-editor-diagnostic-warning);text-decoration-color:var(--s-code-editor-diagnostic-warning)}:is(.s-code-editor[data-v-3ad533d9] .cm-lintRange-info,.s-code-editor[data-v-3ad533d9] .cm-lintRange-hint){-webkit-text-decoration-color:var(--s-code-editor-diagnostic-info);-webkit-text-decoration-color:var(--s-code-editor-diagnostic-info);-webkit-text-decoration-color:var(--s-code-editor-diagnostic-info);text-decoration-color:var(--s-code-editor-diagnostic-info)}.s-code-editor__diagnostics[data-v-3ad533d9]{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.s-code-editor[data-v-3ad533d9] .cm-tooltip{border-radius:var(--radius-md,.75rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-surface-200,#e2e8f0);background-color:var(--color-surface-0,#fff);color:var(--color-surface-900,#0f172a);--tw-shadow:0 20px 50px var(--tw-shadow-color,#0f172a24);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.s-code-editor[data-v-3ad533d9] .cm-tooltip:where(.dark,.dark *){border-color:var(--color-surface-700,#334155);background-color:var(--color-surface-800,#1e293b);color:var(--color-surface-100,#f1f5f9)}.s-code-editor[data-v-3ad533d9] .cm-tooltip{z-index:var(--s-layer-floating)}.s-code-editor[data-v-3ad533d9] .cm-panels{z-index:var(--s-layer-affordance);pointer-events:none;inset-inline:0;background:0 0;border:0;justify-content:center;padding:0 1rem 1rem;display:flex;position:absolute;bottom:0}.s-code-editor[data-v-3ad533d9] .cm-panel[class~=s-codemirror-search-panel-host]{pointer-events:auto;background:0 0;border:0;width:min(34rem,100vw - 2rem);max-width:calc(100vw - 2rem);margin:0;padding:0}.s-code-editor[data-v-3ad533d9] .cm-searchMatch{background-color:var(--s-code-editor-search-match-background)}.s-code-editor[data-v-3ad533d9] .cm-searchMatch.cm-searchMatch-selected{background-color:var(--s-code-editor-search-match-selected-background);outline:1px solid var(--s-code-editor-search-match-selected-outline)}:is(.s-code-editor[data-v-3ad533d9] .cm-tooltip-hover,.s-code-editor[data-v-3ad533d9] .cm-completionInfo,.s-code-editor[data-v-3ad533d9] .cm-tooltip-markdown){border-radius:var(--radius-xl,1.5rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-surface-200,#e2e8f0);background-color:var(--color-surface-0,#fff);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:var(--color-surface-900,#0f172a);--tw-shadow:0 30px 80px var(--tw-shadow-color,#0f172a2e);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:is(.s-code-editor[data-v-3ad533d9] .cm-tooltip-hover,.s-code-editor[data-v-3ad533d9] .cm-completionInfo,.s-code-editor[data-v-3ad533d9] .cm-tooltip-markdown):where(.dark,.dark *){border-color:var(--color-surface-700,#334155);background-color:var(--color-surface-900,#0f172a);color:var(--color-surface-50,#f8fafc)}.s-code-editor[data-v-3ad533d9] .cm-tooltip-autocomplete{min-width:calc(var(--spacing,.25rem) * 72);border-radius:var(--radius-md,.75rem);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-surface-200,#e2e8f0);background-color:var(--color-surface-50,#f8fafc);color:var(--color-surface-900,#0f172a);--tw-shadow:0 30px 80px var(--tw-shadow-color,#0f172a2e);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.s-code-editor[data-v-3ad533d9] .cm-tooltip-autocomplete:where(.dark,.dark *){border-color:var(--color-surface-700,#334155);background-color:var(--color-surface-800,#1e293b);color:var(--color-surface-50,#f8fafc)}.s-code-editor[data-v-3ad533d9] .cm-tooltip-autocomplete>ul{max-height:calc(var(--spacing,.25rem) * 72);padding:var(--spacing,.25rem);font-family:var(--font-sans,"IBM Plex Sans", "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));margin:0;list-style-type:none;overflow-y:auto}.s-code-editor[data-v-3ad533d9] .cm-tooltip-autocomplete>ul>li{cursor:pointer;align-items:center;gap:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1.5);color:var(--color-surface-700,#334155);border-radius:.25rem;display:flex}.s-code-editor[data-v-3ad533d9] .cm-tooltip-autocomplete>ul>li:where(.dark,.dark *){color:var(--color-surface-300,#cbd5e1)}.s-code-editor[data-v-3ad533d9] .cm-tooltip-autocomplete>ul>li:hover{background-color:var(--color-surface-200,#e2e8f0)}.s-code-editor[data-v-3ad533d9] .cm-tooltip-autocomplete>ul>li:hover:where(.dark,.dark *){background-color:var(--color-surface-700,#334155)}.s-code-editor[data-v-3ad533d9] .cm-tooltip-autocomplete>ul>li[aria-selected]{background-color:var(--color-primary-500,#3b82f6);color:var(--color-white,#fff)}.s-code-editor[data-v-3ad533d9] .cm-completionLabel{text-overflow:ellipsis;white-space:nowrap;--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);overflow:hidden}.s-code-editor[data-v-3ad533d9] .cm-completionDetail{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));opacity:.7;margin-left:auto;font-style:italic;overflow:hidden}:is(.s-code-editor[data-v-3ad533d9] .cm-completionInfo,.s-code-editor[data-v-3ad533d9] .cm-tooltip-markdown__content){overscroll-behavior:contain;white-space:normal;max-height:min(26rem,100vh - 3rem);padding:.75rem .875rem;line-height:1.45;overflow:auto}.s-code-editor[data-v-3ad533d9] .cm-tooltip-markdown{white-space:normal;word-break:break-word;max-width:min(34rem,100vw - 2rem);max-height:min(30rem,100vh - 3rem);line-height:1.45;overflow:hidden}@media (width<=768px){.s-code-editor[data-v-3ad533d9] .cm-panels{padding-inline:.75rem;padding-bottom:.75rem}.s-code-editor[data-v-3ad533d9] .cm-panel[class~=s-codemirror-search-panel-host]{width:calc(100vw - 1.5rem);max-width:calc(100vw - 1.5rem)}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-font-weight{syntax:"*";inherits:false}
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-3ce41a12],[data-v-3ce41a12]:before,[data-v-3ce41a12]:after,[data-v-3ce41a12]::backdrop{--tw-font-weight:initial;--tw-leading:initial;--tw-border-style:solid}}}.s-status[data-v-3ce41a12]{--tw-font-weight:var(--font-weight-medium,500);min-width:0;font-weight:var(--font-weight-medium,500);align-items:center;display:inline-flex}.s-status[data-visibility=assistive][data-v-3ce41a12]{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.s-status[data-size=xs][data-v-3ce41a12]{gap:var(--spacing,.25rem);--tw-leading:calc(var(--spacing,.25rem) * 4);font-size:10px;line-height:calc(var(--spacing,.25rem) * 4)}.s-status[data-size=sm][data-v-3ce41a12]{gap:calc(var(--spacing,.25rem) * 1.5);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-leading:calc(var(--spacing,.25rem) * 4);line-height:calc(var(--spacing,.25rem) * 4)}.s-status[data-size=md][data-v-3ce41a12]{gap:calc(var(--spacing,.25rem) * 1.5);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-leading:calc(var(--spacing,.25rem) * 5);line-height:calc(var(--spacing,.25rem) * 5)}.s-status[data-appearance=soft][data-v-3ce41a12]{border-style:var(--tw-border-style);padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * .5);border-width:1px;border-radius:2147483647px}.s-status__icon[data-v-3ce41a12]{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.s-status[data-size=xs] .s-status__icon[data-v-3ce41a12]{height:calc(var(--spacing,.25rem) * 3);width:calc(var(--spacing,.25rem) * 3)}.s-status[data-size=sm] .s-status__icon[data-v-3ce41a12]{height:calc(var(--spacing,.25rem) * 3.5);width:calc(var(--spacing,.25rem) * 3.5)}.s-status[data-size=md] .s-status__icon[data-v-3ce41a12]{height:calc(var(--spacing,.25rem) * 4);width:calc(var(--spacing,.25rem) * 4)}.s-status__icon-graphic[data-v-3ce41a12]{width:100%;height:100%}.s-status__label[data-v-3ce41a12]{overflow-wrap:anywhere;min-width:0}.s-status[data-label-visibility=sr-only] .s-status__label[data-v-3ce41a12]{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.s-status[data-s-tone=neutral][data-v-3ce41a12]{color:var(--color-surface-500,#64748b)}.s-status[data-s-tone=neutral][data-v-3ce41a12]:where(.dark,.dark *){color:var(--color-surface-400,#94a3b8)}.s-status[data-s-tone=info][data-v-3ce41a12]{color:var(--color-info-700,#1d4ed8)}.s-status[data-s-tone=info][data-v-3ce41a12]:where(.dark,.dark *){color:var(--color-info-300,#93c5fd)}.s-status[data-s-tone=success][data-v-3ce41a12]{color:var(--color-success-700,#15803d)}.s-status[data-s-tone=success][data-v-3ce41a12]:where(.dark,.dark *){color:var(--color-success-300,#86efac)}.s-status[data-s-tone=warn][data-v-3ce41a12]{color:var(--color-warn-700,#c2410c)}.s-status[data-s-tone=warn][data-v-3ce41a12]:where(.dark,.dark *){color:var(--color-warn-300,#fdba74)}.s-status[data-s-tone=danger][data-v-3ce41a12]{color:var(--color-danger-700,#b91c1c)}.s-status[data-s-tone=danger][data-v-3ce41a12]:where(.dark,.dark *){color:var(--color-danger-300,#fca5a5)}.s-status[data-appearance=soft][data-s-tone=neutral][data-v-3ce41a12]{border-color:var(--color-surface-200,#e2e8f0);background-color:var(--color-surface-100,#f1f5f9)}.s-status[data-appearance=soft][data-s-tone=neutral][data-v-3ce41a12]:where(.dark,.dark *){border-color:var(--color-surface-700,#334155);background-color:var(--color-surface-800,#1e293b)}.s-status[data-appearance=soft][data-s-tone=info][data-v-3ce41a12]{border-color:var(--color-info-200,#bfdbfe);background-color:var(--color-info-50,#eff6ff)}.s-status[data-appearance=soft][data-s-tone=info][data-v-3ce41a12]:where(.dark,.dark *){border-color:var(--color-info-800,#1e40af);background-color:var(--color-info-950,#172554)}.s-status[data-appearance=soft][data-s-tone=success][data-v-3ce41a12]{border-color:var(--color-success-200,#bbf7d0);background-color:var(--color-success-50,#f0fdf4)}.s-status[data-appearance=soft][data-s-tone=success][data-v-3ce41a12]:where(.dark,.dark *){border-color:var(--color-success-800,#166534);background-color:var(--color-success-950,#052e16)}.s-status[data-appearance=soft][data-s-tone=warn][data-v-3ce41a12]{border-color:var(--color-warn-200,#fed7aa);background-color:var(--color-warn-50,#fff7ed)}.s-status[data-appearance=soft][data-s-tone=warn][data-v-3ce41a12]:where(.dark,.dark *){border-color:var(--color-warn-800,#9a3412);background-color:var(--color-warn-950,#431407)}.s-status[data-appearance=soft][data-s-tone=danger][data-v-3ce41a12]{border-color:var(--color-danger-200,#fecaca);background-color:var(--color-danger-50,#fef2f2)}.s-status[data-appearance=soft][data-s-tone=danger][data-v-3ce41a12]:where(.dark,.dark *){border-color:var(--color-danger-800,#991b1b);background-color:var(--color-danger-950,#450a0a)}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
+ .s-virtual-list[data-v-cee8c247]{overflow-anchor:none;width:100%;min-width:0}.s-virtual-list[data-v-cee8c247]:focus-visible{outline:var(--s-focus-ring-width) solid var(--s-focus-ring-strong-color);outline-offset:var(--s-focus-ring-inset-offset)}.s-virtual-list__spacer[data-v-cee8c247]{pointer-events:none;width:100%}.s-virtual-list__header[data-v-cee8c247],.s-virtual-list__footer[data-v-cee8c247]{box-sizing:border-box;width:100%;min-width:0;position:absolute;left:0;right:0}.s-virtual-list__header[data-v-cee8c247]{top:0}.s-virtual-list__item[data-v-cee8c247]{box-sizing:border-box;width:100%;min-width:0}.s-virtual-list__item[data-v-cee8c247]:focus-visible{outline:var(--s-focus-ring-width) solid var(--s-focus-ring-strong-color);outline-offset:var(--s-focus-ring-inset-offset)}
@@ -1,5 +1,5 @@
1
1
  import { Component } from 'vue';
2
- import { SMenuEntry } from '../shared/controls/menu.ts';
2
+ import { SMenuEntry, SMenuSelectableEntry } from '../shared/controls/menu';
3
3
  import { BadgeSeverity } from '../shared/data-display/SBadge.vue';
4
4
  type __VLS_Props = {
5
5
  title: string;
@@ -12,6 +12,7 @@ export type SButtonWidth = 'auto' | 'fit' | 'full';
12
12
  export type SButtonContentAlign = 'center' | 'start' | 'end' | 'between';
13
13
  export type SButtonAppearance = 'solid' | 'soft' | 'outline' | 'ghost' | 'text';
14
14
  export type SButtonShape = 'default' | 'pill' | 'square' | 'circle' | 'row';
15
+ export type SButtonLabelOverflow = 'truncate' | 'wrap';
15
16
  export type SButtonNativeType = 'button' | 'reset' | 'submit';
16
17
  export interface SButtonDisclosure {
17
18
  expanded: boolean;
@@ -41,6 +42,8 @@ interface SButtonPresentationProps {
41
42
  contentAlign?: SButtonContentAlign;
42
43
  appearance?: SButtonAppearance;
43
44
  shape?: SButtonShape;
45
+ /** Visual overflow policy for the text label; wrap preserves the semantic hitbox as a minimum. */
46
+ labelOverflow?: SButtonLabelOverflow;
44
47
  pressed?: boolean | 'mixed';
45
48
  busy?: boolean;
46
49
  disclosure?: SButtonDisclosure;
@@ -1,8 +1,8 @@
1
- import "../../../../assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_52ad38b1_scoped_52ad38b1_lang.css";
1
+ import "../../../../assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_a5d8f7e0_scoped_a5d8f7e0_lang.css";
2
2
  import e from "../../../../_virtual/_plugin-vue_export-helper.js";
3
3
  import t from "./SButton.vue_vue_type_script_setup_true_lang.js";
4
4
  /* empty css */
5
5
  //#region src/components/shared/controls/SButton.vue
6
- var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-52ad38b1"]]);
6
+ var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-a5d8f7e0"]]);
7
7
  //#endregion
8
8
  export { n as default };