@ac-design/design-system 2.3.0 → 2.4.1

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 (63) hide show
  1. package/dist/lib/compat.css +211 -6
  2. package/dist/lib/components/AcAppSwitcher.vue.d.ts +1 -1
  3. package/dist/lib/components/AcAppSwitcher.vue_vue_type_script_setup_true_lang.js +23 -23
  4. package/dist/lib/components/AcAreaChart.vue.d.ts +1 -1
  5. package/dist/lib/components/AcBarChart.vue.d.ts +1 -1
  6. package/dist/lib/components/AcButton.vue.d.ts +7 -1
  7. package/dist/lib/components/AcButton.vue_vue_type_script_setup_true_lang.js +90 -69
  8. package/dist/lib/components/AcCellValue.vue.d.ts +3 -3
  9. package/dist/lib/components/AcCellValue.vue_vue_type_script_setup_true_lang.js +20 -20
  10. package/dist/lib/components/AcCheckBox.vue.d.ts +4 -1
  11. package/dist/lib/components/AcCheckBox.vue_vue_type_script_setup_true_lang.js +50 -50
  12. package/dist/lib/components/AcCircularProgress.vue.d.ts +1 -1
  13. package/dist/lib/components/AcCodeEditor.vue.d.ts +12 -0
  14. package/dist/lib/components/AcCodeEditor.vue_vue_type_script_setup_true_lang.js +240 -207
  15. package/dist/lib/components/AcColorInput.vue.d.ts +3 -3
  16. package/dist/lib/components/AcColorInput.vue_vue_type_script_setup_true_lang.js +72 -66
  17. package/dist/lib/components/AcCostSummary.vue.d.ts +1 -1
  18. package/dist/lib/components/AcDatePicker.vue.d.ts +14 -7
  19. package/dist/lib/components/AcDatePicker.vue_vue_type_script_setup_true_lang.js +417 -372
  20. package/dist/lib/components/AcDeleteModal.vue.d.ts +1 -1
  21. package/dist/lib/components/AcDonutChart.vue.d.ts +2 -2
  22. package/dist/lib/components/AcDropdown.vue.d.ts +1 -1
  23. package/dist/lib/components/AcDropdown.vue_vue_type_script_setup_true_lang.js +8 -8
  24. package/dist/lib/components/AcDropdownItem.vue_vue_type_script_setup_true_lang.js +27 -30
  25. package/dist/lib/components/AcFormFooter.vue_vue_type_script_setup_true_lang.js +8 -8
  26. package/dist/lib/components/AcGraphChart.vue.d.ts +2 -2
  27. package/dist/lib/components/AcInput.vue.d.ts +75 -54
  28. package/dist/lib/components/AcInput.vue_vue_type_script_setup_true_lang.js +253 -89
  29. package/dist/lib/components/AcKeyValueInput.vue.d.ts +34 -54
  30. package/dist/lib/components/AcKeyValueInput.vue_vue_type_script_setup_true_lang.js +134 -106
  31. package/dist/lib/components/AcLineChart.vue.d.ts +1 -1
  32. package/dist/lib/components/AcMapChart.vue.d.ts +2 -2
  33. package/dist/lib/components/AcModal.vue.d.ts +2 -2
  34. package/dist/lib/components/AcModal.vue_vue_type_script_setup_true_lang.js +4 -4
  35. package/dist/lib/components/AcNotificationMenu.vue.d.ts +1 -1
  36. package/dist/lib/components/AcNotificationMenu.vue_vue_type_script_setup_true_lang.js +24 -24
  37. package/dist/lib/components/AcNumberInput.vue.d.ts +55 -45
  38. package/dist/lib/components/AcNumberInput.vue_vue_type_script_setup_true_lang.js +159 -99
  39. package/dist/lib/components/AcRadioCard.vue.d.ts +2 -2
  40. package/dist/lib/components/AcRadioCard.vue_vue_type_script_setup_true_lang.js +1 -1
  41. package/dist/lib/components/AcSelect.vue.d.ts +35 -6
  42. package/dist/lib/components/AcSelect.vue_vue_type_script_setup_true_lang.js +272 -176
  43. package/dist/lib/components/AcSidePanel.vue.d.ts +1 -1
  44. package/dist/lib/components/AcSidePanel.vue_vue_type_script_setup_true_lang.js +2 -2
  45. package/dist/lib/components/AcSlider.vue.d.ts +2 -2
  46. package/dist/lib/components/AcSwitch.vue_vue_type_script_setup_true_lang.js +23 -23
  47. package/dist/lib/components/AcTable.vue.d.ts +37 -4
  48. package/dist/lib/components/AcTable.vue_vue_type_script_setup_true_lang.js +239 -131
  49. package/dist/lib/components/AcTagInput.vue.d.ts +22 -3
  50. package/dist/lib/components/AcTagInput.vue_vue_type_script_setup_true_lang.js +126 -114
  51. package/dist/lib/components/AcTaintInput.js +5 -0
  52. package/dist/lib/components/AcTaintInput.vue.d.ts +44 -0
  53. package/dist/lib/components/AcTaintInput.vue_vue_type_script_setup_true_lang.js +208 -0
  54. package/dist/lib/components/AcTextarea.vue.d.ts +38 -4
  55. package/dist/lib/components/AcTextarea.vue_vue_type_script_setup_true_lang.js +113 -53
  56. package/dist/lib/components/AcTimePicker.vue.d.ts +15 -8
  57. package/dist/lib/components/AcTimePicker.vue_vue_type_script_setup_true_lang.js +102 -70
  58. package/dist/lib/components/AcTooltip.vue.d.ts +3 -3
  59. package/dist/lib/components/index.d.ts +1 -0
  60. package/dist/lib/composables/useToast.d.ts +2 -2
  61. package/dist/lib/index.d.ts +2 -1
  62. package/dist/lib/index.js +31 -30
  63. package/package.json +1 -1
