@antify/ui 1.2.0 → 2.0.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 (65) hide show
  1. package/dist/components/AntAccordion.vue +1 -1
  2. package/dist/components/AntAlert.vue +2 -2
  3. package/dist/components/AntCard.vue +1 -1
  4. package/dist/components/AntDropdown.vue +1 -1
  5. package/dist/components/AntKeycap.vue +1 -1
  6. package/dist/components/AntListGroup.vue +1 -1
  7. package/dist/components/AntListGroupItem.vue +1 -1
  8. package/dist/components/AntModal.vue +2 -2
  9. package/dist/components/AntPopover.vue +6 -6
  10. package/dist/components/AntSpinner.vue +4 -4
  11. package/dist/components/AntTag.vue +2 -2
  12. package/dist/components/AntToast.vue +2 -2
  13. package/dist/components/AntTooltip.vue +29 -8
  14. package/dist/components/__stories/AntContent.stories.js +1 -1
  15. package/dist/components/__stories/AntContent.stories.mjs +1 -1
  16. package/dist/components/__stories/AntListGroup.stories.js +1 -1
  17. package/dist/components/__stories/AntListGroup.stories.mjs +1 -1
  18. package/dist/components/__stories/AntListGroupItem.stories.js +1 -1
  19. package/dist/components/__stories/AntListGroupItem.stories.mjs +1 -1
  20. package/dist/components/__stories/AntTooltip.stories.js +3 -1
  21. package/dist/components/__stories/AntTooltip.stories.mjs +1 -1
  22. package/dist/components/buttons/AntButton.vue +6 -6
  23. package/dist/components/crud/AntCrud.vue +2 -2
  24. package/dist/components/crud/AntCrudDetail.vue +1 -1
  25. package/dist/components/crud/AntCrudDetailNav.vue +1 -0
  26. package/dist/components/crud/__stories/AntCrudDetailActions.stories.js +1 -1
  27. package/dist/components/crud/__stories/AntCrudDetailActions.stories.mjs +1 -1
  28. package/dist/components/crud/__stories/AntCrudTableFilter.stories.js +1 -1
  29. package/dist/components/crud/__stories/AntCrudTableFilter.stories.mjs +1 -1
  30. package/dist/components/dialogs/AntDialog.vue +4 -4
  31. package/dist/components/dialogs/__stories/AntDialog.stories.js +1 -1
  32. package/dist/components/dialogs/__stories/AntDialog.stories.mjs +1 -1
  33. package/dist/components/inputs/AntCheckbox.vue +2 -2
  34. package/dist/components/inputs/AntDateInput.vue +1 -1
  35. package/dist/components/inputs/AntPasswordInput.vue +1 -1
  36. package/dist/components/inputs/AntRadio.vue +1 -1
  37. package/dist/components/inputs/AntRangeSlider.vue +2 -2
  38. package/dist/components/inputs/AntSelect.vue +2 -2
  39. package/dist/components/inputs/AntSwitch.vue +2 -2
  40. package/dist/components/inputs/AntSwitcher.vue +1 -1
  41. package/dist/components/inputs/AntTagInput.vue +2 -2
  42. package/dist/components/inputs/AntTextarea.vue +10 -2
  43. package/dist/components/inputs/Elements/AntBaseInput.vue +1 -1
  44. package/dist/components/inputs/Elements/AntSelectMenu.vue +2 -3
  45. package/dist/components/inputs/__stories/AntTextInput.stories.js +1 -0
  46. package/dist/components/inputs/__stories/AntTextInput.stories.mjs +1 -0
  47. package/dist/components/layouts/AntNavLeftLayout.vue +2 -2
  48. package/dist/components/layouts/__stories/AntNavLeftLayout.stories.js +1 -1
  49. package/dist/components/layouts/__stories/AntNavLeftLayout.stories.mjs +1 -1
  50. package/dist/components/navbar/AntNavbarItem.vue +1 -1
  51. package/dist/components/table/AntTable.vue +5 -5
  52. package/dist/components/table/AntTh.vue +1 -1
  53. package/dist/components/table/__stories/AntTable.stories.js +1 -1
  54. package/dist/components/table/__stories/AntTable.stories.mjs +1 -1
  55. package/dist/components/tabs/AntTabItem.vue +11 -4
  56. package/dist/components/tabs/AntTabs.vue +6 -2
  57. package/dist/components/tabs/__stories/AntTabs.stories.d.ts +1 -0
  58. package/dist/components/tabs/__stories/AntTabs.stories.js +112 -6
  59. package/dist/components/tabs/__stories/AntTabs.stories.mjs +120 -5
  60. package/dist/components/tabs/__types/AntTabItem.types.d.ts +1 -0
  61. package/dist/components/tabs/__types/AntTabItem.types.js +1 -0
  62. package/dist/components/tabs/__types/AntTabItem.types.mjs +1 -0
  63. package/dist/tailwind.config.js +92 -92
  64. package/dist/tailwind.config.mjs +92 -92
  65. package/package.json +1 -1
