@rotki/ui-library 3.0.0 → 3.1.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 (170) hide show
  1. package/dist/components/accordions/accordion/RuiAccordion.js.map +1 -1
  2. package/dist/components/accordions/accordion/RuiAccordion.vue_vue_type_script_setup_true_lang.js +13 -2
  3. package/dist/components/accordions/accordion/RuiAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -1
  4. package/dist/components/alerts/RuiAlert.js.map +1 -1
  5. package/dist/components/alerts/RuiAlert.vue.d.ts +2 -2
  6. package/dist/components/alerts/RuiAlert.vue_vue_type_script_setup_true_lang.js.map +1 -1
  7. package/dist/components/buttons/button/RuiButton.js.map +1 -1
  8. package/dist/components/buttons/button/RuiButton.vue.d.ts +7 -1
  9. package/dist/components/buttons/button/RuiButton.vue_vue_type_script_setup_true_lang.js +4 -2
  10. package/dist/components/buttons/button/RuiButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  11. package/dist/components/buttons/button/button-props.d.ts +3 -0
  12. package/dist/components/buttons/button/button-props.js +2 -1
  13. package/dist/components/buttons/button/button-props.js.map +1 -1
  14. package/dist/components/buttons/button/button-styles.d.ts +75 -0
  15. package/dist/components/buttons/button/button-styles.js +135 -4
  16. package/dist/components/buttons/button/button-styles.js.map +1 -1
  17. package/dist/components/cards/RuiCard.js.map +1 -1
  18. package/dist/components/cards/RuiCard.vue.d.ts +6 -0
  19. package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js +14 -2
  20. package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  21. package/dist/components/chips/RuiChip.js.map +1 -1
  22. package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js +15 -1
  23. package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  24. package/dist/components/chips/chip-props.d.ts +2 -0
  25. package/dist/components/chips/chip-props.js +3 -0
  26. package/dist/components/chips/chip-props.js.map +1 -1
  27. package/dist/components/color-picker/RuiColorInput.js.map +1 -1
  28. package/dist/components/color-picker/RuiColorInput.vue_vue_type_script_setup_true_lang.js +2 -2
  29. package/dist/components/color-picker/RuiColorInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  30. package/dist/components/date-time-picker/RuiDateTimePicker.js.map +1 -1
  31. package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +4 -0
  32. package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js +6 -2
  33. package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  34. package/dist/components/date-time-picker/RuiDateTimePickerMenu.js.map +1 -1
  35. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue_vue_type_script_setup_true_lang.js +1 -1
  36. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  37. package/dist/components/date-time-picker/RuiTimezoneSelect.js.map +1 -1
  38. package/dist/components/date-time-picker/RuiTimezoneSelect.vue.d.ts +4 -0
  39. package/dist/components/date-time-picker/RuiTimezoneSelect.vue_vue_type_script_setup_true_lang.js +3 -2
  40. package/dist/components/date-time-picker/RuiTimezoneSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  41. package/dist/components/forms/auto-complete/RuiAutoComplete.js.map +1 -1
  42. package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js +6 -2
  43. package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  44. package/dist/components/forms/auto-complete/auto-complete-props.d.ts +4 -0
  45. package/dist/components/forms/category-picker/RuiCategoryPicker.js.map +1 -1
  46. package/dist/components/forms/category-picker/RuiCategoryPicker.vue.d.ts +4 -1
  47. package/dist/components/forms/category-picker/RuiCategoryPicker.vue_vue_type_script_setup_true_lang.js +7 -4
  48. package/dist/components/forms/category-picker/RuiCategoryPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  49. package/dist/components/forms/check-control-styles.d.ts +27 -0
  50. package/dist/components/forms/check-control-styles.js +26 -1
  51. package/dist/components/forms/check-control-styles.js.map +1 -1
  52. package/dist/components/forms/checkbox/RuiCheckbox.js.map +1 -1
  53. package/dist/components/forms/checkbox/RuiCheckbox.vue.d.ts +6 -0
  54. package/dist/components/forms/checkbox/RuiCheckbox.vue_vue_type_script_setup_true_lang.js +14 -4
  55. package/dist/components/forms/checkbox/RuiCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  56. package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.js.map +1 -1
  57. package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.vue.d.ts +4 -0
  58. package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.vue_vue_type_script_setup_true_lang.js +7 -2
  59. package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  60. package/dist/components/forms/field-defaults/RuiFieldDefaults.js.map +1 -1
  61. package/dist/components/forms/field-defaults/RuiFieldDefaults.vue.d.ts +3 -0
  62. package/dist/components/forms/field-defaults/RuiFieldDefaults.vue_vue_type_script_setup_true_lang.js +8 -2
  63. package/dist/components/forms/field-defaults/RuiFieldDefaults.vue_vue_type_script_setup_true_lang.js.map +1 -1
  64. package/dist/components/forms/file-upload/RuiFileUpload.js.map +1 -1
  65. package/dist/components/forms/file-upload/RuiFileUpload.vue.d.ts +4 -1
  66. package/dist/components/forms/file-upload/RuiFileUpload.vue_vue_type_script_setup_true_lang.js +18 -6
  67. package/dist/components/forms/file-upload/RuiFileUpload.vue_vue_type_script_setup_true_lang.js.map +1 -1
  68. package/dist/components/forms/radio-button/radio/RuiRadio.js.map +1 -1
  69. package/dist/components/forms/radio-button/radio/RuiRadio.vue.d.ts +6 -0
  70. package/dist/components/forms/radio-button/radio/RuiRadio.vue_vue_type_script_setup_true_lang.js +14 -3
  71. package/dist/components/forms/radio-button/radio/RuiRadio.vue_vue_type_script_setup_true_lang.js.map +1 -1
  72. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.js.map +1 -1
  73. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.d.ts +4 -0
  74. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue_vue_type_script_setup_true_lang.js +7 -2
  75. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  76. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.js.map +1 -1
  77. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue_vue_type_script_setup_true_lang.js +3 -2
  78. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  79. package/dist/components/forms/select/RuiMenuSelect.js.map +1 -1
  80. package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +4 -0
  81. package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js +6 -2
  82. package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  83. package/dist/components/forms/slider/RuiSlider.js.map +1 -1
  84. package/dist/components/forms/slider/RuiSlider.vue.d.ts +4 -0
  85. package/dist/components/forms/slider/RuiSlider.vue_vue_type_script_setup_true_lang.js +6 -3
  86. package/dist/components/forms/slider/RuiSlider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  87. package/dist/components/forms/switch/RuiSwitch.js.map +1 -1
  88. package/dist/components/forms/switch/RuiSwitch.vue.d.ts +6 -0
  89. package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js +25 -5
  90. package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  91. package/dist/components/forms/text-area/RuiTextArea.js.map +1 -1
  92. package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +4 -0
  93. package/dist/components/forms/text-area/RuiTextArea.vue_vue_type_script_setup_true_lang.js +6 -4
  94. package/dist/components/forms/text-area/RuiTextArea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  95. package/dist/components/forms/text-area/text-area-styles.d.ts +0 -1
  96. package/dist/components/forms/text-area/text-area-styles.js +6 -7
  97. package/dist/components/forms/text-area/text-area-styles.js.map +1 -1
  98. package/dist/components/forms/text-field/RuiTextField.js.map +1 -1
  99. package/dist/components/forms/text-field/RuiTextField.vue.d.ts +6 -2
  100. package/dist/components/forms/text-field/RuiTextField.vue_vue_type_script_setup_true_lang.js +6 -4
  101. package/dist/components/forms/text-field/RuiTextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  102. package/dist/components/forms/text-field/text-field-styles.d.ts +0 -1
  103. package/dist/components/forms/text-field/text-field-styles.js +6 -7
  104. package/dist/components/forms/text-field/text-field-styles.js.map +1 -1
  105. package/dist/components/helpers/RuiFormTextDetail.js.map +1 -1
  106. package/dist/components/helpers/RuiFormTextDetail.vue.d.ts +14 -0
  107. package/dist/components/helpers/RuiFormTextDetail.vue_vue_type_script_setup_true_lang.js +41 -11
  108. package/dist/components/helpers/RuiFormTextDetail.vue_vue_type_script_setup_true_lang.js.map +1 -1
  109. package/dist/components/loaders/RuiSkeletonBase.js.map +1 -1
  110. package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js.map +1 -1
  111. package/dist/components/overlays/menu/RuiMenu.js.map +1 -1
  112. package/dist/components/overlays/menu/RuiMenu.vue.d.ts +3 -0
  113. package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js +9 -1
  114. package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  115. package/dist/components/tables/RuiDataTable.js.map +1 -1
  116. package/dist/components/tables/RuiDataTable.vue.d.ts +4 -0
  117. package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js +7 -1
  118. package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  119. package/dist/components/tables/RuiExpandButton.js.map +1 -1
  120. package/dist/components/tables/RuiExpandButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  121. package/dist/components/tables/RuiTableHead.js.map +1 -1
  122. package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js +2 -2
  123. package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js.map +1 -1
  124. package/dist/components/tables/RuiTablePagination.js.map +1 -1
  125. package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js +3 -3
  126. package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  127. package/dist/components/tables/data-table/RuiDataTableAppendRow.js.map +1 -1
  128. package/dist/components/tables/data-table/RuiDataTableAppendRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  129. package/dist/components/tables/data-table/RuiDataTableRow.js.map +1 -1
  130. package/dist/components/tables/data-table/RuiDataTableRow.vue_vue_type_script_setup_true_lang.js +2 -2
  131. package/dist/components/tables/data-table/RuiDataTableRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  132. package/dist/components/tables/data-table-styles.d.ts +8 -1
  133. package/dist/components/tables/data-table-styles.js +14 -5
  134. package/dist/components/tables/data-table-styles.js.map +1 -1
  135. package/dist/components/tabs/tab-items/RuiTabItems.js.map +1 -1
  136. package/dist/components/tabs/tab-items/RuiTabItems.vue_vue_type_script_setup_true_lang.js +9 -2
  137. package/dist/components/tabs/tab-items/RuiTabItems.vue_vue_type_script_setup_true_lang.js.map +1 -1
  138. package/dist/composables/clip-while-resizing.d.ts +15 -0
  139. package/dist/composables/clip-while-resizing.js +46 -0
  140. package/dist/composables/clip-while-resizing.js.map +1 -0
  141. package/dist/composables/defaults/field.d.ts +19 -3
  142. package/dist/composables/defaults/field.js +32 -6
  143. package/dist/composables/defaults/field.js.map +1 -1
  144. package/dist/composables/forms/auto-complete/keyboard-navigation.js.map +1 -1
  145. package/dist/composables/sticky-blocker.d.ts +20 -0
  146. package/dist/composables/sticky-blocker.js +62 -0
  147. package/dist/composables/sticky-blocker.js.map +1 -0
  148. package/dist/composables/tables/data-table/columns.js.map +1 -1
  149. package/dist/composables/tables/data-table/selection.js +23 -21
  150. package/dist/composables/tables/data-table/selection.js.map +1 -1
  151. package/dist/icons/icons_1.js.map +1 -1
  152. package/dist/icons/icons_2.js.map +1 -1
  153. package/dist/icons/icons_3.js.map +1 -1
  154. package/dist/icons/icons_4.js.map +1 -1
  155. package/dist/icons/icons_5.js.map +1 -1
  156. package/dist/index.d.ts +6 -2
  157. package/dist/index.js.map +1 -1
  158. package/dist/style.css +325 -19
  159. package/dist/styles/colors.css +4 -0
  160. package/dist/theme/theme.css +1 -1
  161. package/dist/theme.css +1 -1
  162. package/dist/utils/development.d.ts +6 -0
  163. package/dist/utils/development.js +17 -0
  164. package/dist/utils/development.js.map +1 -0
  165. package/dist/utils/form-text-detail.d.ts +15 -0
  166. package/dist/utils/form-text-detail.js +11 -1
  167. package/dist/utils/form-text-detail.js.map +1 -1
  168. package/dist/vite-plugin/types.d.ts +1 -1
  169. package/dist/web-types.json +232 -3
  170. package/package.json +1 -1
