@rotki/ui-library 3.0.0-beta.5 → 3.1.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 (163) 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.vue.d.ts +2 -2
  5. package/dist/components/buttons/button/RuiButton.js.map +1 -1
  6. package/dist/components/buttons/button/RuiButton.vue.d.ts +7 -1
  7. package/dist/components/buttons/button/RuiButton.vue_vue_type_script_setup_true_lang.js +4 -2
  8. package/dist/components/buttons/button/RuiButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  9. package/dist/components/buttons/button/button-props.d.ts +3 -0
  10. package/dist/components/buttons/button/button-props.js +2 -1
  11. package/dist/components/buttons/button/button-props.js.map +1 -1
  12. package/dist/components/buttons/button/button-styles.d.ts +75 -0
  13. package/dist/components/buttons/button/button-styles.js +135 -4
  14. package/dist/components/buttons/button/button-styles.js.map +1 -1
  15. package/dist/components/cards/RuiCard.js.map +1 -1
  16. package/dist/components/cards/RuiCard.vue.d.ts +6 -0
  17. package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js +14 -2
  18. package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  19. package/dist/components/chips/RuiChip.js.map +1 -1
  20. package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js +14 -0
  21. package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  22. package/dist/components/chips/chip-props.d.ts +2 -0
  23. package/dist/components/chips/chip-props.js +3 -0
  24. package/dist/components/chips/chip-props.js.map +1 -1
  25. package/dist/components/color-picker/RuiColorInput.js.map +1 -1
  26. package/dist/components/color-picker/RuiColorInput.vue_vue_type_script_setup_true_lang.js +2 -2
  27. package/dist/components/color-picker/RuiColorInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  28. package/dist/components/date-time-picker/RuiDateTimePicker.js.map +1 -1
  29. package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +4 -0
  30. package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js +6 -2
  31. package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  32. package/dist/components/date-time-picker/RuiDateTimePickerMenu.js.map +1 -1
  33. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue_vue_type_script_setup_true_lang.js +1 -1
  34. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  35. package/dist/components/date-time-picker/RuiTimezoneSelect.js.map +1 -1
  36. package/dist/components/date-time-picker/RuiTimezoneSelect.vue.d.ts +4 -0
  37. package/dist/components/date-time-picker/RuiTimezoneSelect.vue_vue_type_script_setup_true_lang.js +3 -2
  38. package/dist/components/date-time-picker/RuiTimezoneSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  39. package/dist/components/forms/auto-complete/RuiAutoComplete.js.map +1 -1
  40. package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js +6 -2
  41. package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  42. package/dist/components/forms/auto-complete/RuiAutoCompleteSelection.js.map +1 -1
  43. package/dist/components/forms/auto-complete/RuiAutoCompleteSelection.vue_vue_type_script_setup_true_lang.js +9 -6
  44. package/dist/components/forms/auto-complete/RuiAutoCompleteSelection.vue_vue_type_script_setup_true_lang.js.map +1 -1
  45. package/dist/components/forms/auto-complete/auto-complete-props.d.ts +4 -0
  46. package/dist/components/forms/category-picker/RuiCategoryPicker.js.map +1 -1
  47. package/dist/components/forms/category-picker/RuiCategoryPicker.vue.d.ts +4 -1
  48. package/dist/components/forms/category-picker/RuiCategoryPicker.vue_vue_type_script_setup_true_lang.js +7 -4
  49. package/dist/components/forms/category-picker/RuiCategoryPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  50. package/dist/components/forms/check-control-styles.d.ts +27 -0
  51. package/dist/components/forms/check-control-styles.js +26 -1
  52. package/dist/components/forms/check-control-styles.js.map +1 -1
  53. package/dist/components/forms/checkbox/RuiCheckbox.js.map +1 -1
  54. package/dist/components/forms/checkbox/RuiCheckbox.vue.d.ts +6 -0
  55. package/dist/components/forms/checkbox/RuiCheckbox.vue_vue_type_script_setup_true_lang.js +14 -4
  56. package/dist/components/forms/checkbox/RuiCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  57. package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.js.map +1 -1
  58. package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.vue.d.ts +4 -0
  59. package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.vue_vue_type_script_setup_true_lang.js +7 -2
  60. package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  61. package/dist/components/forms/field-defaults/RuiFieldDefaults.js.map +1 -1
  62. package/dist/components/forms/field-defaults/RuiFieldDefaults.vue.d.ts +3 -0
  63. package/dist/components/forms/field-defaults/RuiFieldDefaults.vue_vue_type_script_setup_true_lang.js +8 -2
  64. package/dist/components/forms/field-defaults/RuiFieldDefaults.vue_vue_type_script_setup_true_lang.js.map +1 -1
  65. package/dist/components/forms/file-upload/RuiFileUpload.js.map +1 -1
  66. package/dist/components/forms/file-upload/RuiFileUpload.vue.d.ts +4 -1
  67. package/dist/components/forms/file-upload/RuiFileUpload.vue_vue_type_script_setup_true_lang.js +10 -3
  68. package/dist/components/forms/file-upload/RuiFileUpload.vue_vue_type_script_setup_true_lang.js.map +1 -1
  69. package/dist/components/forms/radio-button/radio/RuiRadio.js.map +1 -1
  70. package/dist/components/forms/radio-button/radio/RuiRadio.vue.d.ts +6 -0
  71. package/dist/components/forms/radio-button/radio/RuiRadio.vue_vue_type_script_setup_true_lang.js +14 -3
  72. package/dist/components/forms/radio-button/radio/RuiRadio.vue_vue_type_script_setup_true_lang.js.map +1 -1
  73. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.js.map +1 -1
  74. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.d.ts +4 -0
  75. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue_vue_type_script_setup_true_lang.js +7 -2
  76. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  77. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.js.map +1 -1
  78. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue_vue_type_script_setup_true_lang.js +3 -2
  79. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  80. package/dist/components/forms/select/RuiMenuSelect.js.map +1 -1
  81. package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +4 -0
  82. package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js +6 -2
  83. package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  84. package/dist/components/forms/slider/RuiSlider.js.map +1 -1
  85. package/dist/components/forms/slider/RuiSlider.vue.d.ts +4 -0
  86. package/dist/components/forms/slider/RuiSlider.vue_vue_type_script_setup_true_lang.js +6 -3
  87. package/dist/components/forms/slider/RuiSlider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  88. package/dist/components/forms/switch/RuiSwitch.js.map +1 -1
  89. package/dist/components/forms/switch/RuiSwitch.vue.d.ts +6 -0
  90. package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js +25 -5
  91. package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  92. package/dist/components/forms/text-area/RuiTextArea.js.map +1 -1
  93. package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +4 -0
  94. package/dist/components/forms/text-area/RuiTextArea.vue_vue_type_script_setup_true_lang.js +6 -4
  95. package/dist/components/forms/text-area/RuiTextArea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  96. package/dist/components/forms/text-area/text-area-styles.d.ts +0 -1
  97. package/dist/components/forms/text-area/text-area-styles.js +0 -1
  98. package/dist/components/forms/text-area/text-area-styles.js.map +1 -1
  99. package/dist/components/forms/text-field/RuiTextField.js.map +1 -1
  100. package/dist/components/forms/text-field/RuiTextField.vue.d.ts +6 -2
  101. package/dist/components/forms/text-field/RuiTextField.vue_vue_type_script_setup_true_lang.js +6 -4
  102. package/dist/components/forms/text-field/RuiTextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  103. package/dist/components/forms/text-field/text-field-styles.d.ts +0 -1
  104. package/dist/components/forms/text-field/text-field-styles.js +0 -1
  105. package/dist/components/forms/text-field/text-field-styles.js.map +1 -1
  106. package/dist/components/helpers/RuiFormTextDetail.js.map +1 -1
  107. package/dist/components/helpers/RuiFormTextDetail.vue.d.ts +14 -0
  108. package/dist/components/helpers/RuiFormTextDetail.vue_vue_type_script_setup_true_lang.js +41 -11
  109. package/dist/components/helpers/RuiFormTextDetail.vue_vue_type_script_setup_true_lang.js.map +1 -1
  110. package/dist/components/loaders/RuiSkeletonBase.js.map +1 -1
  111. package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js.map +1 -1
  112. package/dist/components/overlays/menu/RuiMenu.js.map +1 -1
  113. package/dist/components/overlays/menu/RuiMenu.vue.d.ts +3 -0
  114. package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js +9 -1
  115. package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  116. package/dist/components/tables/RuiDataTable.js.map +1 -1
  117. package/dist/components/tables/RuiDataTable.vue.d.ts +9 -0
  118. package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js +19 -7
  119. package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  120. package/dist/components/tables/RuiExpandButton.js.map +1 -1
  121. package/dist/components/tables/RuiExpandButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  122. package/dist/components/tables/RuiTableHead.js.map +1 -1
  123. package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js +1 -1
  124. package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js.map +1 -1
  125. package/dist/components/tables/RuiTablePagination.js.map +1 -1
  126. package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js +3 -3
  127. package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  128. package/dist/components/tables/data-table/RuiDataTableAppendRow.js.map +1 -1
  129. package/dist/components/tables/data-table/RuiDataTableAppendRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  130. package/dist/components/tables/data-table/RuiDataTableBody.js.map +1 -1
  131. package/dist/components/tables/data-table/RuiDataTableBody.vue_vue_type_script_setup_true_lang.js +4 -3
  132. package/dist/components/tables/data-table/RuiDataTableBody.vue_vue_type_script_setup_true_lang.js.map +1 -1
  133. package/dist/components/tables/data-table/RuiDataTableRow.js.map +1 -1
  134. package/dist/components/tables/data-table/RuiDataTableRow.vue_vue_type_script_setup_true_lang.js +4 -4
  135. package/dist/components/tables/data-table/RuiDataTableRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  136. package/dist/components/tables/data-table-styles.d.ts +6 -0
  137. package/dist/components/tables/data-table-styles.js +15 -7
  138. package/dist/components/tables/data-table-styles.js.map +1 -1
  139. package/dist/components/tabs/tab-items/RuiTabItems.js.map +1 -1
  140. package/dist/components/tabs/tab-items/RuiTabItems.vue_vue_type_script_setup_true_lang.js +9 -2
  141. package/dist/components/tabs/tab-items/RuiTabItems.vue_vue_type_script_setup_true_lang.js.map +1 -1
  142. package/dist/composables/clip-while-resizing.d.ts +15 -0
  143. package/dist/composables/clip-while-resizing.js +46 -0
  144. package/dist/composables/clip-while-resizing.js.map +1 -0
  145. package/dist/composables/defaults/field.d.ts +19 -3
  146. package/dist/composables/defaults/field.js +32 -6
  147. package/dist/composables/defaults/field.js.map +1 -1
  148. package/dist/composables/sticky-blocker.d.ts +20 -0
  149. package/dist/composables/sticky-blocker.js +62 -0
  150. package/dist/composables/sticky-blocker.js.map +1 -0
  151. package/dist/composables/tables/data-table/page-scroll.js +11 -1
  152. package/dist/composables/tables/data-table/page-scroll.js.map +1 -1
  153. package/dist/index.d.ts +6 -2
  154. package/dist/index.js.map +1 -1
  155. package/dist/style.css +352 -11
  156. package/dist/utils/development.d.ts +6 -0
  157. package/dist/utils/development.js +17 -0
  158. package/dist/utils/development.js.map +1 -0
  159. package/dist/utils/form-text-detail.d.ts +15 -0
  160. package/dist/utils/form-text-detail.js +11 -1
  161. package/dist/utils/form-text-detail.js.map +1 -1
  162. package/dist/web-types.json +242 -3
  163. package/package.json +1 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { App } from 'vue';\nimport type { InitThemeOptions } from '@/types/theme';\nimport { createFieldDefaults, type FieldOptions, FieldSymbol } from '@/composables/defaults/field';\nimport { type LogoOptions, LogoSymbol } from '@/composables/defaults/logo';\nimport {\n createTableDefaults,\n type TableOptions,\n TableSymbol,\n} from '@/composables/defaults/table';\nimport { createIconDefaults, IconsSymbol } from '@/composables/icons';\nimport { useRotkiTheme } from '@/composables/theme';\nimport { RUI_I18N_INJECTION_KEY } from '@/composables/use-rui-i18n';\nimport { StepperOrientation, StepperState, type StepperStep } from '@/types/stepper';\nimport '@/style.css';\n\nexport * from '@/components';\n\nexport { activatorHandlers, type ActivatorHandlers } from '@/components/overlays/menu/activator-handlers';\n\nexport * from '@/composables';\n\nexport { type FieldOptions, type LabelPlacement, provideFieldDefaults } from '@/composables/defaults/field';\n\nexport type { LogoOptions, LogoResolver } from '@/composables/defaults/logo';\n\nexport { contextColors, type ContextColorsType } from '@/consts/colors';\n\nexport { translationKeys } from '@/i18n/keys';\n\nexport * from '@/icons';\n\nexport { StepperOrientation, StepperState, type StepperStep };\n\nexport type { VueClassValue } from '@/types/class-value';\n\nexport {\n type InitThemeOptions,\n type ThemeConfig,\n type ThemeContent,\n type ThemeData,\n ThemeMode,\n} from '@/types/theme';\n\nexport { createBlockie } from '@/utils/blockie';\n\nexport { cn, tv } from '@/utils/tv';\n\nexport type { VariantProps } from 'tailwind-variants';\n\nexport interface RuiOptions {\n theme?: InitThemeOptions;\n defaults?: {\n table?: Partial<TableOptions>;\n /** `labelPlacement` for every text field, text area, select and picker; `top` when unset. */\n field?: Partial<FieldOptions>;\n };\n /**\n * Where `RuiLogo` gets the image for its `logo` prop. Without it every\n * `RuiLogo` shows the bundled logo, and the library makes no network request.\n */\n logo?: LogoOptions;\n}\n\nexport function createRui(options: RuiOptions = {}) {\n const { theme, defaults: defaultOptions, logo } = options;\n\n const defaults = Object.freeze({\n icons: createIconDefaults({\n registeredIcons: theme?.icons,\n }),\n table: createTableDefaults(defaultOptions?.table),\n field: createFieldDefaults(defaultOptions?.field),\n });\n\n const install = (app: App) => {\n useRotkiTheme().init({ ...theme });\n\n app.provide(TableSymbol, defaults.table);\n app.provide(IconsSymbol, defaults.icons);\n app.provide(FieldSymbol, defaults.field);\n\n if (logo)\n app.provide(LogoSymbol, logo);\n };\n\n return {\n defaults,\n install,\n };\n}\n\nexport function createRuiI8nPlugin(i18nInstance: any) {\n if (!i18nInstance || typeof i18nInstance !== 'object') {\n throw new Error('i18nInstance must be an object');\n }\n\n if (!i18nInstance.global || typeof i18nInstance.global !== 'object') {\n throw new Error('i18nInstance must have a global property');\n }\n\n if (!i18nInstance.global.t || typeof i18nInstance.global.t !== 'function') {\n throw new Error('i18nInstance.global.t must be a function');\n }\n\n if (!i18nInstance.global.te || typeof i18nInstance.global.te !== 'function') {\n throw new Error('i18nInstance.global.te must be a function');\n }\n\n return {\n install: (app: App) => {\n app.provide(RUI_I18N_INJECTION_KEY, {\n t: i18nInstance.global.t.bind(i18nInstance.global),\n te: i18nInstance.global.te.bind(i18nInstance.global),\n });\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DA,SAAgB,UAAU,UAAsB,CAAC,GAAG;CAClD,MAAM,EAAE,OAAO,UAAU,gBAAgB,SAAS;CAElD,MAAM,WAAW,OAAO,OAAO;EAC7B,OAAO,mBAAmB,EACxB,iBAAiB,OAAO,MAC1B,CAAC;EACD,OAAO,oBAAoB,gBAAgB,KAAK;EAChD,OAAO,oBAAoB,gBAAgB,KAAK;CAClD,CAAC;CAED,MAAM,WAAW,QAAa;EAC5B,cAAc,CAAC,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC;EAEjC,IAAI,QAAQ,aAAa,SAAS,KAAK;EACvC,IAAI,QAAQ,aAAa,SAAS,KAAK;EACvC,IAAI,QAAQ,aAAa,SAAS,KAAK;EAEvC,IAAI,MACF,IAAI,QAAQ,YAAY,IAAI;CAChC;CAEA,OAAO;EACL;EACA;CACF;AACF;AAEA,SAAgB,mBAAmB,cAAmB;CACpD,IAAI,CAAC,gBAAgB,OAAO,iBAAiB,UAC3C,MAAM,IAAI,MAAM,gCAAgC;CAGlD,IAAI,CAAC,aAAa,UAAU,OAAO,aAAa,WAAW,UACzD,MAAM,IAAI,MAAM,0CAA0C;CAG5D,IAAI,CAAC,aAAa,OAAO,KAAK,OAAO,aAAa,OAAO,MAAM,YAC7D,MAAM,IAAI,MAAM,0CAA0C;CAG5D,IAAI,CAAC,aAAa,OAAO,MAAM,OAAO,aAAa,OAAO,OAAO,YAC/D,MAAM,IAAI,MAAM,2CAA2C;CAG7D,OAAO,EACL,UAAU,QAAa;EACrB,IAAI,QAAQ,wBAAwB;GAClC,GAAG,aAAa,OAAO,EAAE,KAAK,aAAa,MAAM;GACjD,IAAI,aAAa,OAAO,GAAG,KAAK,aAAa,MAAM;EACrD,CAAC;CACH,EACF;AACF"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { App } from 'vue';\nimport type { InitThemeOptions } from '@/types/theme';\nimport { createFieldDefaults, type FieldOptions, FieldSymbol } from '@/composables/defaults/field';\nimport { type LogoOptions, LogoSymbol } from '@/composables/defaults/logo';\nimport {\n createTableDefaults,\n type TableOptions,\n TableSymbol,\n} from '@/composables/defaults/table';\nimport { createIconDefaults, IconsSymbol } from '@/composables/icons';\nimport { useRotkiTheme } from '@/composables/theme';\nimport { RUI_I18N_INJECTION_KEY } from '@/composables/use-rui-i18n';\nimport { StepperOrientation, StepperState, type StepperStep } from '@/types/stepper';\nimport '@/style.css';\n\nexport * from '@/components';\n\nexport { activatorHandlers, type ActivatorHandlers } from '@/components/overlays/menu/activator-handlers';\n\nexport * from '@/composables';\n\nexport { type FieldOptions, type FieldScopeOptions, type LabelPlacement, provideFieldDefaults } from '@/composables/defaults/field';\n\nexport type { LogoOptions, LogoResolver } from '@/composables/defaults/logo';\n\nexport { contextColors, type ContextColorsType } from '@/consts/colors';\n\nexport { translationKeys } from '@/i18n/keys';\n\nexport * from '@/icons';\n\nexport { StepperOrientation, StepperState, type StepperStep };\n\nexport type { VueClassValue } from '@/types/class-value';\n\nexport {\n type InitThemeOptions,\n type ThemeConfig,\n type ThemeContent,\n type ThemeData,\n ThemeMode,\n} from '@/types/theme';\n\nexport { createBlockie } from '@/utils/blockie';\n\nexport type { FormDetails } from '@/utils/form-text-detail';\n\nexport { cn, tv } from '@/utils/tv';\n\nexport type { VariantProps } from 'tailwind-variants';\n\nexport interface RuiOptions {\n theme?: InitThemeOptions;\n defaults?: {\n table?: Partial<TableOptions>;\n /**\n * `labelPlacement` for every text field, text area, select and picker (`top` when unset),\n * and `details` for every form control (`reserve` when unset).\n */\n field?: Partial<FieldOptions>;\n };\n /**\n * Where `RuiLogo` gets the image for its `logo` prop. Without it every\n * `RuiLogo` shows the bundled logo, and the library makes no network request.\n */\n logo?: LogoOptions;\n}\n\nexport function createRui(options: RuiOptions = {}) {\n const { theme, defaults: defaultOptions, logo } = options;\n\n const defaults = Object.freeze({\n icons: createIconDefaults({\n registeredIcons: theme?.icons,\n }),\n table: createTableDefaults(defaultOptions?.table),\n field: createFieldDefaults(defaultOptions?.field),\n });\n\n const install = (app: App) => {\n useRotkiTheme().init({ ...theme });\n\n app.provide(TableSymbol, defaults.table);\n app.provide(IconsSymbol, defaults.icons);\n app.provide(FieldSymbol, defaults.field);\n\n if (logo)\n app.provide(LogoSymbol, logo);\n };\n\n return {\n defaults,\n install,\n };\n}\n\nexport function createRuiI8nPlugin(i18nInstance: any) {\n if (!i18nInstance || typeof i18nInstance !== 'object') {\n throw new Error('i18nInstance must be an object');\n }\n\n if (!i18nInstance.global || typeof i18nInstance.global !== 'object') {\n throw new Error('i18nInstance must have a global property');\n }\n\n if (!i18nInstance.global.t || typeof i18nInstance.global.t !== 'function') {\n throw new Error('i18nInstance.global.t must be a function');\n }\n\n if (!i18nInstance.global.te || typeof i18nInstance.global.te !== 'function') {\n throw new Error('i18nInstance.global.te must be a function');\n }\n\n return {\n install: (app: App) => {\n app.provide(RUI_I18N_INJECTION_KEY, {\n t: i18nInstance.global.t.bind(i18nInstance.global),\n te: i18nInstance.global.te.bind(i18nInstance.global),\n });\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEA,SAAgB,UAAU,UAAsB,CAAC,GAAG;CAClD,MAAM,EAAE,OAAO,UAAU,gBAAgB,SAAS;CAElD,MAAM,WAAW,OAAO,OAAO;EAC7B,OAAO,mBAAmB,EACxB,iBAAiB,OAAO,MAC1B,CAAC;EACD,OAAO,oBAAoB,gBAAgB,KAAK;EAChD,OAAO,oBAAoB,gBAAgB,KAAK;CAClD,CAAC;CAED,MAAM,WAAW,QAAa;EAC5B,cAAc,CAAC,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC;EAEjC,IAAI,QAAQ,aAAa,SAAS,KAAK;EACvC,IAAI,QAAQ,aAAa,SAAS,KAAK;EACvC,IAAI,QAAQ,aAAa,SAAS,KAAK;EAEvC,IAAI,MACF,IAAI,QAAQ,YAAY,IAAI;CAChC;CAEA,OAAO;EACL;EACA;CACF;AACF;AAEA,SAAgB,mBAAmB,cAAmB;CACpD,IAAI,CAAC,gBAAgB,OAAO,iBAAiB,UAC3C,MAAM,IAAI,MAAM,gCAAgC;CAGlD,IAAI,CAAC,aAAa,UAAU,OAAO,aAAa,WAAW,UACzD,MAAM,IAAI,MAAM,0CAA0C;CAG5D,IAAI,CAAC,aAAa,OAAO,KAAK,OAAO,aAAa,OAAO,MAAM,YAC7D,MAAM,IAAI,MAAM,0CAA0C;CAG5D,IAAI,CAAC,aAAa,OAAO,MAAM,OAAO,aAAa,OAAO,OAAO,YAC/D,MAAM,IAAI,MAAM,2CAA2C;CAG7D,OAAO,EACL,UAAU,QAAa;EACrB,IAAI,QAAQ,wBAAwB;GAClC,GAAG,aAAa,OAAO,EAAE,KAAK,aAAa,MAAM;GACjD,IAAI,aAAa,OAAO,GAAG,KAAK,aAAa,MAAM;EACrD,CAAC;CACH,EACF;AACF"}
package/dist/style.css CHANGED
@@ -1088,6 +1088,18 @@
1088
1088
  margin-bottom: calc(var(--spacing) * -2);
1089
1089
  }
1090
1090
 
1091
+ .-mb-\[0\.4375rem\] {
1092
+ margin-bottom: -.4375rem;
1093
+ }
1094
+
1095
+ .-mb-\[0\.5625rem\] {
1096
+ margin-bottom: -.5625rem;
1097
+ }
1098
+
1099
+ .-mb-\[0\.6875rem\] {
1100
+ margin-bottom: -.6875rem;
1101
+ }
1102
+
1091
1103
  .mb-0 {
1092
1104
  margin-bottom: 0;
1093
1105
  }
@@ -1153,6 +1165,13 @@
1153
1165
  scrollbar-width: none;
1154
1166
  }