@@ -49,7 +49,7 @@ function onClose(index: number) {
49
49
  </script>
50
50
 
51
51
  <template>
52
- <div class="w-full h-full flex flex-col bg-neutral-300 gap-px">
52
+ <div class="w-full h-full flex flex-col bg-base-300 gap-px">
53
53
  <slot>
54
54
  <AntAccordionItem
55
55
  v-for="(item, index) in items"
@@ -48,7 +48,7 @@ const classes = computed(() => {
48
48
  const variants: Record<InputState, string> = {
49
49
  [InputState.danger]: 'bg-danger-100 text-danger-700',
50
50
  [InputState.info]: 'bg-info-100 text-info-700',
51
- [InputState.base]: 'bg-neutral-100 text-neutral-100-font',
51
+ [InputState.base]: 'bg-base-100 text-base-100-font',
52
52
  [InputState.success]: 'bg-success-100 text-success-700',
53
53
  [InputState.warning]: 'bg-warning-100 text-warning-700',
54
54
  };
@@ -63,7 +63,7 @@ const hasDefaultSlot = computed(() => useSlots()['default'] || false);
63
63
  const hasQuestionMark = computed(() => (useSlots()['question-mark-text'] || false) || props.questionMarkText);
64
64
  const iconColor = computed(() => {
65
65
  const variants = {
66
- [InputState.base]: 'text-neutral-100-font',
66
+ [InputState.base]: 'text-base-100-font',
67
67
  [InputState.danger]: 'text-danger-700',
68
68
  [InputState.info]: 'text-info-700',
69
69
  [InputState.success]: 'text-success-700',
@@ -27,7 +27,7 @@ const cardClass = computed(() => ({
27
27
  <template>
28
28
  <div
29
29
  :class="cardClass"
30
- class="bg-white border border-neutral-300 rounded-md"
30
+ class="bg-white border border-base-300 rounded-md"
31
31
  >
32
32
  <slot/>
33
33
  </div>
@@ -77,7 +77,7 @@ const onClickOutside = [
77
77
  :style="floatingStyles"
78
78
  >
79
79
  <div
80
- class="shadow-lg border border-neutral-300 rounded-md text-sm relative inline-flex flex-col bg-white text-for-white-bg-font w-full overflow-hidden"
80
+ class="shadow-lg border border-base-300 rounded-md text-sm relative inline-flex flex-col bg-white text-for-white-bg-font w-full overflow-hidden"
81
81
  :class="{'p-2': contentPadding}"
82
82
  >
83
83
  <slot name="content"/>
@@ -37,7 +37,7 @@ const iconClasses = computed(() => {
37
37
  </script>
38
38
 
39
39
  <template>
40
- <div class="inline-flex relative justify-center items-center bg-neutral-300 rounded-md text-center text-neutral-300-font font-medium" :class="classes">
40
+ <div class="inline-flex relative justify-center items-center bg-base-300 rounded-md text-center text-base-300-font font-medium" :class="classes">
41
41
  <AntIcon
42
42
  v-if="icon"
43
43
  :icon="icon"
@@ -17,7 +17,7 @@ withDefaults(
17
17
  <AntSkeleton v-if="skeleton" absolute rounded/>
18
18
 
19
19
  <div
20
- class="flex flex-col rounded-md bg-neutral-300 gap-px relative border border-neutral-300 overflow-hidden"
20
+ class="flex flex-col rounded-md bg-base-300 gap-px relative border border-base-300 overflow-hidden"
21
21
  :class="{'invisible': skeleton, 'shadow-md': shadow}"
22
22
  >
23
23
  <slot/>
@@ -19,7 +19,7 @@ const classes = computed(() => {
19
19
  const variants: Record<ListGroupItemState, string> = {
20
20
  [ListGroupItemState.danger]: 'bg-danger-500 text-danger-500-font hover:bg-danger-700',
21
21
  [ListGroupItemState.info]: 'bg-info-500 text-info-500-font hover:bg-info-700',
22
- [ListGroupItemState.base]: 'bg-white text-for-white-bg-font hover:bg-neutral-200',
22
+ [ListGroupItemState.base]: 'bg-white text-for-white-bg-font hover:bg-base-200',
23
23
  [ListGroupItemState.primary]: 'bg-primary-500 text-primary-500-font hover:bg-primary-700',
24
24
  [ListGroupItemState.secondary]: 'bg-secondary-500 text-secondary-500-font hover:bg-secondary-700',
25
25
  [ListGroupItemState.success]: 'bg-success-500 text-success-500-font hover:bg-success-700',
@@ -54,8 +54,8 @@ function closeModal() {
54
54
  <Transition :name="!fullscreen ? 'bounce' : 'bounce-slow'">
55
55
  <div
56
56
  v-if="openModal"
57
- class="flex flex-col gap-px bg-neutral-300 overflow-hidden cursor-auto"
58
- :class="{'w-full h-full': fullscreen, 'border border-neutral-300 rounded-md shadow-md': !fullscreen}"
57
+ class="flex flex-col gap-px bg-base-300 overflow-hidden cursor-auto"
58
+ :class="{'w-full h-full': fullscreen, 'border border-base-300 rounded-md shadow-md': !fullscreen}"
59
59
  >
60
60
  <div
61
61
  class="bg-white p-2 flex items-center justify-between"
@@ -107,10 +107,10 @@ const onClickOutside = [
107
107
  ref="floating"
108
108
  :style="floatingStyles"
109
109
  >
110
- <div class="shadow-lg border-neutral-300 rounded-md text-sm relative inline-flex flex-col">
110
+ <div class="shadow-lg border-base-300 rounded-md text-sm relative inline-flex flex-col">
111
111
 
112
112
  <div
113
- class="border-neutral-300 border-b p-2 bg-neutral-100 rounded-t-md border-t border-l border-r text-neutral-100-font font-semibold"
113
+ class="border-base-300 border-b p-2 bg-base-100 rounded-t-md border-t border-l border-r text-base-100-font font-semibold"
114
114
  >
115
115
  <slot name="title">
116
116
  {{ title }}
@@ -118,7 +118,7 @@ const onClickOutside = [
118
118
  </div>
119
119
 
120
120
  <div
121
- class="p-2 rounded-b-md text-for-white-bg-font border-neutral-300 border-l border-b border-r bg-white"
121
+ class="p-2 rounded-b-md text-for-white-bg-font border-base-300 border-l border-b border-r bg-white"
122
122
  >
123
123
  <slot name="content"/>
124
124
  </div>
@@ -154,12 +154,12 @@ const onClickOutside = [
154
154
  >
155
155
  <path
156
156
  d="M20.3284 1.82843L23.1569 4.65685C24.6571 6.15715 26.692 7 28.8137 7L6.18629 7C8.30802 7 10.3429 6.15715 11.8431 4.65686L14.6716 1.82843C16.2337 0.266331 18.7663 0.266328 20.3284 1.82843Z"
157
- :class="{'fill-neutral-100': placement === Position.bottom, 'fill-white': placement === Position.top || placement === Position.right || placement === Position.left}"
157
+ :class="{'fill-base-100': placement === Position.bottom, 'fill-white': placement === Position.top || placement === Position.right || placement === Position.left}"
158
158
  />
159
159
 
160
160
  <path
161
161
  d="M34.5 7L28.8137 7C26.692 7 24.6571 6.15715 23.1569 4.65685L20.3284 1.82843C18.7663 0.266328 16.2337 0.266331 14.6716 1.82843L11.8431 4.65686C10.3429 6.15715 8.30802 7 6.18629 7L0.5 7L34.5 7Z"
162
- :class="{'stroke-neutral-100': placement === Position.bottom, 'stroke-white': placement === Position.top || placement === Position.right || placement === Position.left}"
162
+ :class="{'stroke-base-100': placement === Position.bottom, 'stroke-white': placement === Position.top || placement === Position.right || placement === Position.left}"
163
163
  />
164
164
  </svg>
165
165
 
@@ -173,7 +173,7 @@ const onClickOutside = [
173
173
  >
174
174
  <path
175
175
  d="M34.5 7L28.8137 7C26.692 7 24.6571 6.15715 23.1569 4.65685L20.3284 1.82843C18.7663 0.266328 16.2337 0.266331 14.6716 1.82843L11.8431 4.65686C10.3429 6.15715 8.30802 7 6.18629 7L0.5 7"
176
- class="stroke-neutral-300"
176
+ class="stroke-base-300"
177
177
  />
178
178
  </svg>
179
179
  </div>
@@ -31,7 +31,7 @@ onMounted(() => {
31
31
  });
32
32
  const circleClass = computed(() => {
33
33
  const invertedVariants: Record<State, string> = {
34
- [State.base]: 'fill-neutral-500',
34
+ [State.base]: 'fill-base-500',
35
35
  [State.primary]: 'fill-primary-700',
36
36
  [State.secondary]: 'fill-secondary-700',
37
37
  [State.danger]: 'fill-danger-700',
@@ -40,7 +40,7 @@ const circleClass = computed(() => {
40
40
  [State.warning]: 'fill-warning-700',
41
41
  };
42
42
  const notInvertedVariants: Record<State, string> = {
43
- [State.base]: 'fill-neutral-100',
43
+ [State.base]: 'fill-base-100',
44
44
  [State.primary]: 'fill-primary-100',
45
45
  [State.secondary]: 'fill-secondary-100',
46
46
  [State.danger]: 'fill-danger-100',
@@ -56,7 +56,7 @@ const circleClass = computed(() => {
56
56
  });
57
57
  const spinningElementClass = computed(() => {
58
58
  const invertedVariants: Record<State, string> = {
59
- [State.base]: 'fill-neutral-100',
59
+ [State.base]: 'fill-base-100',
60
60
  [State.primary]: 'fill-primary-100',
61
61
  [State.secondary]: 'fill-secondary-100',
62
62
  [State.danger]: 'fill-danger-100',
@@ -65,7 +65,7 @@ const spinningElementClass = computed(() => {
65
65
  [State.warning]: 'fill-warning-100',
66
66
  };
67
67
  const notInvertedVariants: Record<State, string> = {
68
- [State.base]: 'fill-neutral-500',
68
+ [State.base]: 'fill-base-500',
69
69
  [State.primary]: 'fill-primary-500',
70
70
  [State.secondary]: 'fill-secondary-500',
71
71
  [State.danger]: 'fill-danger-500',
@@ -24,7 +24,7 @@ const classes = computed(() => {
24
24
  [TagState.info]: 'bg-info-500 text-info-500-font',
25
25
  [TagState.primary]: 'bg-primary-500 text-primary-500-font',
26
26
  [TagState.secondary]: 'bg-secondary-500 text-secondary-500-font',
27
- [TagState.base]: 'bg-neutral-300 text-neutral-300-font',
27
+ [TagState.base]: 'bg-base-300 text-base-300-font',
28
28
  [TagState.success]: 'bg-success-500 text-success-500-font',
29
29
  [TagState.warning]: 'bg-warning-500 text-warning-500-font',
30
30
  };
@@ -61,7 +61,7 @@ const iconState = computed(() => {
61
61
  case TagState.secondary:
62
62
  return 'text-secondary-500-font';
63
63
  default:
64
- return 'text-neutral-300-font';
64
+ return 'text-base-300-font';
65
65
  }
66
66
  });
67
67
  const iconWrapperClass = computed(() => {
@@ -35,7 +35,7 @@ const icons = {
35
35
  const _icon = computed(() => icons[props.state]);
36
36
  const classes = computed(() => {
37
37
  const variants: Record<InputState, string> = {
38
- [InputState.base]: 'bg-neutral-100 border-neutral-500 text-neutral-500',
38
+ [InputState.base]: 'bg-base-100 border-base-500 text-base-500',
39
39
  [InputState.danger]: 'bg-danger-100 border-danger-500 text-danger-500',
40
40
  [InputState.info]: 'bg-info-100 border-info-500 text-info-500',
41
41
  [InputState.success]: 'bg-success-100 border-success-500 text-success-500',
@@ -50,7 +50,7 @@ const classes = computed(() => {
50
50
  const hasDefaultSlot = computed(() => useSlots()['default'] || false);
51
51
  const iconColor = computed(() => {
52
52
  const variants = {
53
- [InputState.base]: 'text-neutral-100-font',
53
+ [InputState.base]: 'text-base-100-font',
54
54
  [InputState.danger]: 'text-danger-500',
55
55
  [InputState.info]: 'text-info-500',
56
56
  [InputState.success]: 'text-success-500',
@@ -18,6 +18,8 @@ const props = withDefaults(defineProps<{
18
18
  const floatOpen = ref<boolean>(false)
19
19
  const clickLock = ref(false);
20
20
  const timeout = ref<number | undefined>();
21
+ const hoverFloat = ref<boolean>(false)
22
+ const hoverReference = ref<boolean>(false)
21
23
 
22
24
  const reference = ref<HTMLElement | null>(null)
23
25
  const floating = ref<HTMLElement | null>(null)
@@ -68,7 +70,7 @@ const svgPathClasses = computed(() => {
68
70
  });
69
71
  const arrowSvgPathClasses = computed(() => {
70
72
  const variants: Record<InputState, string> = {
71
- [InputState.base]: 'stroke-neutral-300',
73
+ [InputState.base]: 'stroke-base-300',
72
74
  [InputState.danger]: 'stroke-danger-500',
73
75
  [InputState.info]: 'stroke-info-500',
74
76
  [InputState.success]: 'stroke-success-500',
@@ -79,7 +81,7 @@ const arrowSvgPathClasses = computed(() => {
79
81
  });
80
82
  const contentClasses = computed(() => {
81
83
  const variants: Record<InputState, string> = {
82
- [InputState.base]: 'text-for-white-bg-font bg-white border-neutral-300',
84
+ [InputState.base]: 'text-for-white-bg-font bg-white border-base-300',
83
85
  [InputState.danger]: 'text-danger-500-font bg-danger-500 border-danger-500',
84
86
  [InputState.info]: 'text-info-500-font bg-info-500 border-info-500',
85
87
  [InputState.success]: 'text-success-500-font bg-success-500 border-success-500',
@@ -94,10 +96,6 @@ const _tooltipClasses = computed(() => ({
94
96
  }));
95
97
 
96
98
  function onMouseOver() {
97
- if (floatOpen.value || clickLock.value) {
98
- return;
99
- }
100
-
101
99
  /**
102
100
  * To prevent buggy behavior when hovering over multiple tooltips in quick succession,
103
101
  * we clear the timeout before setting a new one.
@@ -110,8 +108,29 @@ function onMouseOver() {
110
108
  function onMouseLeave() {
111
109
  clearTimeout(timeout.value);
112
110
 
113
- floatOpen.value = false;
114
- clickLock.value = false;
111
+ timeout.value = setTimeout(() => {
112
+ if (!hoverFloat.value) {
113
+ floatOpen.value = false
114
+ clickLock.value = false;
115
+ }
116
+ }, props.delay) as unknown as number;
117
+ }
118
+
119
+ function onMouseEnterTooltip() {
120
+ clearTimeout(timeout.value);
121
+
122
+ floatOpen.value = true;
123
+ }
124
+
125
+ function onMouseLeaveTooltip() {
126
+ clearTimeout(timeout.value);
127
+
128
+ timeout.value = setTimeout(() => {
129
+ if (!hoverReference.value) {
130
+ floatOpen.value = false
131
+ clickLock.value = false;
132
+ }
133
+ }, props.delay) as unknown as number;
115
134
  }
116
135
 
117
136
  function onClick() {
@@ -147,6 +166,8 @@ function onClick() {
147
166
  ? 'block'
148
167
  : 'none',
149
168
  }"
169
+ @mouseenter="() => onMouseEnterTooltip()"
170
+ @mouseleave="() => onMouseLeaveTooltip()"
150
171
  data-e2e="tooltip-content"
151
172
  >
152
173
  <div
@@ -33,7 +33,7 @@ const Docs = exports.Docs = {
33
33
  };
34
34
  },
35
35
  template: `
36
- <div class="outline outline-neutral-300">
36
+ <div class="outline outline-base-300">
37
37
  <AntContent v-bind="args" class="h-40">
38
38
  <div class="slot h-60">SLOT</div>
39
39
  </AntContent>
@@ -16,7 +16,7 @@ export const Docs = {
16
16
  return { args };
17
17
  },
18
18
  template: `
19
- <div class="outline outline-neutral-300">
19
+ <div class="outline outline-base-300">
20
20
  <AntContent v-bind="args" class="h-40">
21
21
  <div class="slot h-60">SLOT</div>
22
22
  </AntContent>
@@ -35,7 +35,7 @@ const Docs = exports.Docs = {
35
35
  };
36
36
  },
37
37
  template: `
38
- <div class="p-4 bg-neutral-100">
38
+ <div class="p-4 bg-base-100">
39
39
  <AntListGroup v-bind="args">
40
40
  <AntListGroupItem to="/example" :icon-left="faUser">Profile</AntListGroupItem>
41
41
  <AntListGroupItem to="/example" :icon-left="faDownload">Downloads</AntListGroupItem>
@@ -15,7 +15,7 @@ export const Docs = {
15
15
  return { args, faUser, faDownload, faMessage, faCog };
16
16
  },
17
17
  template: `
18
- <div class="p-4 bg-neutral-100">
18
+ <div class="p-4 bg-base-100">
19
19
  <AntListGroup v-bind="args">
20
20
  <AntListGroupItem to="/example" :icon-left="faUser">Profile</AntListGroupItem>
21
21
  <AntListGroupItem to="/example" :icon-left="faDownload">Downloads</AntListGroupItem>
@@ -48,7 +48,7 @@ const Docs = exports.Docs = {
48
48
  args
49
49
  };
50
50
  },
51
- template: '<div class="p-4 bg-neutral-100"><AntListGroupItem v-bind="args">Item</AntListGroupItem></div>'
51
+ template: '<div class="p-4 bg-base-100"><AntListGroupItem v-bind="args">Item</AntListGroupItem></div>'
52
52
  }),
53
53
  args: {}
54
54
  };
@@ -27,7 +27,7 @@ export const Docs = {
27
27
  setup() {
28
28
  return { args };
29
29
  },
30
- template: '<div class="p-4 bg-neutral-100"><AntListGroupItem v-bind="args">Item</AntListGroupItem></div>'
30
+ template: '<div class="p-4 bg-base-100"><AntListGroupItem v-bind="args">Item</AntListGroupItem></div>'
31
31
  }),
32
32
  args: {}
33
33
  };
@@ -80,7 +80,9 @@ const Docs = exports.Docs = {
80
80
  });
81
81
  await step("Leave hover state and expect not showing the tooltip anymore", async () => {
82
82
  await _test.userEvent.unhover(target);
83
- await (0, _test.expect)(queryTooltip()).not.toBeInTheDocument();
83
+ await (0, _test.waitFor)(() => (0, _test.expect)(queryTooltip()).not.toBeInTheDocument(), {
84
+ timeout: 600
85
+ });
84
86
  });
85
87
  await step("Hover over the target, wait until the tooltip is visible, click the target and expect not showing the tooltip", async () => {
86
88
  await _test.userEvent.hover(target);
@@ -58,7 +58,7 @@ export const Docs = {
58
58
  });
59
59
  await step("Leave hover state and expect not showing the tooltip anymore", async () => {
60
60
  await userEvent.unhover(target);
61
- await expect(queryTooltip()).not.toBeInTheDocument();
61
+ await waitFor(() => expect(queryTooltip()).not.toBeInTheDocument(), { timeout: 600 });
62
62
  });
63
63
  await step("Hover over the target, wait until the tooltip is visible, click the target and expect not showing the tooltip", async () => {
64
64
  await userEvent.hover(target);
@@ -61,7 +61,7 @@ const groupedClassList = computed(() => ({
61
61
  }));
62
62
  const classes = computed(() => {
63
63
  const variants = {
64
- [State.base]: 'ring-primary-200 outline-neutral-300',
64
+ [State.base]: 'ring-primary-200 outline-base-300',
65
65
  [State.danger]: 'ring-danger-200 outline-danger-500',
66
66
  [State.info]: 'ring-info-200 outline-info-500',
67
67
  [State.primary]: 'ring-primary-200 outline-primary-500',
@@ -79,7 +79,7 @@ const classes = computed(() => {
79
79
  [State.warning]: 'bg-white text-warning-500',
80
80
  };
81
81
  const notFilledHoverVariants = {
82
- [State.base]: 'hover:bg-neutral-100',
82
+ [State.base]: 'hover:bg-base-100',
83
83
  [State.danger]: 'hover:bg-danger-100',
84
84
  [State.info]: 'hover:bg-info-100',
85
85
  [State.primary]: 'hover:bg-primary-100',
@@ -88,7 +88,7 @@ const classes = computed(() => {
88
88
  [State.warning]: 'hover:bg-warning-100',
89
89
  };
90
90
  const filledVariants = {
91
- [State.base]: 'bg-neutral-50 text-neutral-50-font',
91
+ [State.base]: 'bg-base-50 text-base-50-font',
92
92
  [State.danger]: 'bg-danger-500 text-danger-500-font',
93
93
  [State.info]: 'bg-info-500 text-info-500-font',
94
94
  [State.primary]: 'bg-primary-500 text-primary-500-font',
@@ -97,7 +97,7 @@ const classes = computed(() => {
97
97
  [State.warning]: 'bg-warning-500 text-warning-500-font',
98
98
  };
99
99
  const filledHoverVariants = {
100
- [State.base]: 'hover:bg-neutral-200',
100
+ [State.base]: 'hover:bg-base-200',
101
101
  [State.danger]: 'hover:bg-danger-600',
102
102
  [State.info]: 'hover:bg-info-600',
103
103
  [State.primary]: 'hover:bg-primary-600',
@@ -207,8 +207,8 @@ onMounted(() => {
207
207
  :to="to"
208
208
  :disabled="disabled || undefined"
209
209
  :tabindex="noFocus || hasInputState ? '-1' : '0'"
210
- @click="() => !props.readonly ? $emit('click') : null"
211
- @blur="() => !props.readonly ? $emit('blur') : null"
210
+ @click="(e: MouseEvent) => !props.readonly ? $emit('click', e) : null"
211
+ @blur="(e: FocusEvent) => !props.readonly ? $emit('blur', e) : null"
212
212
  >
213
213
  <AntSpinner
214
214
  v-if="spinner"
@@ -12,7 +12,7 @@ withDefaults(defineProps<{
12
12
  data-e2e="crud"
13
13
  >
14
14
  <div
15
- class="left-content h-full flex flex-col bg-neutral-300 gap-px overflow-hidden"
15
+ class="left-content h-full flex flex-col bg-base-300 gap-px overflow-hidden"
16
16
  :class="{'w-[40rem]': showDetail, 'w-full': !showDetail}"
17
17
  >
18
18
  <div class="bg-white">
@@ -31,7 +31,7 @@ withDefaults(defineProps<{
31
31
  <Transition name="right-content">
32
32
  <div
33
33
  v-if="showDetail"
34
- class="flex flex-col gap-px border-l border-neutral-300 overflow-hidden"
34
+ class="flex flex-col gap-px border-l border-base-300 overflow-hidden"
35
35
  :class="{'w-full': showDetail}"
36
36
  >
37
37
  <slot/>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="flex flex-col bg-neutral-300 gap-px h-full" data-e2e="crud-detail">
2
+ <div class="flex flex-col bg-base-300 gap-px h-full" data-e2e="crud-detail">
3
3
  <slot name="header"/>
4
4
 
5
5
  <div class="flex-grow bg-white h-full overflow-y-auto">
@@ -34,6 +34,7 @@ const dialogOpen = ref(false);
34
34
  <slot name="tabs">
35
35
  <AntTabs
36
36
  :tab-items="tabItems"
37
+ :skeleton="skeleton"
37
38
  />
38
39
  </slot>
39
40
 
@@ -16,7 +16,7 @@ const meta = {
16
16
  }
17
17
  },
18
18
  decorators: [() => ({
19
- template: '<div class="border border-dashed border-neutral-300"><story/></div>'
19
+ template: '<div class="border border-dashed border-base-300"><story/></div>'
20
20
  })],
21
21
  argTypes: {}
22
22
  };
@@ -4,7 +4,7 @@ const meta = {
4
4
  title: "Crud/Crud Detail Actions",
5
5
  component: AntCrudDetailActions,
6
6
  parameters: { controls: { sort: "requiredFirst" } },
7
- decorators: [() => ({ template: '<div class="border border-dashed border-neutral-300"><story/></div>' })],
7
+ decorators: [() => ({ template: '<div class="border border-dashed border-base-300"><story/></div>' })],
8
8
  argTypes: {}
9
9
  };
10
10
  export default meta;
@@ -30,7 +30,7 @@ const Docs = exports.Docs = {
30
30
  };
31
31
  },
32
32
  template: `
33
- <div class="border border-neutral-300 border-dashed">
33
+ <div class="border border-base-300 border-dashed">
34
34
  <AntCrudTableFilter
35
35
  v-model:search="args.search"
36
36
  v-bind="args"
@@ -15,7 +15,7 @@ export const Docs = {
15
15
  return { args };
16
16
  },
17
17
  template: `
18
- <div class="border border-neutral-300 border-dashed">
18
+ <div class="border border-base-300 border-dashed">
19
19
  <AntCrudTableFilter
20
20
  v-model:search="args.search"
21
21
  v-bind="args"
@@ -41,7 +41,7 @@ const icons = {
41
41
 
42
42
  const iconColor = computed(() => {
43
43
  const variants = {
44
- [InputState.base]: 'text-neutral-100-font',
44
+ [InputState.base]: 'text-base-100-font',
45
45
  [InputState.danger]: 'text-danger-500',
46
46
  [InputState.info]: 'text-info-500',
47
47
  [InputState.success]: 'text-success-500',
@@ -91,11 +91,11 @@ function confirmDialog() {
91
91
  <Transition :name="'bounce'">
92
92
  <div
93
93
  v-if="openDialog"
94
- class="flex flex-col gap-px bg-neutral-300 overflow-hidden cursor-auto w-96 border border-neutral-300 rounded-md shadow-md"
94
+ class="flex flex-col gap-px bg-base-300 overflow-hidden cursor-auto w-96 border border-base-300 rounded-md shadow-md"
95
95
  >
96
96
  <div
97
97
  v-if="title || $slots['title']"
98
- class="bg-neutral-100 p-2 flex items-center justify-between text-neutral-100-font text-sm font-semibold"
98
+ class="bg-base-100 p-2 flex items-center justify-between text-base-100-font text-sm font-semibold"
99
99
  >
100
100
  <slot name="title">
101
101
  {{ title }}
@@ -117,7 +117,7 @@ function confirmDialog() {
117
117
  </div>
118
118
 
119
119
  <div
120
- class="bg-neutral-100 p-2 gap-2 text-for-white-bg-font flex w-full justify-end"
120
+ class="bg-base-100 p-2 gap-2 text-for-white-bg-font flex w-full justify-end"
121
121
  >
122
122
  <slot name="footer">
123
123
  <AntButton
@@ -17,7 +17,7 @@ const meta = {
17
17
  }
18
18
  },
19
19
  decorators: [() => ({
20
- template: '<div class="border border-dashed border-neutral-300"><story/></div>'
20
+ template: '<div class="border border-dashed border-base-300"><story/></div>'
21
21
  })],
22
22
  argTypes: {
23
23
  state: {
@@ -5,7 +5,7 @@ const meta = {
5
5
  title: "Components/Dialogs/Dialog",
6
6
  component: AntDialog,
7
7
  parameters: { controls: { sort: "requiredFirst" } },
8
- decorators: [() => ({ template: '<div class="border border-dashed border-neutral-300"><story/></div>' })],
8
+ decorators: [() => ({ template: '<div class="border border-dashed border-base-300"><story/></div>' })],
9
9
  argTypes: {
10
10
  state: {
11
11
  control: { type: "select" },
@@ -49,7 +49,7 @@ const inputClasses = computed(() => {
49
49
  [InputState.warning]: 'text-warning-500',
50
50
  };
51
51
  const inactiveColorVariant: Record<InputState, string> = {
52
- [InputState.base]: 'outline-neutral-300',
52
+ [InputState.base]: 'outline-base-300',
53
53
  [InputState.danger]: 'outline-danger-500',
54
54
  [InputState.info]: 'outline-info-500',
55
55
  [InputState.success]: 'outline-success-500',
@@ -57,7 +57,7 @@ const inputClasses = computed(() => {
57
57
  };
58
58
 
59
59
  return {
60
- 'relative inline-flex flex-shrink-0 bg-neutral-100 border-0': true,
60
+ 'relative inline-flex flex-shrink-0 bg-base-100 border-0': true,
61
61
  'outline outline-1 outline-offset-[-1px] rounded': true,
62
62
  'focus:ring-offset-0': true,
63
63
  'invisible': props.skeleton,
@@ -95,7 +95,7 @@ function onClickCalendar() {
95
95
  :icon="_icon"
96
96
  :color="iconColor"
97
97
  :size="iconSize"
98
- :class="{'cursor-pointer': !disabled, 'opacity-50': disabled}"
98
+ :class="{'cursor-pointer': !disabled && !readonly, 'opacity-50': disabled}"
99
99
  @click="onClickCalendar"
100
100
  />
101
101
  </template>
@@ -51,7 +51,7 @@ const iconColor = computed(() => {
51
51
  case InputState.danger:
52
52
  return 'text-danger-700';
53
53
  default:
54
- return 'text-neutral-500';
54
+ return 'text-base-500';
55
55
  }
56
56
  });
57
57
 
@@ -47,7 +47,7 @@ const inputClasses = computed(() => {
47
47
  'rounded-full transition-colors ease-in-out duration-200 disabled:opacity-50': true,
48
48
  'focus:ring-2': !hasInputState.value && (props.size === Size.sm || props.size === Size.xs || props.size === Size.xs2),
49
49
  'focus:ring-4': !hasInputState.value && (props.size === Size.lg || props.size === Size.md),
50
- 'outline-neutral-300': props.state === InputState.base,
50
+ 'outline-base-300': props.state === InputState.base,
51
51
  'outline-primary-500': props.state === InputState.base && isActive.value,
52
52
  'outline-info-500': props.state === InputState.info,
53
53
  'outline-success-500': props.state === InputState.success,
@@ -30,7 +30,7 @@ const props = withDefaults(defineProps<{
30
30
  const _modelValue = useVModel(props, 'modelValue', emit);
31
31
  const inputClasses = computed(() => {
32
32
  const variants: Record<InputState, string> = {
33
- [InputState.base]: 'text-neutral-base',
33
+ [InputState.base]: 'text-base-base',
34
34
  [InputState.danger]: 'text-danger-base',
35
35
  [InputState.info]: 'text-info-base',
36
36
  [InputState.success]: 'text-success-base',
@@ -38,7 +38,7 @@ const inputClasses = computed(() => {
38
38
  };
39
39
 
40
40
  return {
41
- 'ant-range-slider transition-colors relative border-none w-full focus:z-10 h-2 bg-neutral-300 rounded-md outline-none': true,
41
+ 'ant-range-slider transition-colors relative border-none w-full focus:z-10 h-2 bg-base-300 rounded-md outline-none': true,
42
42
  'disabled:opacity-50 disabled:cursor-not-allowed': props.disabled,
43
43
  'invisible': props.skeleton,
44
44
  [variants[props.state]]: true