package/dist/style.css CHANGED
@@ -539,6 +539,7 @@
539
539
  --rui-surface-muted: var(--rui-light-surface-muted);
540
540
  --rui-surface-sunken: var(--rui-light-surface-sunken);
541
541
  --rui-link: var(--rui-light-link);
542
+ --rui-focus: var(--rui-light-primary-main);
542
543
  --rui-chart-1: var(--rui-light-chart-1);
543
544
  --rui-chart-2: var(--rui-light-chart-2);
544
545
  --rui-chart-3: var(--rui-light-chart-3);
@@ -592,6 +593,7 @@
592
593
  --rui-surface-muted: var(--rui-light-surface-muted);
593
594
  --rui-surface-sunken: var(--rui-light-surface-sunken);
594
595
  --rui-link: var(--rui-light-link);
596
+ --rui-focus: var(--rui-primary-main);
595
597
  --rui-chart-1: var(--rui-light-chart-1);
596
598
  --rui-chart-2: var(--rui-light-chart-2);
597
599
  --rui-chart-3: var(--rui-light-chart-3);
@@ -647,6 +649,7 @@
647
649
  --rui-surface-muted: var(--rui-dark-surface-muted);
648
650
  --rui-surface-sunken: var(--rui-dark-surface-sunken);
649
651
  --rui-link: var(--rui-dark-link);
