@onereach/ui-components 2.71.0 → 2.71.1-beta.2217.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 (47) hide show
  1. package/dist/bundled/v2/OrSidebar-774b382d.js +462 -0
  2. package/dist/bundled/v2/components/index.js +1 -1
  3. package/dist/bundled/v2/components/or-sidebar-v3/OrSidebar.stories3.d.ts +36 -1
  4. package/dist/bundled/v2/components/or-sidebar-v3/OrSidebar.vue.d.ts +49 -4
  5. package/dist/bundled/v2/components/or-sidebar-v3/OrSidebarCollapseButton.stories3.d.ts +12 -0
  6. package/dist/bundled/v2/components/or-sidebar-v3/OrSidebarCollapseButton.vue.d.ts +53 -0
  7. package/dist/bundled/v2/components/or-sidebar-v3/index.js +13 -1
  8. package/dist/bundled/v2/components/or-sidebar-v3/styles.d.ts +8 -1
  9. package/dist/bundled/v2/index.js +2 -2
  10. package/dist/bundled/v3/OrSidebar.vue_vue_type_script_lang-8305a28b.js +354 -0
  11. package/dist/bundled/v3/components/index.js +1 -1
  12. package/dist/bundled/v3/components/or-sidebar-v3/OrSidebar.stories3.d.ts +36 -1
  13. package/dist/bundled/v3/components/or-sidebar-v3/OrSidebar.vue.d.ts +49 -4
  14. package/dist/bundled/v3/components/or-sidebar-v3/OrSidebarCollapseButton.stories3.d.ts +12 -0
  15. package/dist/bundled/v3/components/or-sidebar-v3/OrSidebarCollapseButton.vue.d.ts +53 -0
  16. package/dist/bundled/v3/components/or-sidebar-v3/index.js +15 -1
  17. package/dist/bundled/v3/components/or-sidebar-v3/styles.d.ts +8 -1
  18. package/dist/bundled/v3/index.js +25 -9
  19. package/dist/esm/v2/OrSidebar-a6ee22d1.js +459 -0
  20. package/dist/esm/v2/components/index.js +1 -1
  21. package/dist/esm/v2/components/or-sidebar-v3/OrSidebar.stories3.d.ts +36 -1
  22. package/dist/esm/v2/components/or-sidebar-v3/OrSidebar.vue.d.ts +49 -4
  23. package/dist/esm/v2/components/or-sidebar-v3/OrSidebarCollapseButton.stories3.d.ts +12 -0
  24. package/dist/esm/v2/components/or-sidebar-v3/OrSidebarCollapseButton.vue.d.ts +53 -0
  25. package/dist/esm/v2/components/or-sidebar-v3/index.js +13 -1
  26. package/dist/esm/v2/components/or-sidebar-v3/styles.d.ts +8 -1
  27. package/dist/esm/v2/index.js +1 -1
  28. package/dist/esm/v3/OrSidebar-f2150587.js +394 -0
  29. package/dist/esm/v3/components/index.js +1 -1
  30. package/dist/esm/v3/components/or-sidebar-v3/OrSidebar.stories3.d.ts +36 -1
  31. package/dist/esm/v3/components/or-sidebar-v3/OrSidebar.vue.d.ts +49 -4
  32. package/dist/esm/v3/components/or-sidebar-v3/OrSidebarCollapseButton.stories3.d.ts +12 -0
  33. package/dist/esm/v3/components/or-sidebar-v3/OrSidebarCollapseButton.vue.d.ts +53 -0
  34. package/dist/esm/v3/components/or-sidebar-v3/index.js +12 -1
  35. package/dist/esm/v3/components/or-sidebar-v3/styles.d.ts +8 -1
  36. package/dist/esm/v3/index.js +1 -1
  37. package/package.json +2 -3
  38. package/src/components/or-sidebar-v3/OrSidebar.docs.mdx +6 -0
  39. package/src/components/or-sidebar-v3/OrSidebar.stories3.ts +230 -10
  40. package/src/components/or-sidebar-v3/OrSidebar.vue +121 -22
  41. package/src/components/or-sidebar-v3/OrSidebarCollapseButton.stories3.ts +48 -0
  42. package/src/components/or-sidebar-v3/OrSidebarCollapseButton.vue +74 -0
  43. package/src/components/or-sidebar-v3/styles.ts +161 -9
  44. package/dist/bundled/v2/OrSidebar-c95ef614.js +0 -230
  45. package/dist/bundled/v3/OrSidebar.vue_vue_type_script_lang-ce0b152c.js +0 -181
  46. package/dist/esm/v2/OrSidebar-fabc7bc9.js +0 -228
  47. package/dist/esm/v3/OrSidebar-a62972f5.js +0 -206