1155
1167
 
1168
+ .line-clamp-2 {
1169
+ -webkit-line-clamp: 2;
1170
+ -webkit-box-orient: vertical;
1171
+ display: -webkit-box;
1172
+ overflow: hidden;
1173
+ }
1174
+
1156
1175
  .\!hidden {
1157
1176
  display: none !important;
1158
1177
  }
@@ -1957,6 +1976,10 @@
1957
1976
  gap: calc(var(--spacing) * 6);
1958
1977
  }
1959
1978
 
1979
+ .gap-x-1 {
1980
+ column-gap: var(--spacing);
1981
+ }
1982
+
1960
1983
  .gap-x-1\.5 {
1961
1984
  column-gap: calc(var(--spacing) * 1.5);
1962
1985
  }
@@ -3102,6 +3125,26 @@
3102
3125
  padding-left: calc(var(--spacing) * 3) !important;
3103
3126
  }
3104
3127
 
3128
+ .pl-7\.25 {
3129
+ padding-left: calc(var(--spacing) * 7.25);
3130
+ }
3131
+
3132
+ .pl-8\.25 {
3133
+ padding-left: calc(var(--spacing) * 8.25);
3134
+ }
3135
+
3136
+ .pl-9\.25 {
3137
+ padding-left: calc(var(--spacing) * 9.25);
3138
+ }
3139
+
3140
+ .pl-11\.75 {
3141
+ padding-left: calc(var(--spacing) * 11.75);
3142
+ }
3143
+
3144
+ .pl-13\.25 {
3145
+ padding-left: calc(var(--spacing) * 13.25);
3146
+ }
3147
+
3105
3148
  .text-center {
3106
3149
  text-align: center;
3107
3150
  }