652
+ --rui-focus: var(--rui-primary-lighter);
650
653
  --rui-chart-1: var(--rui-dark-chart-1);
651
654
  --rui-chart-2: var(--rui-dark-chart-2);
652
655
  --rui-chart-3: var(--rui-dark-chart-3);
@@ -1088,6 +1091,18 @@
1088
1091
  margin-bottom: calc(var(--spacing) * -2);
1089
1092
  }
1090
1093
 
1094
+ .-mb-\[0\.4375rem\] {
1095
+ margin-bottom: -.4375rem;
1096
+ }
1097
+
1098
+ .-mb-\[0\.5625rem\] {
1099
+ margin-bottom: -.5625rem;
1100
+ }
1101
+
1102
+ .-mb-\[0\.6875rem\] {
1103
+ margin-bottom: -.6875rem;
1104
+ }
1105
+
1091
1106
  .mb-0 {
1092
1107
  margin-bottom: 0;
1093
1108
  }
@@ -1153,6 +1168,13 @@
1153
1168
  scrollbar-width: none;
1154
1169
  }
1155
1170
 
1171
+ .line-clamp-2 {
1172
+ -webkit-line-clamp: 2;
1173
+ -webkit-box-orient: vertical;
1174
+ display: -webkit-box;
1175
+ overflow: hidden;
1176
+ }
1177
+
1156
1178
  .\!hidden {
1157
1179
  display: none !important;
1158
1180
  }
@@ -1957,6 +1979,10 @@
1957
1979
  gap: calc(var(--spacing) * 6);
1958
1980
  }
1959
1981
 
1982
+ .gap-x-1 {
1983
+ column-gap: var(--spacing);
1984
+ }
1985
+
1960
1986
  .gap-x-1\.5 {
1961
1987
  column-gap: calc(var(--spacing) * 1.5);
1962
1988
  }
@@ -3102,6 +3128,26 @@
3102
3128
  padding-left: calc(var(--spacing) * 3) !important;
3103
3129
  }
3104
3130
 
3131
+ .pl-7\.25 {
3132
+ padding-left: calc(var(--spacing) * 7.25);
3133
+ }
3134
+
3135
+ .pl-8\.25 {
3136
+ padding-left: calc(var(--spacing) * 8.25);
3137
+ }
3138
+
3139
+ .pl-9\.25 {
3140
+ padding-left: calc(var(--spacing) * 9.25);
3141
+ }
3142
+
3143
+ .pl-11\.75 {
3144
+ padding-left: calc(var(--spacing) * 11.75);
3145
+ }
3146
+
3147
+ .pl-13\.25 {
3148
+ padding-left: calc(var(--spacing) * 13.25);
3149
+ }
3150
+
3105
3151
  .text-center {
3106
3152
  text-align: center;
3107
3153
  }
@@ -3114,6 +3160,10 @@
3114
3160
  text-align: right;
3115
3161
  }
3116
3162
 
3163
+ .align-baseline {
3164
+ vertical-align: baseline;
3165
+ }
3166
+
3117
3167
  .align-middle {
3118
3168
  vertical-align: middle;
3119
3169
  }
@@ -3249,6 +3299,11 @@
3249
3299
  line-height: calc(var(--spacing) * 7);
3250
3300
  }
3251
3301
 
3302
+ .text-\[0\.6875rem\]\/4 {
3303
+ font-size: .6875rem;
3304
+ line-height: calc(var(--spacing) * 4);
3305
+ }
3306
+
3252
3307
  .text-\[0\.8125rem\]\/5 {
3253
3308
  font-size: .8125rem;
3254
3309
  line-height: calc(var(--spacing) * 5);
@@ -3320,6 +3375,10 @@
3320
3375
  font-size: 1rem;
3321
3376
  }
3322
3377
 
3378
+ .text-\[length\:inherit\] {
3379
+ font-size: inherit;
3380
+ }
3381
+
3323
3382
  .leading-3 {
3324
3383
  --tw-leading: calc(var(--spacing) * 3);
3325
3384
  line-height: calc(var(--spacing) * 3);
@@ -3340,6 +3399,11 @@
3340
3399
  line-height: calc(var(--spacing) * 6);
3341
3400
  }
3342
3401
 
3402
+ .leading-\[inherit\] {
3403
+ --tw-leading: inherit;
3404
+ line-height: inherit;
3405
+ }
3406
+
3343
3407
  .leading-none {
3344
3408
  --tw-leading: 1;
3345
3409
  line-height: 1;
@@ -3548,6 +3612,10 @@
3548
3612
  text-decoration-line: underline;
3549
3613
  }
3550
3614
 
3615
+ .underline-offset-2 {
3616
+ text-underline-offset: 2px;
3617
+ }
3618
+
3551
3619
  .opacity-0 {
3552
3620
  opacity: 0;
3553
3621
  }
@@ -3556,10 +3624,6 @@
3556
3624
  opacity: .2;
3557
3625
  }
3558
3626
 
3559
- .opacity-30 {
3560
- opacity: .3;
3561
- }
3562
-
3563
3627
  .opacity-50 {
3564
3628
  opacity: .5;
3565
3629
  }
@@ -3568,6 +3632,14 @@
3568
3632
  opacity: .6;
3569
3633
  }
3570
3634
 
3635
+ .opacity-75 {
3636
+ opacity: .75;
3637
+ }
3638
+
3639
+ .opacity-80 {
3640
+ opacity: .8;
3641
+ }
3642
+
3571
3643
  .opacity-100 {
3572
3644
  opacity: 1;
3573
3645
  }
@@ -4091,6 +4163,10 @@
4091
4163
  --rui-icon-size: 1.375rem !important;
4092
4164
  }
4093
4165
 
4166
+ .\!\[--rui-icon-size\:1em\] {
4167
+ --rui-icon-size: 1em !important;
4168
+ }
4169
+
4094
4170
  .\!\[--rui-icon-size\:100\%\] {
4095
4171
  --rui-icon-size: 100% !important;
4096
4172
  }
@@ -4135,6 +4211,38 @@
4135
4211
  --rui-alert: var(--rui-warning-main);
4136
4212
  }
4137
4213
 
