webcoreui 0.3.0 → 0.4.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 (127) hide show
  1. package/README.md +5 -2
  2. package/astro.d.ts +7 -1
  3. package/astro.js +6 -0
  4. package/components/Accordion/Accordion.astro +2 -0
  5. package/components/Accordion/Accordion.svelte +2 -0
  6. package/components/Accordion/Accordion.tsx +2 -0
  7. package/components/Alert/Alert.astro +3 -2
  8. package/components/Alert/Alert.svelte +4 -3
  9. package/components/Alert/Alert.tsx +3 -2
  10. package/components/Avatar/Avatar.astro +2 -1
  11. package/components/Avatar/Avatar.svelte +2 -1
  12. package/components/Avatar/Avatar.tsx +3 -3
  13. package/components/Badge/Badge.astro +1 -0
  14. package/components/Badge/Badge.svelte +3 -2
  15. package/components/Badge/Badge.tsx +2 -1
  16. package/components/Button/Button.astro +4 -5
  17. package/components/Button/Button.svelte +2 -1
  18. package/components/Button/Button.tsx +2 -1
  19. package/components/Button/button.ts +1 -1
  20. package/components/Card/Card.astro +11 -3
  21. package/components/Card/Card.svelte +5 -2
  22. package/components/Card/Card.tsx +5 -2
  23. package/components/Card/card.ts +1 -0
  24. package/components/Checkbox/Checkbox.astro +1 -0
  25. package/components/Checkbox/Checkbox.svelte +7 -5
  26. package/components/Checkbox/Checkbox.tsx +4 -2
  27. package/components/Collapsible/Collapsible.astro +2 -1
  28. package/components/Collapsible/Collapsible.svelte +2 -1
  29. package/components/Collapsible/Collapsible.tsx +55 -54
  30. package/components/ConditionalWrapper/ConditionalWrapper.astro +2 -1
  31. package/components/ConditionalWrapper/ConditionalWrapper.tsx +1 -2
  32. package/components/Group/Group.astro +22 -0
  33. package/components/Group/Group.svelte +20 -0
  34. package/components/Group/Group.tsx +22 -0
  35. package/components/Group/group.module.scss +43 -0
  36. package/components/Group/group.ts +8 -0
  37. package/components/Icon/map.ts +2 -0
  38. package/components/Input/Input.astro +8 -1
  39. package/components/Input/Input.svelte +15 -3
  40. package/components/Input/Input.tsx +10 -3
  41. package/components/Input/input.module.scss +4 -1
  42. package/components/Input/input.ts +9 -4
  43. package/components/List/List.astro +169 -0
  44. package/components/List/List.svelte +147 -0
  45. package/components/List/List.tsx +168 -0
  46. package/components/List/list.module.scss +91 -0
  47. package/components/List/list.ts +37 -0
  48. package/components/Menu/Menu.astro +2 -1
  49. package/components/Menu/Menu.svelte +7 -5
  50. package/components/Menu/Menu.tsx +116 -113
  51. package/components/Modal/Modal.astro +6 -4
  52. package/components/Modal/Modal.svelte +8 -6
  53. package/components/Modal/Modal.tsx +79 -76
  54. package/components/Modal/modal.ts +1 -0
  55. package/components/Popover/Popover.astro +4 -1
  56. package/components/Popover/Popover.svelte +4 -2
  57. package/components/Popover/Popover.tsx +55 -27
  58. package/components/Popover/popover.module.scss +1 -0
  59. package/components/Popover/popover.ts +2 -0
  60. package/components/Progress/Progress.astro +2 -1
  61. package/components/Progress/Progress.svelte +2 -1
  62. package/components/Progress/Progress.tsx +3 -2
  63. package/components/Radio/Radio.astro +1 -0
  64. package/components/Radio/Radio.svelte +4 -2
  65. package/components/Radio/Radio.tsx +3 -2
  66. package/components/Rating/Rating.astro +3 -1
  67. package/components/Rating/Rating.svelte +9 -7
  68. package/components/Rating/Rating.tsx +4 -2
  69. package/components/Select/Select.astro +135 -0
  70. package/components/Select/Select.svelte +122 -0
  71. package/components/Select/Select.tsx +142 -0
  72. package/components/Select/select.module.scss +25 -0
  73. package/components/Select/select.ts +21 -0
  74. package/components/Sheet/Sheet.astro +2 -1
  75. package/components/Sheet/Sheet.svelte +2 -1
  76. package/components/Sheet/Sheet.tsx +33 -32
  77. package/components/Slider/Slider.astro +2 -1
  78. package/components/Slider/Slider.svelte +2 -1
  79. package/components/Slider/Slider.tsx +49 -48
  80. package/components/Spinner/Spinner.astro +4 -3
  81. package/components/Spinner/Spinner.svelte +3 -2
  82. package/components/Spinner/Spinner.tsx +4 -3
  83. package/components/Switch/Switch.astro +2 -1
  84. package/components/Switch/Switch.svelte +5 -4
  85. package/components/Switch/Switch.tsx +2 -2
  86. package/components/Switch/switch.module.scss +1 -1
  87. package/components/Table/Table.astro +1 -0
  88. package/components/Table/Table.svelte +2 -1
  89. package/components/Table/Table.tsx +2 -1
  90. package/components/Tabs/Tabs.astro +2 -1
  91. package/components/Tabs/Tabs.svelte +2 -1
  92. package/components/Tabs/Tabs.tsx +4 -3
  93. package/components/Textarea/Textarea.astro +1 -0
  94. package/components/Textarea/Textarea.svelte +3 -1
  95. package/components/Textarea/Textarea.tsx +52 -50
  96. package/components/ThemeSwitcher/ThemeSwitcher.astro +108 -107
  97. package/components/ThemeSwitcher/ThemeSwitcher.svelte +5 -4
  98. package/components/ThemeSwitcher/ThemeSwitcher.tsx +91 -90
  99. package/components/Timeline/Timeline.astro +3 -2
  100. package/components/Timeline/Timeline.svelte +3 -2
  101. package/components/Timeline/Timeline.tsx +3 -2
  102. package/components/TimelineItem/TimelineItem.svelte +2 -1
  103. package/components/TimelineItem/TimelineItem.tsx +2 -1
  104. package/components/Toast/Toast.astro +3 -1
  105. package/components/Toast/Toast.svelte +3 -1
  106. package/components/Toast/Toast.tsx +3 -1
  107. package/icons/moon.svg +1 -1
  108. package/icons/search.svg +3 -0
  109. package/icons.d.ts +1 -0
  110. package/icons.js +1 -0
  111. package/index.d.ts +55 -25
  112. package/package.json +22 -4
  113. package/react.d.ts +6 -0
  114. package/react.js +6 -0
  115. package/scss/config/mixins.scss +12 -10
  116. package/scss/config/variables.scss +1 -0
  117. package/scss/config.scss +1 -0
  118. package/scss/global/utility.scss +2 -0
  119. package/svelte.d.ts +7 -1
  120. package/svelte.js +6 -0
  121. package/utils/cookies.ts +4 -4
  122. package/utils/debounce.ts +1 -1
  123. package/utils/event.ts +2 -2
  124. package/utils/interpolate.ts +5 -5
  125. package/utils/modal.ts +90 -27
  126. package/utils/popover.ts +30 -8
  127. package/utils/toast.ts +6 -2