@@ -3114,6 +3157,10 @@
3114
3157
  text-align: right;
3115
3158
  }
3116
3159
 
3160
+ .align-baseline {
3161
+ vertical-align: baseline;
3162
+ }
3163
+
3117
3164
  .align-middle {
3118
3165
  vertical-align: middle;
3119
3166
  }
@@ -3249,6 +3296,11 @@
3249
3296
  line-height: calc(var(--spacing) * 7);
3250
3297
  }
3251
3298
 
3299
+ .text-\[0\.6875rem\]\/4 {
3300
+ font-size: .6875rem;
3301
+ line-height: calc(var(--spacing) * 4);
3302
+ }
3303
+
3252
3304
  .text-\[0\.8125rem\]\/5 {
3253
3305
  font-size: .8125rem;
3254
3306
  line-height: calc(var(--spacing) * 5);
@@ -3320,6 +3372,10 @@
3320
3372
  font-size: 1rem;
3321
3373
  }
3322
3374
 
3375
+ .text-\[length\:inherit\] {
3376
+ font-size: inherit;
3377
+ }
3378
+
3323
3379
  .leading-3 {
3324
3380
  --tw-leading: calc(var(--spacing) * 3);
3325
3381
  line-height: calc(var(--spacing) * 3);
@@ -3340,6 +3396,11 @@
3340
3396
  line-height: calc(var(--spacing) * 6);
3341
3397
  }