@@ -2,28 +2,55 @@
2
2
  <aside
3
3
  ref="root"
4
4
  :class="rootStyles"
5
- :style="sidebarStyle"
6
5
  >
7
6
  <div
8
- ref="resizeBar"
9
- :class="resizeStyles"
10
- />
11
- <div :class="mainStyles">
7
+ v-if="side === 'right' && isShowingToolbar"
8
+ :class="toolbarStyles"
9
+ >
10
+ <slot name="toolbar" />
11
+ </div>
12
+ <div
13
+ :class="sidebarStyles"
14
+ :style="sidebarStyle"
15
+ >
12
16
  <div
13
- v-if="$slots.header"
14
- :class="headerStyles"
17
+ v-if="draggable && !isCollapsed"
18
+ ref="resizeBar"
19
+ :class="resizeStyles"
20
+ />
21
+ <or-sidebar-collapse-button
22
+ v-if="collapsible"
23
+ v-model="isCollapsed"
24
+ :class="collapsibleButtonStyles"
25
+ :side="side"
26
+ />
27
+ <div
28
+ v-show="!isCollapsed"
29
+ :class="mainStyles"
15
30
  >
16
- <slot name="header" />
31
+ <div
32
+ v-if="$slots.header"
33
+ :class="headerStyles"
34
+ >
35
+ <slot name="header" />
36
+ </div>
37
+ <div :class="contentStyles">
38
+ <slot />
39
+ </div>
17
40
  </div>
18
- <div :class="contentStyles">
19
- <slot />
41
+ <div
42
+ v-if="$slots.footer"
43
+ v-show="!isCollapsed"
44
+ :class="footerStyles"
45
+ >
46
+ <slot name="footer" />
20
47
  </div>
21
48
  </div>
22
49
  <div
23
- v-if="$slots.footer"
24
- :class="footerStyles"
50
+ v-if="side === 'left' && isShowingToolbar"
51
+ :class="toolbarStyles"
25
52
  >
26
- <slot name="footer" />
53
+ <slot name="toolbar" />
27
54
  </div>
28
55
  </aside>
29
56
  </template>
@@ -31,34 +58,47 @@
31
58
  <script lang="ts">
32
59
  import { useDraggable, useElementBounding } from '@vueuse/core';
33
60
  import _ from 'lodash';
34
- import { computed, defineComponent, PropType, ref, watch } from 'vue-demi';
61
+ import { computed, defineComponent, PropType, ref, watch, useSlots } from 'vue-demi';
35
62
  import { OrSidebarPlacement } from './props';
36
63
  import {
37
64
  SidebarRoot,
38
- SidebarRootSides,
65
+ SidebarBar,
66
+ SidebarToolbar,
67
+ SidebarSides,
68
+ SidebarToolbarSides,
39
69
  SidebarResize,
40
70
  SidebarResizeSides,
71
+ SidebarCollapseButton,
72
+ SidebarCollapseButtonSides,
41
73
  SidebarResizingSides,
42
74
  SidebarMain,
43
75
  SidebarHeader,
44
76
  SidebarContent,
45
77
  SidebarFooter,
46
78
  } from './styles';