@@ -482,9 +482,24 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
482
482
  .left-4:where([data-ac-ds], [data-ac-ds] *) {
483
483
  left: calc(var(--spacing) * 4) !important;
484
484
  }
485
+ .left-\[7px\]:where([data-ac-ds], [data-ac-ds] *) {
486
+ left: 7px !important;
487
+ }
485
488
  .left-\[8\%\]:where([data-ac-ds], [data-ac-ds] *) {
486
489
  left: 8% !important;
487
490
  }
491
+ .left-\[9px\]:where([data-ac-ds], [data-ac-ds] *) {
492
+ left: 9px !important;
493
+ }
494
+ .left-\[11px\]:where([data-ac-ds], [data-ac-ds] *) {
495
+ left: 11px !important;
496
+ }
497
+ .left-\[15px\]:where([data-ac-ds], [data-ac-ds] *) {
498
+ left: 15px !important;
499
+ }
500
+ .left-\[19px\]:where([data-ac-ds], [data-ac-ds] *) {
501
+ left: 19px !important;
502
+ }
488
503
  .left-\[calc\(50\%\+26px\)\]:where([data-ac-ds], [data-ac-ds] *) {
489
504
  left: calc(50% + 26px) !important;
490
505
  }
@@ -650,12 +665,18 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
650
665
  .mr-1\.5:where([data-ac-ds], [data-ac-ds] *) {
651
666
  margin-right: calc(var(--spacing) * 1.5) !important;
652
667
  }
668
+ .mr-2:where([data-ac-ds], [data-ac-ds] *) {
669
+ margin-right: calc(var(--spacing) * 2) !important;
670
+ }
653
671
  .mr-3:where([data-ac-ds], [data-ac-ds] *) {
654
672
  margin-right: calc(var(--spacing) * 3) !important;
655
673
  }
656
674
  .mr-4:where([data-ac-ds], [data-ac-ds] *) {
657
675
  margin-right: calc(var(--spacing) * 4) !important;
658
676
  }
677
+ .mr-5:where([data-ac-ds], [data-ac-ds] *) {
678
+ margin-right: calc(var(--spacing) * 5) !important;
679
+ }
659
680
  .mb-1:where([data-ac-ds], [data-ac-ds] *) {
660
681
  margin-bottom: var(--spacing) !important;
661
682
  }
@@ -930,6 +951,9 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
930
951
  .h-6:where([data-ac-ds], [data-ac-ds] *) {
931
952
  height: calc(var(--spacing) * 6) !important;
932
953
  }
954
+ .h-6\.5:where([data-ac-ds], [data-ac-ds] *) {
955
+ height: calc(var(--spacing) * 6.5) !important;
956
+ }
933
957
  .h-7:where([data-ac-ds], [data-ac-ds] *) {
934
958
  height: calc(var(--spacing) * 7) !important;
935
959
  }
@@ -954,9 +978,18 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
954
978
  .h-11:where([data-ac-ds], [data-ac-ds] *) {
955
979
  height: calc(var(--spacing) * 11) !important;
956
980
  }
981
+ .h-11\.5:where([data-ac-ds], [data-ac-ds] *) {
982
+ height: calc(var(--spacing) * 11.5) !important;
983
+ }
957
984
  .h-12:where([data-ac-ds], [data-ac-ds] *) {
958
985
  height: calc(var(--spacing) * 12) !important;
959
986
  }
987
+ .h-12\.5:where([data-ac-ds], [data-ac-ds] *) {
988
+ height: calc(var(--spacing) * 12.5) !important;
989
+ }
990
+ .h-15:where([data-ac-ds], [data-ac-ds] *) {
991
+ height: calc(var(--spacing) * 15) !important;
992
+ }
960
993
  .h-18:where([data-ac-ds], [data-ac-ds] *) {
961
994
  height: calc(var(--spacing) * 18) !important;
962
995
  }
@@ -972,6 +1005,15 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
972
1005
  .h-48:where([data-ac-ds], [data-ac-ds] *) {
973
1006
  height: calc(var(--spacing) * 48) !important;
974
1007
  }
1008
+ .h-60:where([data-ac-ds], [data-ac-ds] *) {
1009
+ height: calc(var(--spacing) * 60) !important;
1010
+ }
1011
+ .h-\[50px\]:where([data-ac-ds], [data-ac-ds] *) {
1012
+ height: 50px !important;
1013
+ }
1014
+ .h-auto:where([data-ac-ds], [data-ac-ds] *) {
1015
+ height: auto !important;
1016
+ }
975
1017
  .h-full:where([data-ac-ds], [data-ac-ds] *) {
976
1018
  height: 100% !important;
977
1019
  }
@@ -1026,6 +1068,18 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
1026
1068
  .min-h-40:where([data-ac-ds], [data-ac-ds] *) {
1027
1069
  min-height: calc(var(--spacing) * 40) !important;
1028
1070
  }
1071
+ .min-h-\[26px\]:where([data-ac-ds], [data-ac-ds] *) {
1072
+ min-height: 26px !important;
1073
+ }
1074
+ .min-h-\[34px\]:where([data-ac-ds], [data-ac-ds] *) {
1075
+ min-height: 34px !important;
1076
+ }
1077
+ .min-h-\[38px\]:where([data-ac-ds], [data-ac-ds] *) {
1078
+ min-height: 38px !important;
1079
+ }
1080
+ .min-h-\[50px\]:where([data-ac-ds], [data-ac-ds] *) {
1081
+ min-height: 50px !important;
1082
+ }
1029
1083
  .min-h-full:where([data-ac-ds], [data-ac-ds] *) {
1030
1084
  min-height: 100% !important;
1031
1085
  }