3342
3398
 
3399
+ .leading-\[inherit\] {
3400
+ --tw-leading: inherit;
3401
+ line-height: inherit;
3402
+ }
3403
+
3343
3404
  .leading-none {
3344
3405
  --tw-leading: 1;
3345
3406
  line-height: 1;
@@ -3548,6 +3609,10 @@
3548
3609
  text-decoration-line: underline;
3549
3610
  }
3550
3611
 
3612
+ .underline-offset-2 {
3613
+ text-underline-offset: 2px;
3614
+ }
3615
+
3551
3616
  .opacity-0 {
3552
3617
  opacity: 0;
3553
3618
  }
@@ -4091,6 +4156,10 @@
4091
4156
  --rui-icon-size: 1.375rem !important;
4092
4157
  }
4093
4158
 
4159
+ .\!\[--rui-icon-size\:1em\] {
4160
+ --rui-icon-size: 1em !important;
4161
+ }
4162
+
4094
4163
  .\!\[--rui-icon-size\:100\%\] {
4095
4164
  --rui-icon-size: 100% !important;
4096
4165
  }
@@ -4135,6 +4204,38 @@
4135
4204
  --rui-alert: var(--rui-warning-main);
4136
4205
  }
4137
4206
 
4207
+ .\[--rui-btn-collapsed-icon\:0\.875rem\] {
4208
+ --rui-btn-collapsed-icon: .875rem;
4209
+ }
4210
+
4211
+ .\[--rui-btn-collapsed-icon\:1\.5rem\] {
4212
+ --rui-btn-collapsed-icon: 1.5rem;
4213
+ }
4214
+
4215
+ .\[--rui-btn-collapsed-icon\:1\.25rem\] {
4216
+ --rui-btn-collapsed-icon: 1.25rem;
4217
+ }
4218
+
4219
+ .\[--rui-btn-collapsed-icon\:1\.75rem\] {
4220
+ --rui-btn-collapsed-icon: 1.75rem;
4221
+ }
4222
+
4223
+ .\[--rui-btn-collapsed-p\:0\.5rem\] {
4224
+ --rui-btn-collapsed-p: .5rem;
4225
+ }
4226
+
4227
+ .\[--rui-btn-collapsed-p\:0\.25rem\] {
4228
+ --rui-btn-collapsed-p: .25rem;
4229
+ }
4230
+
4231
+ .\[--rui-btn-collapsed-p\:0\.375rem\] {
4232
+ --rui-btn-collapsed-p: .375rem;
4233
+ }
4234
+
4235
+ .\[--rui-btn-collapsed-p\:0\.1875rem\] {
4236
+ --rui-btn-collapsed-p: .1875rem;
4237
+ }
4238
+
4138
4239
  .\[--rui-icon-size\:0\.75rem\] {
4139
4240
  --rui-icon-size: .75rem;
4140
4241
  }