package/utils/popover.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { closeModal } from './modal'
2
1
  import { debounce } from './debounce'
2
+ import { closeModal } from './modal'
3
3
 
4
- type PopoverPosition = 'top'
4
+ export type PopoverPosition = 'top'
5
5
  | 'top-start'
6
6
  | 'top-end'
7
7
  | 'left'
@@ -14,12 +14,20 @@ type PopoverPosition = 'top'
14
14
  | 'bottom-start'
15
15
  | 'bottom-end'
16
16
 
17
+ type Callback = {
18
+ trigger: HTMLElement
19
+ popover: HTMLElement
20
+ position: PopoverPosition | undefined
21
+ }
22
+
17
23
  type Popover = {
18
24
  trigger: string
19
25
  popover: string
20
26
  position?: PopoverPosition
21
27
  offset?: number
22
28
  closeOnBlur?: boolean
29
+ onOpen?: (args: Callback) => unknown
30
+ onClose?: (args: Callback) => unknown
23
31
  }
24
32
 
25
33
  export const popover = ({
@@ -27,12 +35,14 @@ export const popover = ({
27
35
  popover,
28
36
  position,
29
37
  offset = 10,
30
- closeOnBlur = true
38
+ closeOnBlur = true,
39
+ onOpen,
40
+ onClose
31
41
  }: Popover) => {
32
42
  const triggerDOM = document.querySelector(trigger) as HTMLElement
33
43
  const popoverDOM = document.querySelector(popover) as HTMLElement
34
44
 
35
- if (triggerDOM && popover) {
45
+ if (triggerDOM && popoverDOM) {
36
46
  document.body.appendChild(popoverDOM)
37
47
 
38
48
  if (position) {
@@ -48,7 +58,7 @@ export const popover = ({
48
58
  - popoverPosition.height
49
59
  - offset
50
60
 
51
- const bottomSide = triggerPosition.top
61
+ const bottomSide = triggerPosition.top
52
62
  + window.scrollY
53
63
  + triggerPosition.height
54
64
  + offset
@@ -128,10 +138,10 @@ export const popover = ({
128
138
  }
129
139
 
130
140
  const { top, left } = positions[position as keyof typeof positions] || positions.bottom
131
-
141
+
132
142
  popoverDOM.style.top = `${top}px`
133
143
  popoverDOM.style.left = `${left}px`
134
-
144
+
135
145
  setTimeout(() => {
136
146
  popoverDOM.dataset.show = popoverDOM.dataset.show === 'true'
137
147
  ? ''
@@ -143,6 +153,12 @@ export const popover = ({
143
153
  popoverDOM.removeAttribute('data-show')
144
154
  }
145
155
  }, 300)
156
+
157
+ onOpen?.({
158
+ trigger: triggerDOM,
159
+ popover: popoverDOM,
160
+ position
161
+ })
146
162
  }
147
163
 
148
164
  const handleClose = (event: MouseEvent) => {
@@ -153,6 +169,12 @@ export const popover = ({
153
169
 
154
170
  if (hidePopover) {
155
171
  popoverDOM.dataset.show = ''
172
+
173
+ onClose?.({
174
+ trigger: triggerDOM,
175
+ popover: popoverDOM,
176
+ position
177
+ })
156
178
  }
157
179
 
158
180
  setTimeout(() => {
@@ -187,7 +209,7 @@ export const popover = ({
187
209
 
188
210
  return {
189
211
  remove() {
190
- triggerDOM.removeEventListener('click', handleOpen);
212
+ triggerDOM.removeEventListener('click', handleOpen)
191
213
  observer.disconnect()
192
214
 
193
215
  if (closeOnBlur) {
package/utils/toast.ts CHANGED
@@ -35,13 +35,17 @@ export const toast = (config: Toast | string) => {
35
35
  if (title) {
36
36
  const titleElement = htmlElement.querySelector('[data-id="title"]')
37
37
 
38
- titleElement ? titleElement.innerHTML = title : null
38
+ if (titleElement) {
39
+ titleElement.innerHTML = title
40
+ }
39
41
  }
40
42
 
41
43
  if (content) {
42
44
  const contentElement = htmlElement.querySelector('[data-id="body"]')
43
45
 
44
- contentElement ? contentElement.innerHTML = content : null
46
+ if (contentElement) {
47
+ contentElement.innerHTML = content
48
+ }
45
49
  }
46
50
 
47
51
  setTimeout(() => {