@@ -1053,6 +1107,9 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
1053
1107
  .w-3\/5:where([data-ac-ds], [data-ac-ds] *) {
1054
1108
  width: calc(3 / 5 * 100%) !important;
1055
1109
  }
1110
+ .w-6\.5:where([data-ac-ds], [data-ac-ds] *) {
1111
+ width: calc(var(--spacing) * 6.5) !important;
1112
+ }
1056
1113
  .w-7:where([data-ac-ds], [data-ac-ds] *) {
1057
1114
  width: calc(var(--spacing) * 7) !important;
1058
1115
  }
@@ -1065,6 +1122,9 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
1065
1122
  .w-9:where([data-ac-ds], [data-ac-ds] *) {
1066
1123
  width: calc(var(--spacing) * 9) !important;
1067
1124
  }
1125
+ .w-9\.5:where([data-ac-ds], [data-ac-ds] *) {
1126
+ width: calc(var(--spacing) * 9.5) !important;
1127
+ }
1068
1128
  .w-10:where([data-ac-ds], [data-ac-ds] *) {
1069
1129
  width: calc(var(--spacing) * 10) !important;
1070
1130
  }
@@ -1077,6 +1137,9 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
1077
1137
  .w-12:where([data-ac-ds], [data-ac-ds] *) {
1078
1138
  width: calc(var(--spacing) * 12) !important;
1079
1139
  }
1140
+ .w-12\.5:where([data-ac-ds], [data-ac-ds] *) {
1141
+ width: calc(var(--spacing) * 12.5) !important;
1142
+ }
1080
1143
  .w-14:where([data-ac-ds], [data-ac-ds] *) {
1081
1144
  width: calc(var(--spacing) * 14) !important;
1082
1145
  }
@@ -1535,6 +1598,9 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
1535
1598
  .grid-cols-\[minmax\(0\,1fr\)_auto\]:where([data-ac-ds], [data-ac-ds] *) {
1536
1599
  grid-template-columns: minmax(0,1fr) auto !important;
1537
1600
  }
1601
+ .grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_256px\]:where([data-ac-ds], [data-ac-ds] *) {
1602
+ grid-template-columns: minmax(0,1fr) minmax(0,1fr) 256px !important;
1603
+ }
1538
1604
  .grid-rows-\[0fr\]:where([data-ac-ds], [data-ac-ds] *) {
1539
1605
  grid-template-rows: 0fr !important;
1540
1606
  }
@@ -1710,6 +1776,11 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
1710
1776
  .justify-self-end:where([data-ac-ds], [data-ac-ds] *) {
1711
1777
  justify-self: flex-end !important;
1712
1778
  }
1779
+ .\!truncate:where([data-ac-ds], [data-ac-ds] *) {
1780
+ overflow: hidden !important;
1781
+ text-overflow: ellipsis !important;
1782
+ white-space: nowrap !important;
1783
+ }
1713
1784
  .truncate:where([data-ac-ds], [data-ac-ds] *) {
1714
1785
  overflow: hidden !important;
1715
1786
  text-overflow: ellipsis !important;
@@ -1807,6 +1878,10 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
1807
1878
  border-style: var(--tw-border-style) !important;
1808
1879
  border-width: 1px !important;
1809
1880
  }