@@ -4377,6 +4478,10 @@
4377
4478
  }
4378
4479
  }
4379
4480
 
4481
+ .hover\:bg-rui-neutral-100:hover {
4482
+ background-color: rgb(var(--rui-neutral-100));
4483
+ }
4484
+
4380
4485
  .hover\:bg-rui-neutral-200:hover {
4381
4486
  background-color: rgb(var(--rui-neutral-200));
4382
4487
  }
@@ -4385,6 +4490,16 @@
4385
4490
  background-color: rgb(var(--rui-neutral-400));
4386
4491
  }
4387
4492
 
4493
+ .hover\:bg-rui-neutral-950\/\[0\.03\]:hover {
4494
+ background-color: rgb(var(--rui-neutral-950));
4495
+ }
4496
+
4497
+ @supports (color: color-mix(in lab, red, red)) {
4498
+ .hover\:bg-rui-neutral-950\/\[0\.03\]:hover {
4499
+ background-color: color-mix(in oklab, rgb(var(--rui-neutral-950)) 3%, transparent);
4500
+ }
4501
+ }
4502
+
4388
4503
  .hover\:bg-rui-neutral-950\/\[0\.07\]:hover {
4389
4504
  background-color: rgb(var(--rui-neutral-950));
4390
4505
  }