4214
+ .\[--rui-btn-collapsed-icon\:0\.875rem\] {
4215
+ --rui-btn-collapsed-icon: .875rem;
4216
+ }
4217
+
4218
+ .\[--rui-btn-collapsed-icon\:1\.5rem\] {
4219
+ --rui-btn-collapsed-icon: 1.5rem;
4220
+ }
4221
+
4222
+ .\[--rui-btn-collapsed-icon\:1\.25rem\] {
4223
+ --rui-btn-collapsed-icon: 1.25rem;
4224
+ }
4225
+
4226
+ .\[--rui-btn-collapsed-icon\:1\.75rem\] {
4227
+ --rui-btn-collapsed-icon: 1.75rem;
4228
+ }
4229
+
4230
+ .\[--rui-btn-collapsed-p\:0\.5rem\] {
4231
+ --rui-btn-collapsed-p: .5rem;
4232
+ }
4233
+
4234
+ .\[--rui-btn-collapsed-p\:0\.25rem\] {
4235
+ --rui-btn-collapsed-p: .25rem;
4236
+ }
4237
+
4238
+ .\[--rui-btn-collapsed-p\:0\.375rem\] {
4239
+ --rui-btn-collapsed-p: .375rem;
4240
+ }
4241
+
4242
+ .\[--rui-btn-collapsed-p\:0\.1875rem\] {
4243
+ --rui-btn-collapsed-p: .1875rem;
4244
+ }
4245
+
4138
4246
  .\[--rui-icon-size\:0\.75rem\] {
4139
4247
  --rui-icon-size: .75rem;
4140
4248
  }
@@ -4197,8 +4305,8 @@
4197
4305
  color: rgb(var(--rui-neutral-700));
4198
4306
  }
4199
4307
 
4200
- .group-hover\/sort\:opacity-60:is(:where(.group\/sort):hover *) {
4201
- opacity: .6;
4308
+ .group-hover\/sort\:opacity-100:is(:where(.group\/sort):hover *) {
4309
+ opacity: 1;
4202
4310
  }
4203
4311
 
4204
4312
  .group-hover\/switch\:bg-rui-neutral-500:is(:where(.group\/switch):hover *) {
@@ -4206,8 +4314,8 @@
4206
4314
  }
4207
4315
  }
4208
4316
 
4209
- .group-focus-visible\/sort\:opacity-60:is(:where(.group\/sort):focus-visible *) {
4210
- opacity: .6;
4317
+ .group-focus-visible\/sort\:opacity-100:is(:where(.group\/sort):focus-visible *) {
4318
+ opacity: 1;
4211
4319
  }
4212
4320
 
4213
4321
  .first-letter\:uppercase:first-letter {
@@ -4498,6 +4606,10 @@
4498
4606
  .not-disabled\:hover\:state-layer-pressed:not(:disabled):hover {
4499
4607
  background-image: linear-gradient(var(--rui-pressed), var(--rui-pressed));
4500
4608
  }
4609
+
4610
+ .not-disabled\:hover\:underline:not(:disabled):hover {
4611
+ text-decoration-line: underline;
4612
+ }
4501
4613
  }
4502
4614
 
4503
4615
  .focus\:z-1:focus {
@@ -4561,7 +4673,7 @@
4561
4673
  }
4562
4674
 
4563
4675
  .focus-visible\:focus-ring:focus-visible {
4564
- outline: 2px solid rgb(var(--rui-primary-main));
4676
+ outline: 2px solid rgb(var(--rui-focus));
4565
4677
  outline-offset: 2px;
4566
4678
  }
4567
4679
 
@@ -4661,6 +4773,10 @@
4661
4773
  }
4662
4774
  }
4663
4775
 
4776
+ .active\:bg-transparent:active {
4777
+ background-color: #0000;
4778
+ }
4779
+
4664
4780
  .active\:state-layer-pressed:active {
4665
4781
  background-image: linear-gradient(var(--rui-pressed), var(--rui-pressed));
4666
4782
  }
@@ -4758,6 +4874,136 @@
4758
4874
  }
4759
4875
  }
4760
4876
 