1881
+ .border-0:where([data-ac-ds], [data-ac-ds] *) {
1882
+ border-style: var(--tw-border-style) !important;
1883
+ border-width: 0px !important;
1884
+ }
1810
1885
  .border-2:where([data-ac-ds], [data-ac-ds] *) {
1811
1886
  border-style: var(--tw-border-style) !important;
1812
1887
  border-width: 2px !important;
@@ -2021,6 +2096,12 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
2021
2096
  .border-transparent:where([data-ac-ds], [data-ac-ds] *) {
2022
2097
  border-color: transparent !important;
2023
2098
  }
2099
+ .border-warning\/20:where([data-ac-ds], [data-ac-ds] *) {
2100
+ border-color: color-mix(in srgb, #f59e0b 20%, transparent) !important;
2101
+ @supports (color: color-mix(in lab, red, red)) {
2102
+ border-color: color-mix(in oklab, var(--color-warning) 20%, transparent) !important;
2103
+ }
2104
+ }
2024
2105
  .border-warning\/25:where([data-ac-ds], [data-ac-ds] *) {
2025
2106
  border-color: color-mix(in srgb, #f59e0b 25%, transparent) !important;
2026
2107
  @supports (color: color-mix(in lab, red, red)) {
@@ -2123,12 +2204,6 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
2123
2204
  background-color: color-mix(in oklab, var(--color-black) 50%, transparent) !important;
2124
2205
  }
2125
2206
  }
2126
- .bg-black\/80:where([data-ac-ds], [data-ac-ds] *) {
2127
- background-color: color-mix(in srgb, hsl(0 0% 0%) 80%, transparent) !important;
2128
- @supports (color: color-mix(in lab, red, red)) {
2129
- background-color: color-mix(in oklab, var(--color-black) 80%, transparent) !important;
2130
- }
2131
- }
2132
2207
  .bg-body:where([data-ac-ds], [data-ac-ds] *) {
2133
2208
  background-color: var(--color-body) !important;
2134
2209
  }
@@ -2797,6 +2872,9 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
2797
2872
  .fill-brand-navy:where([data-ac-ds], [data-ac-ds] *) {
2798
2873
  fill: var(--color-brand-navy) !important;
2799
2874
  }
2875
+ .fill-danger:where([data-ac-ds], [data-ac-ds] *) {
2876
+ fill: var(--color-danger) !important;
2877
+ }
2800
2878
  .fill-primary:where([data-ac-ds], [data-ac-ds] *) {
2801
2879
  fill: var(--color-primary) !important;
2802
2880
  }
@@ -2890,6 +2968,9 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
2890
2968
  .px-px:where([data-ac-ds], [data-ac-ds] *) {
2891
2969
  padding-inline: 1px !important;
2892
2970
  }
2971
+ .py-0:where([data-ac-ds], [data-ac-ds] *) {
2972
+ padding-block: 0px !important;
2973
+ }
2893
2974
  .py-0\.5:where([data-ac-ds], [data-ac-ds] *) {
2894
2975
  padding-block: calc(var(--spacing) * 0.5) !important;
2895
2976
  }
@@ -3007,6 +3088,9 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
3007
3088
  .pr-5:where([data-ac-ds], [data-ac-ds] *) {
3008
3089
  padding-right: calc(var(--spacing) * 5) !important;
3009
3090
  }
3091
+ .pr-6:where([data-ac-ds], [data-ac-ds] *) {
3092
+ padding-right: calc(var(--spacing) * 6) !important;
3093
+ }
3010
3094
  .pr-8:where([data-ac-ds], [data-ac-ds] *) {
3011
3095
  padding-right: calc(var(--spacing) * 8) !important;
3012
3096
  }
@@ -3067,6 +3151,9 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
3067
3151
  .pl-5:where([data-ac-ds], [data-ac-ds] *) {
3068
3152
  padding-left: calc(var(--spacing) * 5) !important;
3069
3153
  }
3154
+ .pl-6:where([data-ac-ds], [data-ac-ds] *) {
3155
+ padding-left: calc(var(--spacing) * 6) !important;
3156
+ }
3070
3157
  .pl-9:where([data-ac-ds], [data-ac-ds] *) {
3071
3158
  padding-left: calc(var(--spacing) * 9) !important;
3072
3159
  }
@@ -3088,6 +3175,9 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
3088
3175
  .align-top:where([data-ac-ds], [data-ac-ds] *) {
3089
3176
  vertical-align: top !important;
3090
3177
  }
3178
+ .font-\[inherit\]:where([data-ac-ds], [data-ac-ds] *) {
3179
+ font-family: inherit !important;
3180
+ }
3091
3181
  .font-heading:where([data-ac-ds], [data-ac-ds] *) {
3092
3182
  font-family: var(--font-heading) !important;
3093
3183
  }
@@ -3499,6 +3589,13 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
3499
3589
  }
3500
3590
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
3501
3591
  }
3592
+ .shadow-\[0_0_0_2px_color-mix\(in_srgb\,var\(--color-primary\)_20\%\,transparent\)\]:where([data-ac-ds], [data-ac-ds] *) {
3593
+ --tw-shadow: 0 0 0 2px var(--tw-shadow-color, color-mix(in srgb,hsl(var(--primary-hue) var(--primary-saturation) var(--primary-light)) 20%,transparent)) !important;
3594
+ @supports (color: color-mix(in lab, red, red)) {
3595
+ --tw-shadow: 0 0 0 2px var(--tw-shadow-color, color-mix(in srgb,var(--color-primary) 20%,transparent)) !important;
3596
+ }
3597
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
3598
+ }
3502
3599
  .shadow-\[0_0_0_6px_color-mix\(in_srgb\,var\(--color-primary\)_15\%\,transparent\)\]:where([data-ac-ds], [data-ac-ds] *) {
3503
3600
  --tw-shadow: 0 0 0 6px var(--tw-shadow-color, color-mix(in srgb,hsl(var(--primary-hue) var(--primary-saturation) var(--primary-light)) 15%,transparent)) !important;
3504
3601
  @supports (color: color-mix(in lab, red, red)) {
@@ -4142,9 +4239,30 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
4142
4239
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary) 20%, transparent) !important;
4143
4240
  }
4144
4241
  }
4242
+ .focus-within\:border-\[color-mix\(in_srgb\,var\(--color-primary\)_35\%\,transparent\)\]:focus-within:where([data-ac-ds], [data-ac-ds] *) {
4243
+ border-color: color-mix(in srgb,hsl(var(--primary-hue) var(--primary-saturation) var(--primary-light)) 35%,transparent) !important;
4244
+ @supports (color: color-mix(in lab, red, red)) {
4245
+ border-color: color-mix(in srgb,var(--color-primary) 35%,transparent) !important;
4246
+ }
4247
+ }
4145
4248
  .focus-within\:border-danger:focus-within:where([data-ac-ds], [data-ac-ds] *) {
4146
4249
  border-color: var(--color-danger) !important;
4147
4250
  }