@@ -4484,6 +4599,10 @@
4484
4599
  .not-disabled\:hover\:state-layer-pressed:not(:disabled):hover {
4485
4600
  background-image: linear-gradient(var(--rui-pressed), var(--rui-pressed));
4486
4601
  }
4602
+
4603
+ .not-disabled\:hover\:underline:not(:disabled):hover {
4604
+ text-decoration-line: underline;
4605
+ }
4487
4606
  }
4488
4607
 
4489
4608
  .focus\:z-1:focus {
@@ -4647,6 +4766,10 @@
4647
4766
  }
4648
4767
  }
4649
4768
 
4769
+ .active\:bg-transparent:active {
4770
+ background-color: #0000;
4771
+ }
4772
+
4650
4773
  .active\:state-layer-pressed:active {
4651
4774
  background-image: linear-gradient(var(--rui-pressed), var(--rui-pressed));
4652
4775
  }
@@ -4708,8 +4831,14 @@
4708
4831
  color: var(--rui-text-disabled) !important;
4709
4832
  }
4710
4833
 
4711
- .has-\[\+\[data-id\=row-append\]\:hover\]\:bg-rui-hover:has( + [data-id="row-append"]:hover) {
4712
- background-color: var(--rui-hover);
4834
+ .has-\[\+\[data-id\=row-append\]\:hover\]\:bg-rui-neutral-950\/\[0\.03\]:has( + [data-id="row-append"]:hover) {
4835
+ background-color: rgb(var(--rui-neutral-950));
4836
+ }
4837
+
4838
+ @supports (color: color-mix(in lab, red, red)) {
4839
+ .has-\[\+\[data-id\=row-append\]\:hover\]\:bg-rui-neutral-950\/\[0\.03\]:has( + [data-id="row-append"]:hover) {
4840
+ background-color: color-mix(in oklab, rgb(var(--rui-neutral-950)) 3%, transparent);
4841
+ }
4713
4842
  }
4714
4843
 
4715
4844
  .data-\[active\]\:bg-rui-surface[data-active] {
@@ -4738,6 +4867,136 @@
4738
4867
  }
4739
4868
  }
4740
4869
 