79
+ import OrSidebarCollapseButton from './OrSidebarCollapseButton.vue';
47
80
 
48
81
  export default defineComponent({
49
82
  name: 'OrSidebar',
50
83
 
84
+ components: {
85
+ OrSidebarCollapseButton,
86
+ },
87
+
51
88
  props: {
52
89
  width: {
53
90
  type: Number,
54
- required: false,
55
- default: 0,
91
+ default: 320,
56
92
  validator: (value?: any) => _.isNumber(value) && value >= 0,
57
93
  },
58
94
  minimumWidth: {
59
95
  type: Number,
60
- required: false,
61
- default: 350,
96
+ default: 256,
97
+ validator: (value?: any) => _.isNumber(value) && value >= 0,
98
+ },
99
+ maximumWidth: {
100
+ type: Number,
101
+ default: 384,
62
102
  validator: (value?: any) => _.isNumber(value) && value >= 0,
63
103
  },
64
104
  /**
@@ -73,10 +113,24 @@ export default defineComponent({
73
113
  default: OrSidebarPlacement.right,
74
114
  validator: (value?: any) => _.includes(_.values(OrSidebarPlacement), value),
75
115
  },
116
+ draggable: {
117
+ type: Boolean,
118
+ default: true,
119
+ },
120
+ collapsible: {
121
+ type: Boolean,
122
+ default: false,
123
+ },
76
124
  },
77
125
 
78
126
  emits: ['change:width'],
79
127
 
128
+ expose: [
129
+ 'root',
130
+ 'open',
131
+ 'close',
132
+ ],
133
+
80
134
  setup(props, { emit }) {
81
135
  // Refs
82
136
  const root = ref<HTMLElement>();
@@ -84,20 +138,36 @@ export default defineComponent({
84
138
 
85
139
  const parentContainer = computed(() => root.value?.parentElement);
86
140
 
141
+ // Slots
142
+ const { toolbar: toolbarSlot } = useSlots();
143
+
87
144
  // State
88
145
  const startPositionX = ref(0);
89
146
  const isResizing = ref(false);
147
+ const isCollapsed = ref(false);
148
+ const maximumWidth = ref(props.maximumWidth || 384);
90
149
  const localWidth = ref(props.width >= props.minimumWidth ? props.width : props.minimumWidth);
91
150
 
151
+ const isShowingToolbar = computed(() => !!toolbarSlot);
152
+
92
153
  // Styles
93
154
  const sidebarStyle = computed(() => ({
94
- width: localWidth.value + 'px',
155
+ width: (isCollapsed.value ? 16 : localWidth.value) + 'px',
95
156
  }));
96
157
 
97
158
  const rootStyles = computed(() => [
98
159
  'or-sidebar',
99
160
  ...SidebarRoot,
100
- ...SidebarRootSides[props.side],
161
+ ]);
162
+
163
+ const sidebarStyles = computed(() => [
164
+ ...SidebarBar,
165
+ ...SidebarSides[props.side],
166
+ ]);
167
+
168
+ const toolbarStyles = computed(() => [
169
+ ...SidebarToolbar,
170
+ ...SidebarToolbarSides[props.side],
101
171
  ]);
102
172
 
103
173
  const resizeStyles = computed(() => [
@@ -106,6 +176,11 @@ export default defineComponent({
106
176
  ...(isResizing.value ? SidebarResizingSides[props.side] : []),
107
177
  ]);
108
178
 
179
+ const collapsibleButtonStyles = computed(() => [
180
+ ...SidebarCollapseButton,
181
+ ...SidebarCollapseButtonSides[props.side],
182
+ ]);
183
+
109
184
  const mainStyles = computed(() => [...SidebarMain]);
110
185
 
111
186
  const headerStyles = computed(() => [...SidebarHeader]);
@@ -137,7 +212,16 @@ export default defineComponent({
137
212
  },
138
213
  });
139
214
 
140
- const { width: maximumWidth } = useElementBounding(parentContainer);
215
+ // Methods
216
+ function open(): void {
217
+ isCollapsed.value = false;
218
+ }
219
+
220
+ function close(): void {
221
+ isCollapsed.value = true;
222
+ }
223
+
224
+ const { width: containerWidth } = useElementBounding(parentContainer);
141
225
 
142
226
  watch(() => props.width, (newValue: number) => {
143
227
  if (newValue !== localWidth.value) {
@@ -150,6 +234,14 @@ export default defineComponent({
150
234
  if (newMinimum > localWidth.value) localWidth.value = newMinimum;
151
235
  });
152
236
 
237
+ watch(() => props.maximumWidth, (newMaximum: number) => {
238
+ if (newMaximum < maximumWidth.value) maximumWidth.value = newMaximum;
239
+ });
240
+
241
+ watch(containerWidth, (newMaximum: number) => {
242
+ if (newMaximum < maximumWidth.value) maximumWidth.value = newMaximum;
243
+ });
244
+
153
245
  watch(maximumWidth, (newMaximum: number) => {
154
246
  if (newMaximum < localWidth.value) localWidth.value = newMaximum;
155
247
  });
@@ -160,14 +252,21 @@ export default defineComponent({
160
252
  root,
161
253
  resizeBar,
162
254
  isResizing,
255
+ isCollapsed,
163
256
  localWidth,
257
+ isShowingToolbar,
164
258
  sidebarStyle,
165
259
  rootStyles,
260
+ sidebarStyles,
261
+ toolbarStyles,
166
262
  resizeStyles,
263
+ collapsibleButtonStyles,
167
264
  mainStyles,
168
265
  headerStyles,
169
266
  contentStyles,
170
267
  footerStyles,
268
+ open,
269
+ close,
171
270
  };
172
271
  },
173
272
  });
@@ -0,0 +1,48 @@
1
+ import { Meta, StoryFn } from '@storybook/vue3';
2
+ import OrSidebarCollapseButton from './OrSidebarCollapseButton.vue';
3
+ import { OrSidebarPlacement } from './props';
4
+ import { action } from '@storybook/addon-actions';
5
+ import { ref } from 'vue-demi';
6
+
7
+ export default {
8
+ title: 'Components/Sidebar/Parts/CollapseButton',
9
+ component: OrSidebarCollapseButton,
10
+
11
+ argTypes: {
12
+ // Props
13
+ modelValue: {
14
+ control: { type: 'boolean' },
15
+ },
16
+
17
+ side: {
18
+ control: { type: 'select' },
19
+ options: Object.values(OrSidebarPlacement),
20
+ },
21
+ },
22
+ } as Meta<typeof OrSidebarCollapseButton>;
23
+
24
+ const DefaultTemplate: StoryFn<typeof OrSidebarCollapseButton> = (args) => ({
25
+ components: {
26
+ OrSidebarCollapseButton,
27
+ },
28
+
29
+ setup() {
30
+ const collapsed = ref<boolean>(!!args.modelValue);
31
+
32
+ return {
33
+ args,
34
+ collapsed,
35
+ };
36
+ },
37
+
38
+ methods: {
39
+ onUpdateModelValue: action('update:modelValue'),
40
+ },
41
+
42
+ template: '<OrSidebarCollapseButton v-model="collapsed" v-bind="args" @update:modelValue="onUpdateModelValue" />',
43
+ });
44
+
45
+ export const Default = DefaultTemplate.bind({});
46
+ Default.args = {
47
+ side: OrSidebarPlacement.right,
48
+ };
@@ -0,0 +1,74 @@
1
+ <template>
2
+ <div
3
+ ref="root"
4
+ :class="rootStyles"
5
+ >
6
+ <or-icon-button
7
+ :class="buttonStyles"
8
+ :icon="{ icon, size: 'inherit' }"
9
+ color="inherit"
10
+ @click="$emit('update:modelValue', !modelValue)"
11
+ />
12
+ </div>
13
+ </template>
14
+
15
+ <script lang="ts">
16
+ import _ from 'lodash';
17
+ import { computed, defineComponent, PropType, ref } from 'vue-demi';
18
+ import { OrSidebarPlacement } from './props';
19
+ import { OrIconButtonV3 as OrIconButton } from '../or-icon-button-v3';
20
+ import { CollapseButton, CollapseButtonContainer } from './styles';
21
+
22
+ export default defineComponent({
23
+ name: 'OrSidebarCollapseButton',
24
+
25
+ components: {
26
+ OrIconButton,
27
+ },
28
+
29
+ props: {
30
+ /**
31
+ * Must be `true` if sidebar is collapsed.
32
+ */
33
+ modelValue: {
34
+ type: Boolean,
35
+ default: false,
36
+ },
37
+ side: {
38
+ type: String as PropType<OrSidebarPlacement>,
39
+ default: OrSidebarPlacement.right,
40
+ validator: (value?: any) => _.includes(_.values(OrSidebarPlacement), value),
41
+ },
42
+ },
43
+
44
+ emits: ['update:modelValue'],
45
+
46
+ expose: ['root'],
47
+
48
+ setup(props) {
49
+ // Refs
50
+ const root = ref<InstanceType<typeof HTMLDivElement>>();
51
+
52
+ const rootStyles = computed(() => [
53
+ 'or-sidebar-collapse-button',
54
+ ...CollapseButtonContainer,
55
+ ]);
56
+
57
+ const buttonStyles = computed(() => [
58
+ ...CollapseButton,
59
+ ]);
60
+
61
+ const icon = computed(() => (props.side === OrSidebarPlacement.left !== props.modelValue) ?
62
+ 'keyboard_arrow_left' :
63
+ 'keyboard_arrow_right',
64
+ );
65
+
66
+ return {
67
+ root,
68
+ rootStyles,
69
+ buttonStyles,
70
+ icon,
71
+ };
72
+ },
73
+ });
74
+ </script>
@@ -4,28 +4,97 @@ export const SidebarRoot: string[] = [
4
4
  // Position
5
5
  'relative',
6
6
 
7
+ // Layout
8
+ 'flex',
9
+ 'flex-row',
10
+ 'shrink-0',
11
+
12
+ // Box
13
+ 'min-w-0',
14
+ 'h-auto',
15
+ 'p-0',
16
+
17
+ // Theme
18
+ 'bg-background',
19
+ 'dark:bg-background-dark',
20
+ ];
21
+
22
+ export const SidebarBar: string[] = [
23
+ // Position
24
+ 'relative',
25
+
7
26
  // Layout
8
27
  'flex',
9
28
  'flex-col',
10
29
  'shrink-0',
30
+ 'grow',
11
31
 
12
32
  // Box
13
33
  'min-h-0',
14
34
  'p-0',
35
+
36
+ // Theme
37
+ 'text-on-background',
38
+ 'dark:text-on-background-dark',
39
+
40
+ // Transition
41
+ 'transition-[width]',
42
+ ];
43
+
44
+ export const SidebarToolbar: string[] = [
45
+ // Position
46
+ 'relative',
47
+
48
+ // Layout
49
+ 'flex',
50
+ 'flex-col',
51
+ 'shrink-0',
52
+ 'grow',
53
+ 'overflow-auto',
54
+ 'items-center',
55
+
56
+ // Sizing
57
+ 'gap-md',
58
+
59
+ // Box
60
+ 'min-h-0',
61
+ 'min-w-xl',
62
+ 'p-[6px]',
63
+ 'pt-[56px]',
64
+ 'pb-md+',
65
+
66
+ // Theme
67
+ 'text-outline',
68
+ 'dark:text-outline-dark',
15
69
  ];