4877
+ @media not all and (min-width: 96rem) {
4878
+ .max-2xl\:sr-only {
4879
+ clip-path: inset(50%);
4880
+ white-space: nowrap;
4881
+ border-width: 0;
4882
+ width: 1px;
4883
+ height: 1px;
4884
+ margin: -1px;
4885
+ padding: 0;
4886
+ position: absolute;
4887
+ overflow: hidden;
4888
+ }
4889
+
4890
+ .max-2xl\:gap-x-0 {
4891
+ column-gap: 0;
4892
+ }
4893
+
4894
+ .max-2xl\:p-\(--rui-btn-collapsed-p\) {
4895
+ padding: var(--rui-btn-collapsed-p);
4896
+ }
4897
+
4898
+ .max-2xl\:\!\[--rui-icon-size\:var\(--rui-btn-collapsed-icon\)\] {
4899
+ --rui-icon-size: var(--rui-btn-collapsed-icon) !important;
4900
+ }
4901
+ }
4902
+
4903
+ @media not all and (min-width: 80rem) {
4904
+ .max-xl\:sr-only {
4905
+ clip-path: inset(50%);
4906
+ white-space: nowrap;
4907
+ border-width: 0;
4908
+ width: 1px;
4909
+ height: 1px;
4910
+ margin: -1px;
4911
+ padding: 0;
4912
+ position: absolute;
4913
+ overflow: hidden;
4914
+ }
4915
+
4916
+ .max-xl\:gap-x-0 {
4917
+ column-gap: 0;
4918
+ }
4919
+
4920
+ .max-xl\:p-\(--rui-btn-collapsed-p\) {
4921
+ padding: var(--rui-btn-collapsed-p);
4922
+ }
4923
+
4924
+ .max-xl\:\!\[--rui-icon-size\:var\(--rui-btn-collapsed-icon\)\] {
4925
+ --rui-icon-size: var(--rui-btn-collapsed-icon) !important;
4926
+ }
4927
+ }
4928
+
4929
+ @media not all and (min-width: 64rem) {
4930
+ .max-lg\:sr-only {
4931
+ clip-path: inset(50%);
4932
+ white-space: nowrap;
4933
+ border-width: 0;
4934
+ width: 1px;
4935
+ height: 1px;
4936
+ margin: -1px;
4937
+ padding: 0;
4938
+ position: absolute;
4939
+ overflow: hidden;
4940
+ }
4941
+
4942
+ .max-lg\:gap-x-0 {
4943
+ column-gap: 0;
4944
+ }
4945
+
4946
+ .max-lg\:p-\(--rui-btn-collapsed-p\) {
4947
+ padding: var(--rui-btn-collapsed-p);
4948
+ }
4949
+
4950
+ .max-lg\:\!\[--rui-icon-size\:var\(--rui-btn-collapsed-icon\)\] {
4951
+ --rui-icon-size: var(--rui-btn-collapsed-icon) !important;
4952
+ }
4953
+ }
4954
+
4955
+ @media not all and (min-width: 48rem) {
4956
+ .max-md\:sr-only {
4957
+ clip-path: inset(50%);
4958
+ white-space: nowrap;
4959
+ border-width: 0;
4960
+ width: 1px;
4961
+ height: 1px;
4962
+ margin: -1px;
4963
+ padding: 0;
4964
+ position: absolute;
4965
+ overflow: hidden;
4966
+ }
4967
+
4968
+ .max-md\:gap-x-0 {
4969
+ column-gap: 0;
4970
+ }
4971
+
4972
+ .max-md\:p-\(--rui-btn-collapsed-p\) {
4973
+ padding: var(--rui-btn-collapsed-p);
4974
+ }
4975
+
4976
+ .max-md\:\!\[--rui-icon-size\:var\(--rui-btn-collapsed-icon\)\] {
4977
+ --rui-icon-size: var(--rui-btn-collapsed-icon) !important;
4978
+ }
4979
+ }
4980
+
4981
+ @media not all and (min-width: 40rem) {
4982
+ .max-sm\:sr-only {
4983
+ clip-path: inset(50%);
4984
+ white-space: nowrap;
4985
+ border-width: 0;
4986
+ width: 1px;
4987
+ height: 1px;
4988
+ margin: -1px;
4989
+ padding: 0;
4990
+ position: absolute;
4991
+ overflow: hidden;
4992
+ }
4993
+
4994
+ .max-sm\:gap-x-0 {
4995
+ column-gap: 0;
4996
+ }
4997
+
4998
+ .max-sm\:p-\(--rui-btn-collapsed-p\) {
4999
+ padding: var(--rui-btn-collapsed-p);
5000
+ }
5001
+
5002
+ .max-sm\:\!\[--rui-icon-size\:var\(--rui-btn-collapsed-icon\)\] {
5003
+ --rui-icon-size: var(--rui-btn-collapsed-icon) !important;
5004
+ }
5005
+ }
5006
+
4761
5007
  @media (min-width: 64rem) {
4762
5008
  .lg\:whitespace-normal {
4763
5009
  white-space: normal;
@@ -5162,6 +5408,10 @@
5162
5408
  color: var(--rui-text-disabled);
5163
5409
  }
5164
5410
 
5411
+ .dark\:text-rui-text-secondary:is(.dark *, [data-theme="dark"] *) {
5412
+ color: var(--rui-text-secondary);
5413
+ }
5414
+
5165
5415
  .dark\:text-rui-warning:is(.dark *, [data-theme="dark"] *) {
5166
5416
  color: rgb(var(--rui-warning-main));
5167
5417
  }
@@ -5312,6 +5562,10 @@
5312
5562
  }
5313
5563
  }
5314
5564
 
5565
+ .dark\:active\:bg-transparent:is(.dark *, [data-theme="dark"] *):active {
5566
+ background-color: #0000;
5567
+ }
5568
+
5315
5569
  .dark\:disabled\:\!bg-rui-neutral-800:is(.dark *, [data-theme="dark"] *):disabled {
5316
5570
  background-color: rgb(var(--rui-neutral-800)) !important;
5317
5571
  }
@@ -5484,7 +5738,7 @@
5484
5738
  }
5485
5739
 
5486
5740
  .peer-focus-visible\:\[\&_\[data-id\=slider-thumb\]\]\:focus-ring:is(:where(.peer):focus-visible ~ *) [data-id="slider-thumb"] {
5487
- outline: 2px solid rgb(var(--rui-primary-main));
5741
+ outline: 2px solid rgb(var(--rui-focus));
5488
5742
  outline-offset: 2px;
5489
5743
  }
5490
5744
 
@@ -5547,7 +5801,7 @@
5547
5801
  }
5548
5802
 
5549
5803
  .peer-focus-visible\:\[\&\>\[data-mark\]\]\:focus-ring:is(:where(.peer):focus-visible ~ *) > [data-mark] {
5550
- outline: 2px solid rgb(var(--rui-primary-main));
5804
+ outline: 2px solid rgb(var(--rui-focus));
5551
5805
  outline-offset: 2px;
5552
5806
  }
5553
5807
 
@@ -5600,6 +5854,10 @@
5600
5854
  background-color: rgb(var(--rui-primary-main));
5601
5855
  }
5602
5856
 
5857
+ .\[\&\>tr\]\:block > tr {
5858
+ display: block;
5859
+ }
5860
+
5603
5861
  :where(.\[\:where\(\&\)\]\:h-8) {
5604
5862
  height: calc(var(--spacing) * 8);
5605
5863
  }
@@ -5715,6 +5973,30 @@
5715
5973
  color: var(--rui-text-secondary);
5716
5974
  }
5717
5975
 
5976
+ :where(.\[\:where\(\&\>tr\>\*\)\]\:block > tr > *) {
5977
+ display: block;
5978
+ }
5979
+
5980
+ :where(.\[\:where\(\&\>tr\>\*\)\]\:h-9 > tr > *) {
5981
+ height: calc(var(--spacing) * 9);
5982
+ }
5983
+
5984
+ :where(.\[\:where\(\&\>tr\>\*\)\]\:h-11 > tr > *) {
5985
+ height: calc(var(--spacing) * 11);
5986
+ }
5987
+
5988
+ :where(.\[\:where\(\&\>tr\>\*\)\]\:px-4 > tr > *) {
5989
+ padding-inline: calc(var(--spacing) * 4);
5990
+ }
5991
+
5992
+ :where(.\[\:where\(\&\>tr\>\*\)\]\:py-1 > tr > *) {
5993
+ padding-block: var(--spacing);
5994
+ }
5995
+
5996
+ :where(.\[\:where\(\&\>tr\>\*\)\]\:py-2 > tr > *) {
5997
+ padding-block: calc(var(--spacing) * 2);
5998
+ }
5999
+
5718
6000
  :where(.\[\:where\(\&\>tr\[data-stripe\]\)\]\:bg-rui-neutral-950\/\[0\.015\] > tr[data-stripe]) {
5719
6001
  background-color: rgb(var(--rui-neutral-950));
5720
6002
  }
@@ -5735,6 +6017,16 @@
5735
6017
  }
5736
6018
  }
5737
6019
 