4870
+ @media not all and (min-width: 96rem) {
4871
+ .max-2xl\:sr-only {
4872
+ clip-path: inset(50%);
4873
+ white-space: nowrap;
4874
+ border-width: 0;
4875
+ width: 1px;
4876
+ height: 1px;
4877
+ margin: -1px;
4878
+ padding: 0;
4879
+ position: absolute;
4880
+ overflow: hidden;
4881
+ }
4882
+
4883
+ .max-2xl\:gap-x-0 {
4884
+ column-gap: 0;
4885
+ }
4886
+
4887
+ .max-2xl\:p-\(--rui-btn-collapsed-p\) {
4888
+ padding: var(--rui-btn-collapsed-p);
4889
+ }
4890
+
4891
+ .max-2xl\:\!\[--rui-icon-size\:var\(--rui-btn-collapsed-icon\)\] {
4892
+ --rui-icon-size: var(--rui-btn-collapsed-icon) !important;
4893
+ }
4894
+ }
4895
+
4896
+ @media not all and (min-width: 80rem) {
4897
+ .max-xl\:sr-only {
4898
+ clip-path: inset(50%);
4899
+ white-space: nowrap;
4900
+ border-width: 0;
4901
+ width: 1px;
4902
+ height: 1px;
4903
+ margin: -1px;
4904
+ padding: 0;
4905
+ position: absolute;
4906
+ overflow: hidden;
4907
+ }
4908
+
4909
+ .max-xl\:gap-x-0 {
4910
+ column-gap: 0;
4911
+ }
4912
+
4913
+ .max-xl\:p-\(--rui-btn-collapsed-p\) {
4914
+ padding: var(--rui-btn-collapsed-p);
4915
+ }
4916
+
4917
+ .max-xl\:\!\[--rui-icon-size\:var\(--rui-btn-collapsed-icon\)\] {
4918
+ --rui-icon-size: var(--rui-btn-collapsed-icon) !important;
4919
+ }
4920
+ }
4921
+
4922
+ @media not all and (min-width: 64rem) {
4923
+ .max-lg\:sr-only {
4924
+ clip-path: inset(50%);
4925
+ white-space: nowrap;
4926
+ border-width: 0;
4927
+ width: 1px;
4928
+ height: 1px;
4929
+ margin: -1px;
4930
+ padding: 0;
4931
+ position: absolute;
4932
+ overflow: hidden;
4933
+ }
4934
+
4935
+ .max-lg\:gap-x-0 {
4936
+ column-gap: 0;
4937
+ }
4938
+
4939
+ .max-lg\:p-\(--rui-btn-collapsed-p\) {
4940
+ padding: var(--rui-btn-collapsed-p);
4941
+ }
4942
+
4943
+ .max-lg\:\!\[--rui-icon-size\:var\(--rui-btn-collapsed-icon\)\] {
4944
+ --rui-icon-size: var(--rui-btn-collapsed-icon) !important;
4945
+ }
4946
+ }
4947
+
4948
+ @media not all and (min-width: 48rem) {
4949
+ .max-md\:sr-only {
4950
+ clip-path: inset(50%);
4951
+ white-space: nowrap;
4952
+ border-width: 0;
4953
+ width: 1px;
4954
+ height: 1px;
4955
+ margin: -1px;
4956
+ padding: 0;
4957
+ position: absolute;
4958
+ overflow: hidden;
4959
+ }
4960
+
4961
+ .max-md\:gap-x-0 {
4962
+ column-gap: 0;
4963
+ }
4964
+
4965
+ .max-md\:p-\(--rui-btn-collapsed-p\) {
4966
+ padding: var(--rui-btn-collapsed-p);
4967
+ }
4968
+
4969
+ .max-md\:\!\[--rui-icon-size\:var\(--rui-btn-collapsed-icon\)\] {
4970
+ --rui-icon-size: var(--rui-btn-collapsed-icon) !important;
4971
+ }
4972
+ }
4973
+
4974
+ @media not all and (min-width: 40rem) {
4975
+ .max-sm\:sr-only {
4976
+ clip-path: inset(50%);
4977
+ white-space: nowrap;
4978
+ border-width: 0;
4979
+ width: 1px;
4980
+ height: 1px;
4981
+ margin: -1px;
4982
+ padding: 0;
4983
+ position: absolute;
4984
+ overflow: hidden;
4985
+ }
4986
+
4987
+ .max-sm\:gap-x-0 {
4988
+ column-gap: 0;
4989
+ }
4990
+
4991
+ .max-sm\:p-\(--rui-btn-collapsed-p\) {
4992
+ padding: var(--rui-btn-collapsed-p);
4993
+ }
4994
+
4995
+ .max-sm\:\!\[--rui-icon-size\:var\(--rui-btn-collapsed-icon\)\] {
4996
+ --rui-icon-size: var(--rui-btn-collapsed-icon) !important;
4997
+ }
4998
+ }
4999
+
4741
5000
  @media (min-width: 64rem) {
4742
5001
  .lg\:whitespace-normal {
4743
5002
  white-space: normal;
@@ -5142,6 +5401,10 @@
5142
5401
  color: var(--rui-text-disabled);
5143
5402
  }
5144
5403
 
5404
+ .dark\:text-rui-text-secondary:is(.dark *, [data-theme="dark"] *) {
5405
+ color: var(--rui-text-secondary);
5406
+ }
5407
+
5145
5408
  .dark\:text-rui-warning:is(.dark *, [data-theme="dark"] *) {
5146
5409
  color: rgb(var(--rui-warning-main));
5147
5410
  }
@@ -5213,6 +5476,26 @@
5213
5476
  background-color: #0000;
5214
5477
  }
5215
5478
 
5479
+ .dark\:hover\:bg-white\/\[0\.04\]:is(.dark *, [data-theme="dark"] *):hover {
5480
+ background-color: #ffffff0a;
5481
+ }
5482
+
5483
+ @supports (color: color-mix(in lab, red, red)) {
5484
+ .dark\:hover\:bg-white\/\[0\.04\]:is(.dark *, [data-theme="dark"] *):hover {
5485
+ background-color: color-mix(in oklab, var(--color-white) 4%, transparent);
5486
+ }
5487
+ }
5488
+
5489
+ .dark\:hover\:bg-white\/\[0\.05\]:is(.dark *, [data-theme="dark"] *):hover {
5490
+ background-color: #ffffff0d;
5491
+ }
5492
+
5493
+ @supports (color: color-mix(in lab, red, red)) {
5494
+ .dark\:hover\:bg-white\/\[0\.05\]:is(.dark *, [data-theme="dark"] *):hover {
5495
+ background-color: color-mix(in oklab, var(--color-white) 5%, transparent);
5496
+ }
5497
+ }
5498
+
5216
5499
  .dark\:hover\:bg-white\/\[0\.09\]:is(.dark *, [data-theme="dark"] *):hover {
5217
5500
  background-color: #ffffff17;
5218
5501
  }
@@ -5272,6 +5555,10 @@
5272
5555
  }
5273
5556
  }
5274
5557
 
5558
+ .dark\:active\:bg-transparent:is(.dark *, [data-theme="dark"] *):active {
5559
+ background-color: #0000;
5560
+ }
5561
+
5275
5562
  .dark\:disabled\:\!bg-rui-neutral-800:is(.dark *, [data-theme="dark"] *):disabled {
5276
5563
  background-color: rgb(var(--rui-neutral-800)) !important;
5277
5564
  }
@@ -5288,6 +5575,16 @@
5288
5575
  --tw-inset-ring-color: var(--rui-text-disabled);
5289
5576
  }
5290
5577
 
5578
+ .dark\:has-\[\+\[data-id\=row-append\]\:hover\]\:bg-white\/\[0\.04\]:is(.dark *, [data-theme="dark"] *):has( + [data-id="row-append"]:hover) {
5579
+ background-color: #ffffff0a;
5580
+ }
5581
+
5582
+ @supports (color: color-mix(in lab, red, red)) {
5583
+ .dark\:has-\[\+\[data-id\=row-append\]\:hover\]\:bg-white\/\[0\.04\]:is(.dark *, [data-theme="dark"] *):has( + [data-id="row-append"]:hover) {
5584
+ background-color: color-mix(in oklab, var(--color-white) 4%, transparent);
5585
+ }
5586
+ }
5587
+
5291
5588
  .dark\:data-\[active\]\:bg-rui-neutral-700:is(.dark *, [data-theme="dark"] *)[data-active] {
5292
5589
  background-color: rgb(var(--rui-neutral-700));
5293
5590
  }