16
70
 
17
- export const SidebarRootSides: Record<OrSidebarPlacement, string[]> = {
71
+ export const SidebarSides: Record<OrSidebarPlacement, string[]> = {
72
+ [OrSidebarPlacement.left]: [
73
+ // Borders
74
+ 'border-r-[1px]',
75
+ 'border-r-solid',
76
+ 'border-r-outline-variant dark:border-r-outline-variant-dark',
77
+ ],
78
+ [OrSidebarPlacement.right]: [
79
+ // Borders
80
+ 'border-l-[1px]',
81
+ 'border-l-solid',
82
+ 'border-l-outline-variant dark:border-l-outline-variant-dark',
83
+ ],
84
+ };
85
+
86
+ export const SidebarToolbarSides: Record<OrSidebarPlacement, string[]> = {
18
87
  [OrSidebarPlacement.left]: [
19
88
  // Borders
20
89
  'border-r-[1px]',
21
90
  'border-r-solid',
22
- 'border-r-secondary dark:border-r-secondary-dark',
91
+ 'border-r-outline-variant dark:border-r-outline-variant-dark',
23
92
  ],
24
93
  [OrSidebarPlacement.right]: [
25
94
  // Borders
26
95
  'border-l-[1px]',
27
96
  'border-l-solid',
28
- 'border-l-secondary dark:border-l-secondary-dark',
97
+ 'border-l-outline-variant dark:border-l-outline-variant-dark',
29
98
  ],
30
99
  };
31
100
 
@@ -36,7 +105,7 @@ export const SidebarResize: string[] = [
36
105
  'z-[1]',
37
106
 
38
107
  // Box
39
- 'w-[12px]',
108
+ 'w-sm+',
40
109
  'h-[100%]',
41
110
 
42
111
  // Cursor
@@ -50,7 +119,7 @@ export const SidebarResizeSides: Record<OrSidebarPlacement, string[]> = {
50
119
 
51
120
  // Borders
52
121
  'hover:border-r-2',
53
- 'hover:border-r-primary hover:dark:border-r-primary-dark',
122
+ 'hover:border-r-primary-hover hover:dark:border-r-primary-hover-dark',
54
123
 
55
124
  // Transition
56
125
  'transition-[border-right]',
@@ -61,23 +130,42 @@ export const SidebarResizeSides: Record<OrSidebarPlacement, string[]> = {
61
130
 
62
131
  // Borders
63
132
  'hover:border-l-2',
64
- 'hover:border-l-primary hover:dark:border-l-primary-dark',
133
+ 'hover:border-l-primary-hover hover:dark:border-l-primary-hover-dark',
65
134
 
66
135
  // Transition
67
136
  'transition-[border-left]',
68
137
  ],
69
138
  };
70
139
 
140
+ export const SidebarCollapseButton: string[] = [
141
+ // Position
142
+ 'absolute',
143
+ 'top-md',
144
+ 'inset-y-none',
145
+ 'z-[1]',
146
+ ];
147
+
148
+ export const SidebarCollapseButtonSides: Record<OrSidebarPlacement, string[]> = {
149
+ [OrSidebarPlacement.left]: [
150
+ // Position
151
+ '-right-[12px]',
152
+ ],
153
+ [OrSidebarPlacement.right]: [
154
+ // Position
155
+ '-left-[12px]',
156
+ ],
157
+ };
158
+
71
159
  export const SidebarResizingSides: Record<OrSidebarPlacement, string[]> = {
72
160
  [OrSidebarPlacement.left]: [
73
161
  // Borders
74
162
  'border-r-2',
75
- 'border-r-primary dark:border-r-primary-dark',
163
+ 'border-r-primary-hover dark:border-r-primary-hover-dark',
76
164
  ],
77
165
  [OrSidebarPlacement.right]: [
78
166
  // Borders
79
167
  'border-l-2',
80
- 'border-l-primary dark:border-l-primary-dark',
168
+ 'border-l-primary-hover dark:border-l-primary-hover-dark',
81
169
  ],
82
170
  };
83
171
 
@@ -86,14 +174,24 @@ export const SidebarMain: string[] = [
86
174
  'flex',
87
175
  'flex-col',
88
176
  'grow',
177
+ 'overflow-x-hidden',
89
178
 
90
179
  // Box
91
180
  'min-h-0',
92
181
  ];
93
182
 
94
183
  export const SidebarHeader: string[] = [
184
+ // Layout
185
+ 'shrink-0',
186
+ 'overflow-hidden',
187
+
95
188
  // Sizing
96
189
  'p-md',
190
+
191
+ // Typography
192
+ 'typography-headline-2',
193
+ 'whitespace-nowrap',
194
+ 'text-ellipsis',
97
195
  ];
98
196
 
99
197
  export const SidebarContent: string[] = [
@@ -106,11 +204,65 @@ export const SidebarContent: string[] = [
106
204
  ];
107
205
 
108
206
  export const SidebarFooter: string[] = [
207
+ // Layout
208
+ 'shrink-0',
209
+ 'overflow-x-hidden',
210
+
109
211
  // Sizing
110
212
  'p-md',
111
213
 
112
214
  // Borders
113
215
  'border-t-[1px]',
114
216
  'border-t-solid',
115
- 'border-t-secondary dark:border-t-secondary-dark',
217
+ 'border-t-outline-variant dark:border-t-outline-variant-dark',
218
+ ];
219
+
220
+ export const CollapseButtonContainer: string[] = [
221
+ // Box
222
+ 'w-[24px]',
223
+ 'h-[24px]',
224
+ 'rounded-full',
225
+
226
+ // Theme
227
+ 'text-primary dark:text-primary-dark',
228
+ 'bg-background dark:bg-background-dark',
229
+ ];
230
+
231
+ export const CollapseButton: string[] = [
232
+ // Box
233
+ 'w-[24px]',
234
+ 'h-[24px]',
235
+
236
+ // Typography
237
+ '!text-[16px]',
238
+
239
+ // Borders
240
+ '!border-[1px]',
241
+ '!border-solid',
242
+
243
+ // Theme
244
+ '!text-primary dark:!text-primary-dark',
245
+ '!bg-background dark:!bg-background-dark',
246
+ '!border-outline-variant dark:!border-outline-variant-dark',
247
+ '!outline-none',
248
+
249
+ // Theme (hover)
250
+ 'hover:!text-primary hover:dark:!text-primary-dark',
251
+ 'hover:!bg-primary-opacity-0-08 dark:hover:!bg-primary-opacity-0-08-dark',
252
+ 'hover:!border-outline dark:hover:!border-outline-dark',
253
+
254
+ // Theme (active)
255
+ 'active:!text-primary active:dark:!text-primary-dark',
256
+ 'active:!bg-primary-opacity-0-12 dark:active:!bg-primary-opacity-0-12-dark',
257
+ 'active:!border-primary dark:active:!border-primary-dark',
258
+
259
+ // Theme (focus)
260
+ 'focus:!text-primary focus:dark:!text-primary-dark',
261
+ 'focus:!bg-primary-opacity-0-12 dark:focus:!bg-primary-opacity-0-12-dark',
262
+ 'focus:!border-outline dark:focus:!border-outline-dark',
263
+
264
+ // Theme (disabled)
265
+ 'disabled:!text-on-disabled disabled:dark:!text-on-disabled-dark',
266
+ 'disabled:!bg-background disabled:dark:!bg-background-dark',
267
+ 'disabled:!border-outline-variant disabled:dark:!border-outline-variant-dark',
116
268
  ];