6020
+ [data-id="row-expanded"] .\[\[data-id\=row-expanded\]_\&\]\:border-rui-neutral-950\/\[0\.16\] {
6021
+ border-color: rgb(var(--rui-neutral-950));
6022
+ }
6023
+
6024
+ @supports (color: color-mix(in lab, red, red)) {
6025
+ [data-id="row-expanded"] .\[\[data-id\=row-expanded\]_\&\]\:border-rui-neutral-950\/\[0\.16\] {
6026
+ border-color: color-mix(in oklab, rgb(var(--rui-neutral-950)) 16%, transparent);
6027
+ }
6028
+ }
6029
+
5738
6030
  [data-id="row-expanded"] .\[\[data-id\=row-expanded\]_\&\]\:bg-rui-neutral-950\/\[0\.11\] {
5739
6031
  background-color: rgb(var(--rui-neutral-950));
5740
6032
  }
@@ -5755,6 +6047,10 @@
5755
6047
  }
5756
6048
  }
5757
6049
 
6050
+ [data-id="row-expanded"] .\[\[data-id\=row-expanded\]_\&\]\:bg-clip-padding {
6051
+ background-clip: padding-box;
6052
+ }
6053
+
5758
6054
  @media (hover: hover) {
5759
6055
  [data-id="row-expanded"] .\[\[data-id\=row-expanded\]_\&\]\:hover\:bg-rui-neutral-950\/\[0\.11\]:hover {
5760
6056
  background-color: rgb(var(--rui-neutral-950));
@@ -5767,23 +6063,33 @@
5767
6063
  }
5768
6064
  }
5769
6065
 