@@ -5550,6 +5847,10 @@
5550
5847
  background-color: rgb(var(--rui-primary-main));
5551
5848
  }
5552
5849
 
5850
+ .\[\&\>tr\]\:block > tr {
5851
+ display: block;
5852
+ }
5853
+
5553
5854
  :where(.\[\:where\(\&\)\]\:h-8) {
5554
5855
  height: calc(var(--spacing) * 8);
5555
5856
  }
@@ -5665,23 +5966,47 @@
5665
5966
  color: var(--rui-text-secondary);
5666
5967
  }
5667
5968
 
5668
- :where(.\[\:where\(\&\>tr\[data-stripe\]\)\]\:bg-rui-neutral-950\/\[0\.03\] > tr[data-stripe]) {
5969
+ :where(.\[\:where\(\&\>tr\>\*\)\]\:block > tr > *) {
5970
+ display: block;
5971
+ }
5972
+
5973
+ :where(.\[\:where\(\&\>tr\>\*\)\]\:h-9 > tr > *) {
5974
+ height: calc(var(--spacing) * 9);
5975
+ }
5976
+
5977
+ :where(.\[\:where\(\&\>tr\>\*\)\]\:h-11 > tr > *) {
5978
+ height: calc(var(--spacing) * 11);
5979
+ }
5980
+
5981
+ :where(.\[\:where\(\&\>tr\>\*\)\]\:px-4 > tr > *) {
5982
+ padding-inline: calc(var(--spacing) * 4);
5983
+ }
5984
+
5985
+ :where(.\[\:where\(\&\>tr\>\*\)\]\:py-1 > tr > *) {
5986
+ padding-block: var(--spacing);
5987
+ }
5988
+
5989
+ :where(.\[\:where\(\&\>tr\>\*\)\]\:py-2 > tr > *) {
5990
+ padding-block: calc(var(--spacing) * 2);
5991
+ }
5992
+
5993
+ :where(.\[\:where\(\&\>tr\[data-stripe\]\)\]\:bg-rui-neutral-950\/\[0\.015\] > tr[data-stripe]) {
5669
5994
  background-color: rgb(var(--rui-neutral-950));
5670
5995
  }
5671
5996
 
5672
5997
  @supports (color: color-mix(in lab, red, red)) {
5673
- :where(.\[\:where\(\&\>tr\[data-stripe\]\)\]\:bg-rui-neutral-950\/\[0\.03\] > tr[data-stripe]) {
5674
- background-color: color-mix(in oklab, rgb(var(--rui-neutral-950)) 3%, transparent);
5998
+ :where(.\[\:where\(\&\>tr\[data-stripe\]\)\]\:bg-rui-neutral-950\/\[0\.015\] > tr[data-stripe]) {
5999
+ background-color: color-mix(in oklab, rgb(var(--rui-neutral-950)) 1.5%, transparent);
5675
6000
  }
5676
6001
  }
5677
6002
 
5678
- :where(.dark\:\[\:where\(\&\>tr\[data-stripe\]\)\]\:bg-white\/\[0\.04\]:is(.dark *, [data-theme="dark"] *) > tr[data-stripe]) {
5679
- background-color: #ffffff0a;
6003
+ :where(.dark\:\[\:where\(\&\>tr\[data-stripe\]\)\]\:bg-white\/\[0\.02\]:is(.dark *, [data-theme="dark"] *) > tr[data-stripe]) {
6004
+ background-color: #ffffff05;
5680
6005
  }
5681
6006
 
5682
6007
  @supports (color: color-mix(in lab, red, red)) {
5683
- :where(.dark\:\[\:where\(\&\>tr\[data-stripe\]\)\]\:bg-white\/\[0\.04\]:is(.dark *, [data-theme="dark"] *) > tr[data-stripe]) {
5684
- background-color: color-mix(in oklab, var(--color-white) 4%, transparent);
6008
+ :where(.dark\:\[\:where\(\&\>tr\[data-stripe\]\)\]\:bg-white\/\[0\.02\]:is(.dark *, [data-theme="dark"] *) > tr[data-stripe]) {
6009
+ background-color: color-mix(in oklab, var(--color-white) 2%, transparent);
5685
6010
  }
5686
6011
  }
5687
6012
 
@@ -5769,8 +6094,24 @@
5769
6094
  }
5770
6095
  }
5771
6096
 
5772
- [data-id="row"]:hover + .\[\[data-id\=row\]\:hover\+\&\]\:bg-rui-hover {
5773
- background-color: var(--rui-hover);
6097
+ [data-id="row"]:hover + .\[\[data-id\=row\]\:hover\+\&\]\:bg-rui-neutral-950\/\[0\.03\] {
6098
+ background-color: rgb(var(--rui-neutral-950));
6099
+ }
6100
+
6101
+ @supports (color: color-mix(in lab, red, red)) {
6102
+ [data-id="row"]:hover + .\[\[data-id\=row\]\:hover\+\&\]\:bg-rui-neutral-950\/\[0\.03\] {
6103
+ background-color: color-mix(in oklab, rgb(var(--rui-neutral-950)) 3%, transparent);
6104
+ }
6105
+ }
6106
+
6107
+ [data-id="row"]:hover + .dark\:\[\[data-id\=row\]\:hover\+\&\]\:bg-white\/\[0\.04\]:is(.dark *, [data-theme="dark"] *) {
6108
+ background-color: #ffffff0a;
6109
+ }
6110
+
6111
+ @supports (color: color-mix(in lab, red, red)) {
6112
+ [data-id="row"]:hover + .dark\:\[\[data-id\=row\]\:hover\+\&\]\:bg-white\/\[0\.04\]:is(.dark *, [data-theme="dark"] *) {
6113
+ background-color: color-mix(in oklab, var(--color-white) 4%, transparent);
6114
+ }
5774
6115
  }
5775
6116
  }
5776
6117
 
@@ -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"}