4251
+ .focus-within\:bg-accent-hover:focus-within:where([data-ac-ds], [data-ac-ds] *) {
4252
+ background-color: var(--color-accent-hover) !important;
4253
+ }
4254
+ .focus-within\:bg-danger\/5:focus-within:where([data-ac-ds], [data-ac-ds] *) {
4255
+ background-color: color-mix(in srgb, #ef4444 5%, transparent) !important;
4256
+ @supports (color: color-mix(in lab, red, red)) {
4257
+ background-color: color-mix(in oklab, var(--color-danger) 5%, transparent) !important;
4258
+ }
4259
+ }
4260
+ .focus-within\:bg-danger\/10:focus-within:where([data-ac-ds], [data-ac-ds] *) {
4261
+ background-color: color-mix(in srgb, #ef4444 10%, transparent) !important;
4262
+ @supports (color: color-mix(in lab, red, red)) {
4263
+ background-color: color-mix(in oklab, var(--color-danger) 10%, transparent) !important;
4264
+ }
4265
+ }
4148
4266
  .focus-within\:shadow-\[0_0_0_2px_color-mix\(in_srgb\,var\(--color-danger\)_20\%\,transparent\)\]:focus-within:where([data-ac-ds], [data-ac-ds] *) {
4149
4267
  --tw-shadow: 0 0 0 2px var(--tw-shadow-color, color-mix(in srgb,#ef4444 20%,transparent)) !important;
4150
4268
  @supports (color: color-mix(in lab, red, red)) {
@@ -4152,6 +4270,13 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
4152
4270
  }
4153
4271
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
4154
4272
  }
4273
+ .focus-within\:shadow-\[0_0_0_2px_color-mix\(in_srgb\,var\(--color-primary\)_20\%\,transparent\)\]:focus-within:where([data-ac-ds], [data-ac-ds] *) {
4274
+ --tw-shadow: 0 0 0 2px var(--tw-shadow-color, color-mix(in srgb,hsl(var(--primary-hue) var(--primary-saturation) var(--primary-light)) 20%,transparent)) !important;
4275
+ @supports (color: color-mix(in lab, red, red)) {
4276
+ --tw-shadow: 0 0 0 2px var(--tw-shadow-color, color-mix(in srgb,var(--color-primary) 20%,transparent)) !important;
4277
+ }
4278
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
4279
+ }
4155
4280
  @media (hover: hover) {
4156
4281
  .hover\:-translate-y-0\.5:hover:where([data-ac-ds], [data-ac-ds] *) {
4157
4282
  --tw-translate-y: calc(var(--spacing) * -0.5) !important;
@@ -4549,6 +4674,15 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
4549
4674
  border-color: color-mix(in oklab, var(--color-primary) 40%, transparent) !important;
4550
4675
  }
4551
4676
  }
4677
+ .focus\:bg-accent-hover:focus:where([data-ac-ds], [data-ac-ds] *) {
4678
+ background-color: var(--color-accent-hover) !important;
4679
+ }
4680
+ .focus\:bg-danger\/5:focus:where([data-ac-ds], [data-ac-ds] *) {
4681
+ background-color: color-mix(in srgb, #ef4444 5%, transparent) !important;
4682
+ @supports (color: color-mix(in lab, red, red)) {
4683
+ background-color: color-mix(in oklab, var(--color-danger) 5%, transparent) !important;
4684
+ }
4685
+ }
4552
4686
  .focus\:bg-danger\/10:focus:where([data-ac-ds], [data-ac-ds] *) {
4553
4687
  background-color: color-mix(in srgb, #ef4444 10%, transparent) !important;
4554
4688
  @supports (color: color-mix(in lab, red, red)) {
@@ -4571,6 +4705,13 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
4571
4705
  }
4572
4706
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
4573
4707
  }
4708
+ .focus\:shadow-\[0_0_0_2px_color-mix\(in_srgb\,var\(--color-primary\)_20\%\,transparent\)\]:focus:where([data-ac-ds], [data-ac-ds] *) {
4709
+ --tw-shadow: 0 0 0 2px var(--tw-shadow-color, color-mix(in srgb,hsl(var(--primary-hue) var(--primary-saturation) var(--primary-light)) 20%,transparent)) !important;
4710
+ @supports (color: color-mix(in lab, red, red)) {
4711
+ --tw-shadow: 0 0 0 2px var(--tw-shadow-color, color-mix(in srgb,var(--color-primary) 20%,transparent)) !important;
4712
+ }
4713
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
4714
+ }
4574
4715
  .focus\:outline-none:focus:where([data-ac-ds], [data-ac-ds] *) {
4575
4716
  --tw-outline-style: none !important;
4576
4717
  outline-style: none !important;
@@ -4679,6 +4820,9 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
4679
4820
  color: var(--color-heading) !important;
4680
4821
  }
4681
4822
  }
4823
+ .disabled\:pointer-events-none:disabled:where([data-ac-ds], [data-ac-ds] *) {
4824
+ pointer-events: none !important;
4825
+ }
4682
4826
  .disabled\:cursor-not-allowed:disabled:where([data-ac-ds], [data-ac-ds] *) {
4683
4827
  cursor: not-allowed !important;
4684
4828
  }
@@ -4698,6 +4842,9 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
4698
4842
  --tw-shadow: 0 0 #0000 !important;
4699
4843
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
4700
4844
  }
4845
+ .disabled\:not-checked\:not-indeterminate\:bg-surface-sunken:disabled:not(:checked):not(:indeterminate):where([data-ac-ds], [data-ac-ds] *) {
4846
+ background-color: var(--color-surface-sunken) !important;
4847
+ }
4701
4848
  @media (hover: hover) {
4702
4849
  .disabled\:hover\:scale-100:disabled:hover:where([data-ac-ds], [data-ac-ds] *) {
4703
4850
  --tw-scale-x: 100% !important;
@@ -4717,6 +4864,9 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
4717
4864
  .disabled\:hover\:text-muted:disabled:hover:where([data-ac-ds], [data-ac-ds] *) {
4718
4865
  color: var(--color-muted) !important;
4719
4866
  }
4867
+ .disabled\:hover\:no-underline:disabled:hover:where([data-ac-ds], [data-ac-ds] *) {
4868
+ text-decoration-line: none !important;
4869
+ }
4720
4870
  }
4721
4871
  .disabled\:active\:translate-y-0:disabled:active:where([data-ac-ds], [data-ac-ds] *) {
4722
4872
  --tw-translate-y: 0px !important;
@@ -5005,6 +5155,21 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
5005
5155
  .max-sm\:w-auto:where([data-ac-ds], [data-ac-ds] *) {
5006
5156
  width: auto !important;
5007
5157
  }
5158
+ .max-sm\:min-w-0:where([data-ac-ds], [data-ac-ds] *) {
5159
+ min-width: 0px !important;
5160
+ }
5161
+ .max-sm\:flex-1:where([data-ac-ds], [data-ac-ds] *) {
5162
+ flex: 1 !important;
5163
+ }
5164
+ .max-sm\:basis-full:where([data-ac-ds], [data-ac-ds] *) {
5165
+ flex-basis: 100% !important;
5166
+ }
5167
+ .max-sm\:flex-wrap:where([data-ac-ds], [data-ac-ds] *) {
5168
+ flex-wrap: wrap !important;
5169
+ }
5170
+ .max-sm\:gap-2:where([data-ac-ds], [data-ac-ds] *) {
5171
+ gap: calc(var(--spacing) * 2) !important;
5172
+ }
5008
5173
  .max-sm\:rounded-10:where([data-ac-ds], [data-ac-ds] *) {
5009
5174
  border-radius: var(--radius-10) !important;
5010
5175
  }
@@ -5364,6 +5529,9 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
5364
5529
  .\[\&_\.cm-mergeView\]\:h-full .cm-mergeView:where([data-ac-ds], [data-ac-ds] *) {
5365
5530
  height: 100% !important;
5366
5531
  }
5532
+ .\[\&_\:has\(\>input\)\]\:rounded-8 :has( > input):where([data-ac-ds], [data-ac-ds] *) {
5533
+ border-radius: var(--radius-8) !important;
5534
+ }
5367
5535
  .\[\&_\[data-ac-ds\]\>label\:first-child\]\:sr-only [data-ac-ds] > label:first-child:where([data-ac-ds], [data-ac-ds] *) {
5368
5536
  position: absolute !important;
5369
5537
  width: 1px !important;
@@ -5424,6 +5592,12 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
5424
5592
  .\[\&_input\]\:rounded-8 input:where([data-ac-ds], [data-ac-ds] *) {
5425
5593
  border-radius: var(--radius-8) !important;
5426
5594
  }
5595
+ .\[\&_input\]\:pr-3 input:where([data-ac-ds], [data-ac-ds] *) {
5596
+ padding-right: calc(var(--spacing) * 3) !important;
5597
+ }
5598
+ .\[\&_input\]\:pl-3 input:where([data-ac-ds], [data-ac-ds] *) {
5599
+ padding-left: calc(var(--spacing) * 3) !important;
5600
+ }
5427
5601
  .\[\&_input\]\:font-mono input:where([data-ac-ds], [data-ac-ds] *) {
5428
5602
  font-family: var(--font-mono) !important;
5429
5603
  }
@@ -5431,6 +5605,12 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
5431
5605
  --tw-font-weight: var(--font-weight-medium) !important;
5432
5606
  font-weight: var(--font-weight-medium) !important;
5433
5607
  }
5608
+ .\[\&_input\]\:placeholder\:text-heading\/50 input:where([data-ac-ds], [data-ac-ds] *)::placeholder {
5609
+ color: color-mix(in srgb, #252525 50%, transparent) !important;
5610
+ @supports (color: color-mix(in lab, red, red)) {
5611
+ color: color-mix(in oklab, var(--color-heading) 50%, transparent) !important;
5612
+ }
5613
+ }
5434
5614
  .\[\&_strong\]\:font-semibold strong:where([data-ac-ds], [data-ac-ds] *) {
5435
5615
  --tw-font-weight: var(--font-weight-semibold) !important;
5436
5616
  font-weight: var(--font-weight-semibold) !important;
@@ -5523,6 +5703,17 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
5523
5703
  --tw-shadow: 0 0 #0000 !important;
5524
5704
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow) !important;
5525
5705
  }
5706
+ .\[\&\>div\:first-child\]\:sr-only > div:first-child:where([data-ac-ds], [data-ac-ds] *) {
5707
+ position: absolute !important;
5708
+ width: 1px !important;
5709
+ height: 1px !important;
5710
+ padding: 0 !important;
5711
+ margin: -1px !important;
5712
+ overflow: hidden !important;
5713
+ clip-path: inset(50%) !important;
5714
+ white-space: nowrap !important;
5715
+ border-width: 0 !important;
5716
+ }
5526
5717
  @media (width >= 40rem) {
5527
5718
  .sm\:\[\&\>div\:first-child\]\:sr-only > div:first-child:where([data-ac-ds], [data-ac-ds] *) {
5528
5719
  position: absolute !important;
@@ -5544,6 +5735,17 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
5544
5735
  width: 17px !important;
5545
5736
  height: 17px !important;
5546
5737
  }
5738
+ .\[\&\>label\:first-child\]\:sr-only > label:first-child:where([data-ac-ds], [data-ac-ds] *) {
5739
+ position: absolute !important;
5740
+ width: 1px !important;
5741
+ height: 1px !important;
5742
+ padding: 0 !important;
5743
+ margin: -1px !important;
5744
+ overflow: hidden !important;
5745
+ clip-path: inset(50%) !important;
5746
+ white-space: nowrap !important;
5747
+ border-width: 0 !important;
5748
+ }
5547
5749
  @media (width >= 40rem) {
5548
5750
  .sm\:\[\&\>label\:first-child\]\:sr-only > label:first-child:where([data-ac-ds], [data-ac-ds] *) {
5549
5751
  position: absolute !important;
@@ -5615,6 +5817,9 @@ button:is([data-ac-ds], [data-ac-ds] *), input:where([type="button"], [type="res
5615
5817
  [data-testid=ac-sidebar-section][data-closed] + .\[\[data-testid\=ac-sidebar-section\]\[data-closed\]\+\&\]\:mt-0:where([data-ac-ds], [data-ac-ds] *) {
5616
5818
  margin-top: 0px !important;
5617
5819
  }
5820
+ tbody .\[tbody_\&\]\:h-\[51px\]:where([data-ac-ds], [data-ac-ds] *) {
5821
+ height: 51px !important;
5822
+ }
5618
5823
  tr:last-child .\[tr\:last-child_\&\]\:border-0:where([data-ac-ds], [data-ac-ds] *) {
5619
5824
  border-style: var(--tw-border-style) !important;
5620
5825
  border-width: 0px !important;
@@ -63,6 +63,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
63
63
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
64
64
  }>, {
65
65
  label: string;
66
+ align: "start" | "end";
66
67
  currentApp: "console" | "db" | "platform" | "id" | "billing" | "selfhost" | "learn" | "grafana" | "observe" | (string & {});
67
68
  baseUrl: string;
68
69
  activeOrganization: string;
@@ -71,7 +72,6 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {
71
72
  isOfflineInstaller: boolean;
72
73
  apps: AppSwitcherApp[];
73
74
  hideCurrent: boolean;
74
- align: "start" | "end";
75
75
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
76
76
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
77
77
  declare const _default: typeof __VLS_export;
@@ -1,6 +1,6 @@
1
- import e from "./AcLogo.js";
2
- import t from "./AcNavbarItem.js";
3
- import { fixedFrame as n } from "./fixedFrame.js";
1
+ import { fixedFrame as e } from "./fixedFrame.js";
2
+ import t from "./AcLogo.js";
3
+ import n from "./AcNavbarItem.js";
4
4
  import { Fragment as r, Teleport as i, Transition as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createVNode as d, defineComponent as f, mergeModels as p, nextTick as m, normalizeClass as h, normalizeStyle as g, onBeforeUnmount as ee, openBlock as _, ref as v, renderList as te, renderSlot as ne, resolveDynamicComponent as y, toDisplayString as b, unref as x, useId as re, useModel as ie, watch as ae, withCtx as oe } from "vue";
5
5
  import { ChartLine as se, Check as ce, Database as le, GraduationCap as ue, Grip as de, Receipt as fe, Server as pe, ServerCog as me, Telescope as he } from "@lucide/vue";
6
6
  //#region src/lib/components/AcAppSwitcher.vue?vue&type=script&setup=true&lang.ts
@@ -163,11 +163,11 @@ var ge = {
163
163
  t.length && t[Math.max(0, Math.min(e, t.length - 1))].focus();
164
164
  }
165
165
  function X() {
166
- let e = q();
167
- if (!e || !V.value) return;
168
- let t = e.getBoundingClientRect(), r = n(), { offsetWidth: i, offsetHeight: a } = V.value, o = r.bottom - t.bottom - 6 - 8, s = t.top - r.top - 6 - 8, c = o < a && s > o, l = (j.align === "end" ? t.right - i : t.left) - r.left;
166
+ let t = q();
167
+ if (!t || !V.value) return;
168
+ let n = t.getBoundingClientRect(), r = e(), { offsetWidth: i, offsetHeight: a } = V.value, o = r.bottom - n.bottom - 6 - 8, s = n.top - r.top - 6 - 8, c = o < a && s > o, l = (j.align === "end" ? n.right - i : n.left) - r.left;
169
169
  U.value = !c, H.value = {
170
- [c ? "bottom" : "top"]: `${c ? r.bottom - t.top + 6 : t.bottom + 6 - r.top}px`,
170
+ [c ? "bottom" : "top"]: `${c ? r.bottom - n.top + 6 : n.bottom + 6 - r.top}px`,
171
171
  left: `${Math.max(8, Math.min(l, r.width - i - 8))}px`,
172
172
  maxHeight: `${Math.max(c ? s : o, 160)}px`
173
173
  };
@@ -217,7 +217,7 @@ var ge = {
217
217
  await m(), X();
218
218
  let t = J(), n = G.value.findIndex(K);
219
219
  Y(n >= 0 && t[n] ? n : 0);
220
- }), ee(() => $(!1)), (n, o) => (_(), l("div", ge, [d(t, {
220
+ }), ee(() => $(!1)), (e, o) => (_(), l("div", ge, [d(n, {
221
221
  ref_key: "trigger",
222
222
  ref: B,
223
223
  label: f.label,
@@ -260,41 +260,41 @@ var ge = {
260
260
  id: z,
261
261
  class: "px-3 pt-2 pb-2 text-sm font-semibold tracking-[0.08em] text-muted uppercase"
262
262
  }, b(f.label), 1),
263
- u("ul", _e, [(_(!0), l(r, null, te(G.value, (t) => (_(), l("li", { key: t.name }, [u("a", {
264
- href: t.url,
263
+ u("ul", _e, [(_(!0), l(r, null, te(G.value, (e) => (_(), l("li", { key: e.name }, [u("a", {
264
+ href: e.url,
265
265
  "data-app-tile": "",
266
- "aria-current": K(t) ? "page" : void 0,
267
- title: t.subtitle || void 0,
266
+ "aria-current": K(e) ? "page" : void 0,
267
+ title: e.subtitle || void 0,
268
268
  class: "group relative flex h-full flex-col items-center gap-2 rounded-8 px-1.5 pt-3 pb-2.5 text-center no-underline outline-none transition-colors duration-200 hover:bg-surface-sunken focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset aria-[current=page]:bg-accent",
269
269
  "data-ac-ds": "",
270
270
  "data-testid": "ac-app-switcher-app",
271
- onClick: (e) => De(t)
271
+ onClick: (t) => De(e)
272
272
  }, [
273
273
  u("span", {
274
- class: h(["relative inline-flex size-10 shrink-0 items-center justify-center overflow-hidden rounded-10 ring-1 transition-transform duration-200 ring-inset motion-safe:group-hover:-translate-y-px", t.iconUrl || t.name === O && !t.icon ? "bg-surface ring-border" : be[t.color ?? "slate"]]),
274
+ class: h(["relative inline-flex size-10 shrink-0 items-center justify-center overflow-hidden rounded-10 ring-1 transition-transform duration-200 ring-inset motion-safe:group-hover:-translate-y-px", e.iconUrl || e.name === O && !e.icon ? "bg-surface ring-border" : be[e.color ?? "slate"]]),
275
275
  "aria-hidden": "true"
276
- }, [t.iconUrl ? (_(), l("img", {
276
+ }, [e.iconUrl ? (_(), l("img", {
277
277
  key: 0,
278
- src: t.iconUrl,
278
+ src: e.iconUrl,
279
279
  alt: "",
280
280
  class: "size-7 object-contain"
281
- }, null, 8, S)) : t.icon ? (_(), s(y(t.icon), {
281
+ }, null, 8, S)) : e.icon ? (_(), s(y(e.icon), {
282
282
  key: 1,
283
283
  class: "size-5"
284
- })) : t.name === O ? (_(), s(e, {
284
+ })) : e.name === O ? (_(), s(t, {
285
285
  key: 2,
286
286
  variant: "mark",
287
287
  size: 28,
288
288
  label: ""
289
- })) : (_(), l("span", C, b(t.title.charAt(0)), 1))], 2),
290
- u("span", w, b(t.title), 1),
291
- t.subtitle ? (_(), l("span", T, b(t.subtitle), 1)) : c("", !0),
292
- K(t) ? (_(), l("span", E, [d(x(ce), {
289
+ })) : (_(), l("span", C, b(e.title.charAt(0)), 1))], 2),
290
+ u("span", w, b(e.title), 1),
291
+ e.subtitle ? (_(), l("span", T, b(e.subtitle), 1)) : c("", !0),
292
+ K(e) ? (_(), l("span", E, [d(x(ce), {
293
293
  class: "size-2.5",
294
294
  "stroke-width": 3
295
295
  })])) : c("", !0)
296
296
  ], 8, ve)]))), 128))]),
297
- n.$slots.footer ? (_(), l("div", D, [ne(n.$slots, "footer", { close: Z })])) : c("", !0)
297
+ e.$slots.footer ? (_(), l("div", D, [ne(e.$slots, "footer", { close: Z })])) : c("", !0)
298
298
  ], 38)) : c("", !0)]),
299
299
  _: 3
300
300
  })]))]));
@@ -20,9 +20,9 @@ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, i
20
20
  title: string;
21
21
  description: string;
22
22
  height: number;
23
- loading: boolean;
24
23
  animation: boolean;
25
24
  tooltip: boolean;
25
+ loading: boolean;
26
26
  emptyText: string;
27
27
  lineWidth: number;
28
28
  stacked: boolean;
@@ -21,9 +21,9 @@ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, i
21
21
  height: number;
22
22
  orientation: "vertical" | "horizontal";
23
23
  radius: number;
24
- loading: boolean;
25
24
  animation: boolean;
26
25
  tooltip: boolean;
26
+ loading: boolean;
27
27
  emptyText: string;
28
28
  stacked: boolean;
29
29
  renderer: "canvas" | "svg";
@@ -12,7 +12,7 @@ export interface Props {
12
12
  iconOnly?: boolean;
13
13
  /** Shows a spinner before the label and blocks clicks. */
14
14
  loading?: boolean;
15
- /** Disables the button (50% opacity, no click events). */
15
+ /** Disables the button: 50% opacity, no clicks, and no hover colour. With `hint` it keeps hover so the hint still shows, with a not-allowed cursor. */
16
16
  disabled?: boolean;
17
17
  /** Native button type. Use `submit` inside forms. */
18
18
  type?: "button" | "submit" | "reset";
@@ -24,6 +24,10 @@ export interface Props {
24
24
  boxed?: boolean;
25
25
  /** Native hover hint (the `title` attribute). Use it when the label comes from the default slot; the `title` prop is the visible label. */
26
26
  hint?: string;
27
+ /** Shows this text in an `AcTooltip` above the button on hover and keyboard focus, e.g. "Delete VPC" on an icon-only button. An icon-only button without `title` also takes it as its accessible name. Old `tooltip-text`. */
28
+ tooltip?: string;
29
+ /** Stretches the button to the full width of its container. */
30
+ block?: boolean;
27
31
  }
28
32
  type __VLS_Slots = {
29
33
  /** Button content, after the icon and `title`. An icon here is 16px unless it has its own size class, e.g. `size-5`. */
@@ -45,11 +49,13 @@ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, i
45
49
  color: Tone | "neutral" | "white" | "ghost";
46
50
  href: string;
47
51
  size: "xs" | "small" | "normal" | "medium" | "xlarge";
52
+ tooltip: string;
48
53
  iconOnly: boolean;
49
54
  loading: boolean;
50
55
  rounded: boolean;
51
56
  boxed: boolean;
52
57
  hint: string;
58
+ block: boolean;
53
59
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
54
60
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
55
61
  declare const _default: typeof __VLS_export;