5770
- [data-id="row-expanded"] .dark\:\[\[data-id\=row-expanded\]_\&\]\:bg-white\/\[0\.14\]:is(.dark *, [data-theme="dark"] *) {
5771
- background-color: #ffffff24;
6066
+ [data-id="row-expanded"] .dark\:\[\[data-id\=row-expanded\]_\&\]\:border-white\/\[0\.12\]:is(.dark *, [data-theme="dark"] *) {
6067
+ border-color: #ffffff1f;
5772
6068
  }
5773
6069
 
5774
6070
  @supports (color: color-mix(in lab, red, red)) {
5775
- [data-id="row-expanded"] .dark\:\[\[data-id\=row-expanded\]_\&\]\:bg-white\/\[0\.14\]:is(.dark *, [data-theme="dark"] *) {
5776
- background-color: color-mix(in oklab, var(--color-white) 14.0%, transparent);
6071
+ [data-id="row-expanded"] .dark\:\[\[data-id\=row-expanded\]_\&\]\:border-white\/\[0\.12\]:is(.dark *, [data-theme="dark"] *) {
6072
+ border-color: color-mix(in oklab, var(--color-white) 12%, transparent);
5777
6073
  }
5778
6074
  }
5779
6075
 
5780
- [data-id="row-expanded"] .dark\:\[\[data-id\=row-expanded\]_\&\]\:bg-white\/\[0\.16\]:is(.dark *, [data-theme="dark"] *) {
5781
- background-color: #ffffff29;
6076
+ [data-id="row-expanded"] .dark\:\[\[data-id\=row-expanded\]_\&\]\:bg-white\/\[0\.13\]:is(.dark *, [data-theme="dark"] *) {
6077
+ background-color: #ffffff21;
5782
6078
  }
5783
6079
 
5784
6080
  @supports (color: color-mix(in lab, red, red)) {
5785
- [data-id="row-expanded"] .dark\:\[\[data-id\=row-expanded\]_\&\]\:bg-white\/\[0\.16\]:is(.dark *, [data-theme="dark"] *) {
5786
- background-color: color-mix(in oklab, var(--color-white) 16%, transparent);
6081
+ [data-id="row-expanded"] .dark\:\[\[data-id\=row-expanded\]_\&\]\:bg-white\/\[0\.13\]:is(.dark *, [data-theme="dark"] *) {
6082
+ background-color: color-mix(in oklab, var(--color-white) 13%, transparent);
6083
+ }
6084
+ }
6085
+
6086
+ [data-id="row-expanded"] .dark\:\[\[data-id\=row-expanded\]_\&\]\:bg-white\/\[0\.14\]:is(.dark *, [data-theme="dark"] *) {
6087
+ background-color: #ffffff24;
6088
+ }
6089
+
6090
+ @supports (color: color-mix(in lab, red, red)) {
6091
+ [data-id="row-expanded"] .dark\:\[\[data-id\=row-expanded\]_\&\]\:bg-white\/\[0\.14\]:is(.dark *, [data-theme="dark"] *) {
6092
+ background-color: color-mix(in oklab, var(--color-white) 14.0%, transparent);
5787
6093
  }
5788
6094
  }
5789
6095
 
@@ -187,6 +187,8 @@
187
187
  --rui-surface-muted: var(--rui-light-surface-muted);
188
188
  --rui-surface-sunken: var(--rui-light-surface-sunken);
189
189
  --rui-link: var(--rui-light-link);
190
+ /* The focus ring: primary in light, its lighter tone in dark, where `main` falls to 3:1 on raised surfaces. */
191
+ --rui-focus: var(--rui-light-primary-main);
190
192
  --rui-chart-1: var(--rui-light-chart-1);
191
193
  --rui-chart-2: var(--rui-light-chart-2);
192
194
  --rui-chart-3: var(--rui-light-chart-3);
@@ -242,6 +244,7 @@ html.light {
242
244
  --rui-surface-muted: var(--rui-light-surface-muted);
243
245
  --rui-surface-sunken: var(--rui-light-surface-sunken);
244
246
  --rui-link: var(--rui-light-link);
247
+ --rui-focus: var(--rui-primary-main);
245
248
  --rui-chart-1: var(--rui-light-chart-1);
246
249
  --rui-chart-2: var(--rui-light-chart-2);
247
250
  --rui-chart-3: var(--rui-light-chart-3);
@@ -298,6 +301,7 @@ html.dark {
298
301
  --rui-surface-muted: var(--rui-dark-surface-muted);
299
302
  --rui-surface-sunken: var(--rui-dark-surface-sunken);
300
303
  --rui-link: var(--rui-dark-link);
304
+ --rui-focus: var(--rui-primary-lighter);
301
305
  --rui-chart-1: var(--rui-dark-chart-1);
302
306
  --rui-chart-2: var(--rui-dark-chart-2);
303
307
  --rui-chart-3: var(--rui-dark-chart-3);
@@ -327,7 +327,7 @@
327
327
  }
328
328
 
329
329
  @utility focus-ring {
330
- outline: 2px solid rgb(var(--rui-primary-main));
330
+ outline: 2px solid rgb(var(--rui-focus));
331
331
  outline-offset: 2px;
332
332
  }
333
333
 
package/dist/theme.css CHANGED
@@ -327,7 +327,7 @@
327
327
  }
328
328
 
329
329
  @utility focus-ring {
330
- outline: 2px solid rgb(var(--rui-primary-main));
330
+ outline: 2px solid rgb(var(--rui-focus));
331
331
  outline-offset: 2px;
332
332
  }
333
333
 
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Whether the app runs a development build, for warnings a production build should not carry.
3
+ *
4
+ * @returns false in a production build, and where nothing replaced `process.env.NODE_ENV`
5
+ */
6
+ export declare function isDevelopment(): boolean;
@@ -0,0 +1,17 @@
1
+ //#region src/utils/development.ts
2
+ /**
3
+ * Whether the app runs a development build, for warnings a production build should not carry.
4
+ *
5
+ * @returns false in a production build, and where nothing replaced `process.env.NODE_ENV`
6
+ */
7
+ function isDevelopment() {
8
+ try {
9
+ return process.env.NODE_ENV !== "production";
10
+ } catch {
11
+ return false;
12
+ }
13
+ }
14
+ //#endregion
15
+ export { isDevelopment };
16
+
17
+ //# sourceMappingURL=development.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"development.js","names":[],"sources":["../../src/utils/development.ts"],"sourcesContent":["/**\n * The consumer's bundler replaces `process.env.NODE_ENV`; the library build leaves it in place on\n * purpose, since `import.meta.env.DEV` would be fixed to false when the library is built. Declared\n * here rather than globally, where it would clash with `@types/node` in the test build.\n */\ndeclare const process: { env: { NODE_ENV?: string } };\n\n/**\n * Whether the app runs a development build, for warnings a production build should not carry.\n *\n * @returns false in a production build, and where nothing replaced `process.env.NODE_ENV`\n */\nexport function isDevelopment(): boolean {\n try {\n return process.env.NODE_ENV !== 'production';\n }\n catch {\n return false;\n }\n}\n"],"mappings":";;;;;;AAYA,SAAgB,gBAAyB;CACvC,IAAI;EACF,OAAA,QAAA,IAAA,aAAgC;CAClC,QACM;EACJ,OAAO;CACT;AACF"}
@@ -1,5 +1,20 @@
1
1
  import type { ComputedRef, MaybeRefOrGetter } from 'vue';
2
2
  export type ValidationState = 'error' | 'success' | undefined;
3
+ /**
4
+ * How a control handles the line under it for its hint, error or success message.
5
+ *
6
+ * - `reserve`: the line is always there, so a message never moves what is below (the default).
7
+ * - `auto`: no space while there is nothing to show; the line appears with a hint, error or
8
+ * success message and pushes what is below down.
9
+ * - `hidden`: no line and no message text. An error still marks the control invalid.
10
+ */
11
+ export type FormDetails = 'reserve' | 'auto' | 'hidden';
12
+ /**
13
+ * The details mode a control uses: `hidden` while the deprecated `hideDetails` is set,
14
+ * otherwise its `details` prop, then the nearest `RuiFieldDefaults` scope, then the app
15
+ * default, then `reserve`.
16
+ */
17
+ export declare function useFormDetails(details: MaybeRefOrGetter<FormDetails | undefined>, hideDetails: MaybeRefOrGetter<boolean>): ComputedRef<FormDetails>;
3
18
  export interface FormTextDetailReturn {
4
19
  formattedErrorMessages: ComputedRef<string[]>;
5
20
  formattedSuccessMessages: ComputedRef<string[]>;
@@ -1,6 +1,16 @@
1
+ import { useInheritedDetails } from "../composables/defaults/field.js";
1
2
  import { get } from "../vendor/@vueuse/shared/dist/index.js";
2
3
  import { computed, toValue } from "vue";
3
4
  //#region src/utils/form-text-detail.ts
5
+ /**
6
+ * The details mode a control uses: `hidden` while the deprecated `hideDetails` is set,
7
+ * otherwise its `details` prop, then the nearest `RuiFieldDefaults` scope, then the app
8
+ * default, then `reserve`.
9
+ */
10
+ function useFormDetails(details, hideDetails) {
11
+ const inherited = useInheritedDetails();
12
+ return computed(() => toValue(hideDetails) ? "hidden" : toValue(details) ?? inherited() ?? "reserve");
13
+ }
4
14
  function useFormTextDetail(errorMessages, successMessages) {
5
15
  const formattedErrorMessages = computed(() => {
6
16
  let errorMessagesVal = toValue(errorMessages);
@@ -27,6 +37,6 @@ function useFormTextDetail(errorMessages, successMessages) {
27
37
  };
28
38
  }
29
39
  //#endregion
30
- export { useFormTextDetail };
40
+ export { useFormDetails, useFormTextDetail };
31
41
 
32
42
  //# sourceMappingURL=form-text-detail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-text-detail.js","names":[],"sources":["../../src/utils/form-text-detail.ts"],"sourcesContent":["import type { ComputedRef, MaybeRefOrGetter } from 'vue';\n\nexport type ValidationState = 'error' | 'success' | undefined;\n\nexport interface FormTextDetailReturn {\n formattedErrorMessages: ComputedRef<string[]>;\n formattedSuccessMessages: ComputedRef<string[]>;\n hasError: ComputedRef<boolean>;\n hasMessages: ComputedRef<boolean>;\n hasSuccess: ComputedRef<boolean>;\n validation: ComputedRef<ValidationState>;\n}\n\nexport function useFormTextDetail(\n errorMessages: MaybeRefOrGetter<string | string[]>,\n successMessages: MaybeRefOrGetter<string | string[]>,\n): FormTextDetailReturn {\n const formattedErrorMessages = computed<string[]>(() => {\n let errorMessagesVal = toValue(errorMessages);\n if (typeof errorMessagesVal === 'string')\n errorMessagesVal = [errorMessagesVal];\n\n return errorMessagesVal.filter(item => !!item);\n });\n\n const formattedSuccessMessages = computed<string[]>(() => {\n let successMessagesVal = toValue(successMessages);\n if (typeof successMessagesVal === 'string')\n successMessagesVal = [successMessagesVal];\n\n return successMessagesVal.filter(item => !!item);\n });\n\n const hasError = computed<boolean>(() => get(formattedErrorMessages).length > 0);\n const hasSuccess = computed<boolean>(() => get(formattedSuccessMessages).length > 0);\n const hasMessages = computed<boolean>(() => get(hasError) || get(hasSuccess));\n\n const validation = computed<ValidationState>(() => {\n if (get(hasError))\n return 'error';\n if (get(hasSuccess))\n return 'success';\n return undefined;\n });\n\n return {\n formattedErrorMessages,\n formattedSuccessMessages,\n hasError,\n hasMessages,\n hasSuccess,\n validation,\n };\n}\n"],"mappings":";;;AAaA,SAAgB,kBACd,eACA,iBACsB;CACtB,MAAM,yBAAyB,eAAyB;EACtD,IAAI,mBAAmB,QAAQ,aAAa;EAC5C,IAAI,OAAO,qBAAqB,UAC9B,mBAAmB,CAAC,gBAAgB;EAEtC,OAAO,iBAAiB,QAAO,SAAQ,CAAC,CAAC,IAAI;CAC/C,CAAC;CAED,MAAM,2BAA2B,eAAyB;EACxD,IAAI,qBAAqB,QAAQ,eAAe;EAChD,IAAI,OAAO,uBAAuB,UAChC,qBAAqB,CAAC,kBAAkB;EAE1C,OAAO,mBAAmB,QAAO,SAAQ,CAAC,CAAC,IAAI;CACjD,CAAC;CAED,MAAM,WAAW,eAAwB,IAAI,sBAAsB,CAAC,CAAC,SAAS,CAAC;CAC/E,MAAM,aAAa,eAAwB,IAAI,wBAAwB,CAAC,CAAC,SAAS,CAAC;CAWnF,OAAO;EACL;EACA;EACA;EACA,aAdkB,eAAwB,IAAI,QAAQ,KAAK,IAAI,UAAU,CAczE;EACA;EACA,YAdiB,eAAgC;GACjD,IAAI,IAAI,QAAQ,GACd,OAAO;GACT,IAAI,IAAI,UAAU,GAChB,OAAO;EAEX,CAQE;CACF;AACF"}
1
+ {"version":3,"file":"form-text-detail.js","names":[],"sources":["../../src/utils/form-text-detail.ts"],"sourcesContent":["import type { ComputedRef, MaybeRefOrGetter } from 'vue';\nimport { useInheritedDetails } from '@/composables/defaults/field';\n\nexport type ValidationState = 'error' | 'success' | undefined;\n\n/**\n * How a control handles the line under it for its hint, error or success message.\n *\n * - `reserve`: the line is always there, so a message never moves what is below (the default).\n * - `auto`: no space while there is nothing to show; the line appears with a hint, error or\n * success message and pushes what is below down.\n * - `hidden`: no line and no message text. An error still marks the control invalid.\n */\nexport type FormDetails = 'reserve' | 'auto' | 'hidden';\n\n/**\n * The details mode a control uses: `hidden` while the deprecated `hideDetails` is set,\n * otherwise its `details` prop, then the nearest `RuiFieldDefaults` scope, then the app\n * default, then `reserve`.\n */\nexport function useFormDetails(\n details: MaybeRefOrGetter<FormDetails | undefined>,\n hideDetails: MaybeRefOrGetter<boolean>,\n): ComputedRef<FormDetails> {\n const inherited = useInheritedDetails();\n return computed<FormDetails>(() => (toValue(hideDetails) ? 'hidden' : toValue(details) ?? inherited() ?? 'reserve'));\n}\n\nexport interface FormTextDetailReturn {\n formattedErrorMessages: ComputedRef<string[]>;\n formattedSuccessMessages: ComputedRef<string[]>;\n hasError: ComputedRef<boolean>;\n hasMessages: ComputedRef<boolean>;\n hasSuccess: ComputedRef<boolean>;\n validation: ComputedRef<ValidationState>;\n}\n\nexport function useFormTextDetail(\n errorMessages: MaybeRefOrGetter<string | string[]>,\n successMessages: MaybeRefOrGetter<string | string[]>,\n): FormTextDetailReturn {\n const formattedErrorMessages = computed<string[]>(() => {\n let errorMessagesVal = toValue(errorMessages);\n if (typeof errorMessagesVal === 'string')\n errorMessagesVal = [errorMessagesVal];\n\n return errorMessagesVal.filter(item => !!item);\n });\n\n const formattedSuccessMessages = computed<string[]>(() => {\n let successMessagesVal = toValue(successMessages);\n if (typeof successMessagesVal === 'string')\n successMessagesVal = [successMessagesVal];\n\n return successMessagesVal.filter(item => !!item);\n });\n\n const hasError = computed<boolean>(() => get(formattedErrorMessages).length > 0);\n const hasSuccess = computed<boolean>(() => get(formattedSuccessMessages).length > 0);\n const hasMessages = computed<boolean>(() => get(hasError) || get(hasSuccess));\n\n const validation = computed<ValidationState>(() => {\n if (get(hasError))\n return 'error';\n if (get(hasSuccess))\n return 'success';\n return undefined;\n });\n\n return {\n formattedErrorMessages,\n formattedSuccessMessages,\n hasError,\n hasMessages,\n hasSuccess,\n validation,\n };\n}\n"],"mappings":";;;;;;;;;AAoBA,SAAgB,eACd,SACA,aAC0B;CAC1B,MAAM,YAAY,oBAAoB;CACtC,OAAO,eAA6B,QAAQ,WAAW,IAAI,WAAW,QAAQ,OAAO,KAAK,UAAU,KAAK,SAAU;AACrH;AAWA,SAAgB,kBACd,eACA,iBACsB;CACtB,MAAM,yBAAyB,eAAyB;EACtD,IAAI,mBAAmB,QAAQ,aAAa;EAC5C,IAAI,OAAO,qBAAqB,UAC9B,mBAAmB,CAAC,gBAAgB;EAEtC,OAAO,iBAAiB,QAAO,SAAQ,CAAC,CAAC,IAAI;CAC/C,CAAC;CAED,MAAM,2BAA2B,eAAyB;EACxD,IAAI,qBAAqB,QAAQ,eAAe;EAChD,IAAI,OAAO,uBAAuB,UAChC,qBAAqB,CAAC,kBAAkB;EAE1C,OAAO,mBAAmB,QAAO,SAAQ,CAAC,CAAC,IAAI;CACjD,CAAC;CAED,MAAM,WAAW,eAAwB,IAAI,sBAAsB,CAAC,CAAC,SAAS,CAAC;CAC/E,MAAM,aAAa,eAAwB,IAAI,wBAAwB,CAAC,CAAC,SAAS,CAAC;CAWnF,OAAO;EACL;EACA;EACA;EACA,aAdkB,eAAwB,IAAI,QAAQ,KAAK,IAAI,UAAU,CAczE;EACA;EACA,YAdiB,eAAgC;GACjD,IAAI,IAAI,QAAQ,GACd,OAAO;GACT,IAAI,IAAI,UAAU,GAChB,OAAO;EAEX,CAQE;CACF;AACF"}