@beeq/core 1.8.0-beta.11 → 1.8.0-beta.12

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 (214) hide show
  1. package/dist/beeq/beeq.esm.js +1 -1
  2. package/dist/beeq/{p-42fd96c3.entry.js → p-01050fbd.entry.js} +2 -2
  3. package/dist/beeq/{p-d4397119.entry.js → p-1bcb613a.entry.js} +2 -2
  4. package/dist/beeq/{p-7bc123c9.entry.js → p-2951eb56.entry.js} +2 -2
  5. package/dist/beeq/{p-b71d2d9a.entry.js → p-355bd718.entry.js} +2 -2
  6. package/dist/beeq/{p-e8410587.entry.js → p-9a7ddcd2.entry.js} +2 -2
  7. package/dist/beeq/{p-327cc47e.entry.js → p-c06ca46b.entry.js} +2 -2
  8. package/dist/cjs/bq-alert.cjs.entry.js +1 -1
  9. package/dist/cjs/bq-date-picker.cjs.entry.js +1 -1
  10. package/dist/cjs/bq-dialog.cjs.entry.js +1 -1
  11. package/dist/cjs/bq-drawer.cjs.entry.js +1 -1
  12. package/dist/cjs/bq-notification.cjs.entry.js +1 -1
  13. package/dist/cjs/bq-select.cjs.entry.js +1 -1
  14. package/dist/collection/components/alert/scss/bq-alert.css +1 -1
  15. package/dist/collection/components/date-picker/scss/bq-date-picker.css +1 -1
  16. package/dist/collection/components/dialog/scss/bq-dialog.css +1 -1
  17. package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
  18. package/dist/collection/components/notification/scss/bq-notification.css +1 -1
  19. package/dist/collection/components/select/scss/bq-select.css +1 -1
  20. package/dist/components/bq-accordion-group.js +1 -114
  21. package/dist/components/bq-accordion-group.js.map +1 -1
  22. package/dist/components/bq-accordion.js +1 -311
  23. package/dist/components/bq-accordion.js.map +1 -1
  24. package/dist/components/bq-alert.js +1 -220
  25. package/dist/components/bq-alert.js.map +1 -1
  26. package/dist/components/bq-avatar.js +1 -139
  27. package/dist/components/bq-avatar.js.map +1 -1
  28. package/dist/components/bq-badge.js +1 -7
  29. package/dist/components/bq-badge.js.map +1 -1
  30. package/dist/components/bq-breadcrumb-item.js +1 -96
  31. package/dist/components/bq-breadcrumb-item.js.map +1 -1
  32. package/dist/components/bq-breadcrumb.js +1 -112
  33. package/dist/components/bq-breadcrumb.js.map +1 -1
  34. package/dist/components/bq-button.js +1 -7
  35. package/dist/components/bq-button.js.map +1 -1
  36. package/dist/components/bq-card.js +1 -86
  37. package/dist/components/bq-card.js.map +1 -1
  38. package/dist/components/bq-checkbox.js +1 -207
  39. package/dist/components/bq-checkbox.js.map +1 -1
  40. package/dist/components/bq-date-picker.js +1 -390
  41. package/dist/components/bq-date-picker.js.map +1 -1
  42. package/dist/components/bq-dialog.js +1 -252
  43. package/dist/components/bq-dialog.js.map +1 -1
  44. package/dist/components/bq-divider.js +1 -7
  45. package/dist/components/bq-divider.js.map +1 -1
  46. package/dist/components/bq-drawer.js +1 -249
  47. package/dist/components/bq-drawer.js.map +1 -1
  48. package/dist/components/bq-dropdown.js +1 -7
  49. package/dist/components/bq-dropdown.js.map +1 -1
  50. package/dist/components/bq-empty-state.js +1 -125
  51. package/dist/components/bq-empty-state.js.map +1 -1
  52. package/dist/components/bq-icon.js +1 -7
  53. package/dist/components/bq-icon.js.map +1 -1
  54. package/dist/components/bq-input.js +1 -266
  55. package/dist/components/bq-input.js.map +1 -1
  56. package/dist/components/bq-notification.js +1 -245
  57. package/dist/components/bq-notification.js.map +1 -1
  58. package/dist/components/bq-option-group.js +1 -64
  59. package/dist/components/bq-option-group.js.map +1 -1
  60. package/dist/components/bq-option-list.js +1 -7
  61. package/dist/components/bq-option-list.js.map +1 -1
  62. package/dist/components/bq-option.js +1 -137
  63. package/dist/components/bq-option.js.map +1 -1
  64. package/dist/components/bq-page-title.js +1 -82
  65. package/dist/components/bq-page-title.js.map +1 -1
  66. package/dist/components/bq-panel.js +1 -7
  67. package/dist/components/bq-panel.js.map +1 -1
  68. package/dist/components/bq-progress.js +1 -130
  69. package/dist/components/bq-progress.js.map +1 -1
  70. package/dist/components/bq-radio-group.js +1 -207
  71. package/dist/components/bq-radio-group.js.map +1 -1
  72. package/dist/components/bq-radio.js +1 -136
  73. package/dist/components/bq-radio.js.map +1 -1
  74. package/dist/components/bq-select.js +1 -452
  75. package/dist/components/bq-select.js.map +1 -1
  76. package/dist/components/bq-side-menu-item.js +1 -125
  77. package/dist/components/bq-side-menu-item.js.map +1 -1
  78. package/dist/components/bq-side-menu.js +1 -144
  79. package/dist/components/bq-side-menu.js.map +1 -1
  80. package/dist/components/bq-slider.js +1 -307
  81. package/dist/components/bq-slider.js.map +1 -1
  82. package/dist/components/bq-spinner.js +1 -167
  83. package/dist/components/bq-spinner.js.map +1 -1
  84. package/dist/components/bq-status.js +1 -82
  85. package/dist/components/bq-status.js.map +1 -1
  86. package/dist/components/bq-step-item.js +1 -119
  87. package/dist/components/bq-step-item.js.map +1 -1
  88. package/dist/components/bq-steps.js +1 -108
  89. package/dist/components/bq-steps.js.map +1 -1
  90. package/dist/components/bq-switch.js +1 -175
  91. package/dist/components/bq-switch.js.map +1 -1
  92. package/dist/components/bq-tab-group.js +1 -232
  93. package/dist/components/bq-tab-group.js.map +1 -1
  94. package/dist/components/bq-tab.js +1 -170
  95. package/dist/components/bq-tab.js.map +1 -1
  96. package/dist/components/bq-tag.js +1 -7
  97. package/dist/components/bq-tag.js.map +1 -1
  98. package/dist/components/bq-textarea.js +1 -210
  99. package/dist/components/bq-textarea.js.map +1 -1
  100. package/dist/components/bq-toast.js +1 -213
  101. package/dist/components/bq-toast.js.map +1 -1
  102. package/dist/components/bq-tooltip.js +1 -7
  103. package/dist/components/bq-tooltip.js.map +1 -1
  104. package/dist/components/index.js +1 -1246
  105. package/dist/components/index.js.map +1 -1
  106. package/dist/components/p-073153b0.js +6 -0
  107. package/dist/components/p-073153b0.js.map +1 -0
  108. package/dist/components/p-0b976755.js +6 -0
  109. package/dist/components/p-0b976755.js.map +1 -0
  110. package/dist/components/p-1a5d4394.js +6 -0
  111. package/dist/components/p-1a5d4394.js.map +1 -0
  112. package/dist/components/p-1c8b6eb4.js +6 -0
  113. package/dist/components/p-1c8b6eb4.js.map +1 -0
  114. package/dist/components/p-1defeea3.js +6 -0
  115. package/dist/components/p-1defeea3.js.map +1 -0
  116. package/dist/components/p-31df5ea1.js +6 -0
  117. package/dist/components/p-31df5ea1.js.map +1 -0
  118. package/dist/components/p-33c55e15.js +6 -0
  119. package/dist/components/p-33c55e15.js.map +1 -0
  120. package/dist/components/p-4299eebe.js +6 -0
  121. package/dist/components/p-4299eebe.js.map +1 -0
  122. package/dist/components/p-57621be1.js +6 -0
  123. package/dist/components/p-57621be1.js.map +1 -0
  124. package/dist/components/p-687da041.js +6 -0
  125. package/dist/components/p-687da041.js.map +1 -0
  126. package/dist/components/p-756ea6e3.js +6 -0
  127. package/dist/components/p-756ea6e3.js.map +1 -0
  128. package/dist/components/p-90b96691.js +6 -0
  129. package/dist/components/p-90b96691.js.map +1 -0
  130. package/dist/components/p-99829fc7.js +6 -0
  131. package/dist/components/p-99829fc7.js.map +1 -0
  132. package/dist/components/p-9e40fcc3.js +6 -0
  133. package/dist/components/p-9e40fcc3.js.map +1 -0
  134. package/dist/components/p-a5dc1c94.js +6 -0
  135. package/dist/components/p-a5dc1c94.js.map +1 -0
  136. package/dist/components/p-a8cad5ab.js +6 -0
  137. package/dist/components/p-a8cad5ab.js.map +1 -0
  138. package/dist/components/p-ac2aea4d.js +6 -0
  139. package/dist/components/p-ac2aea4d.js.map +1 -0
  140. package/dist/components/p-af062402.js +6 -0
  141. package/dist/components/p-af062402.js.map +1 -0
  142. package/dist/components/p-b8a8243f.js +7 -0
  143. package/dist/components/p-b8a8243f.js.map +1 -0
  144. package/dist/components/p-b9b47a5c.js +6 -0
  145. package/dist/components/p-b9b47a5c.js.map +1 -0
  146. package/dist/components/p-c78ae3c2.js +6 -0
  147. package/dist/components/p-c78ae3c2.js.map +1 -0
  148. package/dist/components/p-d7ce7165.js +6 -0
  149. package/dist/components/p-d7ce7165.js.map +1 -0
  150. package/dist/components/p-ecd27cf2.js +6 -0
  151. package/dist/components/p-ecd27cf2.js.map +1 -0
  152. package/dist/components/p-edfd9767.js +6 -0
  153. package/dist/components/p-edfd9767.js.map +1 -0
  154. package/dist/esm/bq-alert.entry.js +1 -1
  155. package/dist/esm/bq-date-picker.entry.js +1 -1
  156. package/dist/esm/bq-dialog.entry.js +1 -1
  157. package/dist/esm/bq-drawer.entry.js +1 -1
  158. package/dist/esm/bq-notification.entry.js +1 -1
  159. package/dist/esm/bq-select.entry.js +1 -1
  160. package/dist/hydrate/index.js +6 -6
  161. package/dist/hydrate/index.mjs +6 -6
  162. package/dist/stencil.config.js +3 -1
  163. package/dist/stencil.config.js.map +1 -1
  164. package/package.json +1 -1
  165. package/dist/components/bq-badge2.js +0 -125
  166. package/dist/components/bq-badge2.js.map +0 -1
  167. package/dist/components/bq-button2.js +0 -208
  168. package/dist/components/bq-button2.js.map +0 -1
  169. package/dist/components/bq-divider2.js +0 -159
  170. package/dist/components/bq-divider2.js.map +0 -1
  171. package/dist/components/bq-dropdown2.js +0 -155
  172. package/dist/components/bq-dropdown2.js.map +0 -1
  173. package/dist/components/bq-icon2.js +0 -315
  174. package/dist/components/bq-icon2.js.map +0 -1
  175. package/dist/components/bq-option-list2.js +0 -76
  176. package/dist/components/bq-option-list2.js.map +0 -1
  177. package/dist/components/bq-panel2.js +0 -135
  178. package/dist/components/bq-panel2.js.map +0 -1
  179. package/dist/components/bq-steps.types.js +0 -10
  180. package/dist/components/bq-steps.types.js.map +0 -1
  181. package/dist/components/bq-tab.types.js +0 -11
  182. package/dist/components/bq-tab.types.js.map +0 -1
  183. package/dist/components/bq-tag2.js +0 -271
  184. package/dist/components/bq-tag2.js.map +0 -1
  185. package/dist/components/bq-tooltip2.js +0 -178
  186. package/dist/components/bq-tooltip2.js.map +0 -1
  187. package/dist/components/cssVariables.js +0 -34
  188. package/dist/components/cssVariables.js.map +0 -1
  189. package/dist/components/debounce.js +0 -73
  190. package/dist/components/debounce.js.map +0 -1
  191. package/dist/components/event.js +0 -18
  192. package/dist/components/event.js.map +0 -1
  193. package/dist/components/index2.js +0 -2138
  194. package/dist/components/index2.js.map +0 -1
  195. package/dist/components/isDefined.js +0 -19
  196. package/dist/components/isDefined.js.map +0 -1
  197. package/dist/components/isHTMLElement.js +0 -17
  198. package/dist/components/isHTMLElement.js.map +0 -1
  199. package/dist/components/isNil.js +0 -16
  200. package/dist/components/isNil.js.map +0 -1
  201. package/dist/components/isString.js +0 -21
  202. package/dist/components/isString.js.map +0 -1
  203. package/dist/components/props.js +0 -27
  204. package/dist/components/props.js.map +0 -1
  205. package/dist/components/slot.js +0 -85
  206. package/dist/components/slot.js.map +0 -1
  207. package/dist/components/transition.js +0 -131
  208. package/dist/components/transition.js.map +0 -1
  209. /package/dist/beeq/{p-42fd96c3.entry.js.map → p-01050fbd.entry.js.map} +0 -0
  210. /package/dist/beeq/{p-d4397119.entry.js.map → p-1bcb613a.entry.js.map} +0 -0
  211. /package/dist/beeq/{p-7bc123c9.entry.js.map → p-2951eb56.entry.js.map} +0 -0
  212. /package/dist/beeq/{p-b71d2d9a.entry.js.map → p-355bd718.entry.js.map} +0 -0
  213. /package/dist/beeq/{p-e8410587.entry.js.map → p-9a7ddcd2.entry.js.map} +0 -0
  214. /package/dist/beeq/{p-327cc47e.entry.js.map → p-c06ca46b.entry.js.map} +0 -0
@@ -1,131 +0,0 @@
1
- /*!
2
- * Built by Endavans
3
- * © https://beeq.design - Apache 2 License.
4
- */
5
- /* -------------------------------------------------------------------------- */
6
- /* Credits to MikeMcCall for the original implementation */
7
- /* Github: https://github.com/mmccall10/el-transition */
8
- /* -------------------------------------------------------------------------- */
9
- /**
10
- * Transition an element entry
11
- *
12
- * @param element The element to enter
13
- * @param transitionName The name of the transition
14
- * @returns A promise that resolves when the transition is complete
15
- */
16
- const enter = async (element, transitionName = null) => {
17
- element.classList.remove('hidden');
18
- await transition('enter', element, transitionName);
19
- };
20
- /**
21
- * Transition an element exit
22
- *
23
- * @param element The element to leave
24
- * @param transitionName The name of the transition
25
- * @returns A promise that resolves when the transition is complete
26
- */
27
- const leave = async (element, transitionName = null) => {
28
- await transition('leave', element, transitionName);
29
- element.classList.add('hidden');
30
- };
31
- /**
32
- * Toggle an element entry/exit
33
- *
34
- * @param element The element to toggle
35
- * @param transitionName The name of the transition
36
- * @returns A promise that resolves when the transition is complete
37
- */
38
- const toggle = async (element, transitionName = null) => {
39
- if (element.classList.contains('hidden')) {
40
- await enter(element, transitionName);
41
- }
42
- else {
43
- await leave(element, transitionName);
44
- }
45
- };
46
- /**
47
- * Perform a transition on an element
48
- *
49
- * @param direction The direction of the transition
50
- * @param element The element to transition
51
- * @param animation The animation to use
52
- * @returns A promise that resolves when the transition is complete
53
- * @internal
54
- */
55
- const transition = async (direction, element, animation) => {
56
- const { dataset } = element;
57
- const animationClass = animation ? `${animation}-${direction}` : direction;
58
- const transitionKey = `transition${direction.charAt(0).toUpperCase() + direction.slice(1)}`;
59
- // Get the genesis, start, and end classes
60
- const genesisClasses = getDatasetValueOrDefault(dataset, transitionKey, animationClass);
61
- const startClasses = getDatasetValueOrDefault(dataset, `${transitionKey}Start`, `${animationClass}-start`);
62
- const endClasses = getDatasetValueOrDefault(dataset, `${transitionKey}End`, `${animationClass}-end`);
63
- // Add genesis and start classes, then wait for the next frame
64
- addClasses(element, genesisClasses);
65
- addClasses(element, startClasses);
66
- await nextFrame();
67
- // Replace start classes with end classes, then wait for the transition to finish
68
- removeClasses(element, startClasses);
69
- addClasses(element, endClasses);
70
- await afterTransition(element);
71
- // Remove end and genesis classes
72
- removeClasses(element, endClasses);
73
- removeClasses(element, genesisClasses);
74
- };
75
- /**
76
- * Get the value of a dataset key or a default value
77
- *
78
- * @param dataset The dataset to get the value from
79
- * @param key The key to get the value for
80
- * @param defaultValue The default value to return if the key is not found
81
- * @returns The value of the dataset key or the default value
82
- * @internal
83
- */
84
- const getDatasetValueOrDefault = (dataset, key, defaultValue) => {
85
- return dataset[key] ? dataset[key].split(' ') : [defaultValue];
86
- };
87
- /**
88
- * Add classes to an element
89
- *
90
- * @param element The element to add the CSS classes to
91
- * @param classes The classes to add
92
- * @internal
93
- */
94
- const addClasses = (element, classes) => {
95
- element.classList.add(...classes);
96
- };
97
- /**
98
- * Remove classes from an element
99
- *
100
- * @param element The element to remove the CSS classes from
101
- * @param classes The classes to remove
102
- * @internal
103
- */
104
- const removeClasses = (element, classes) => {
105
- element.classList.remove(...classes);
106
- };
107
- /**
108
- * Wait for the next frame
109
- * @returns A promise that resolves when the next frame is available
110
- * @internal
111
- */
112
- const nextFrame = () => {
113
- return new Promise((resolve) => {
114
- requestAnimationFrame(() => {
115
- requestAnimationFrame(() => resolve());
116
- });
117
- });
118
- };
119
- /**
120
- * Wait for all animations to finish
121
- * @param element The element to wait for
122
- * @returns A promise that resolves when all animations are finished
123
- * @internal
124
- */
125
- const afterTransition = (element) => {
126
- return Promise.all(element.getAnimations().map((animation) => animation.finished));
127
- };
128
-
129
- export { enter as e, leave as l, toggle as t };
130
-
131
- //# sourceMappingURL=transition.js.map
@@ -1 +0,0 @@
1
- {"file":"transition.js","mappings":"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","names":[],"sources":["../../packages/beeq/src/shared/utils/transition.ts"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Credits to MikeMcCall for the original implementation */\n/* Github: https://github.com/mmccall10/el-transition */\n/* -------------------------------------------------------------------------- */\n\ninterface HTMLElementWithAnimations extends HTMLElement {\n getAnimations(): Animation[];\n}\n\n/**\n * Transition an element entry\n *\n * @param element The element to enter\n * @param transitionName The name of the transition\n * @returns A promise that resolves when the transition is complete\n */\nexport const enter = async (element: HTMLElement, transitionName: string | null = null): Promise<void> => {\n element.classList.remove('hidden');\n await transition('enter', element, transitionName);\n};\n\n/**\n * Transition an element exit\n *\n * @param element The element to leave\n * @param transitionName The name of the transition\n * @returns A promise that resolves when the transition is complete\n */\nexport const leave = async (element: HTMLElement, transitionName: string | null = null): Promise<void> => {\n await transition('leave', element, transitionName);\n element.classList.add('hidden');\n};\n\n/**\n * Toggle an element entry/exit\n *\n * @param element The element to toggle\n * @param transitionName The name of the transition\n * @returns A promise that resolves when the transition is complete\n */\nexport const toggle = async (element: HTMLElement, transitionName: string | null = null): Promise<void> => {\n if (element.classList.contains('hidden')) {\n await enter(element, transitionName);\n } else {\n await leave(element, transitionName);\n }\n};\n\n/**\n * Perform a transition on an element\n *\n * @param direction The direction of the transition\n * @param element The element to transition\n * @param animation The animation to use\n * @returns A promise that resolves when the transition is complete\n * @internal\n */\nconst transition = async (direction: string, element: HTMLElement, animation: string | null): Promise<void> => {\n const { dataset } = element;\n const animationClass = animation ? `${animation}-${direction}` : direction;\n const transitionKey = `transition${direction.charAt(0).toUpperCase() + direction.slice(1)}`;\n\n // Get the genesis, start, and end classes\n const genesisClasses = getDatasetValueOrDefault(dataset, transitionKey, animationClass);\n const startClasses = getDatasetValueOrDefault(dataset, `${transitionKey}Start`, `${animationClass}-start`);\n const endClasses = getDatasetValueOrDefault(dataset, `${transitionKey}End`, `${animationClass}-end`);\n\n // Add genesis and start classes, then wait for the next frame\n addClasses(element, genesisClasses);\n addClasses(element, startClasses);\n await nextFrame();\n\n // Replace start classes with end classes, then wait for the transition to finish\n removeClasses(element, startClasses);\n addClasses(element, endClasses);\n await afterTransition(element as HTMLElementWithAnimations);\n\n // Remove end and genesis classes\n removeClasses(element, endClasses);\n removeClasses(element, genesisClasses);\n};\n\n/**\n * Get the value of a dataset key or a default value\n *\n * @param dataset The dataset to get the value from\n * @param key The key to get the value for\n * @param defaultValue The default value to return if the key is not found\n * @returns The value of the dataset key or the default value\n * @internal\n */\nconst getDatasetValueOrDefault = (dataset: DOMStringMap, key: string, defaultValue: string): string[] => {\n return dataset[key] ? dataset[key].split(' ') : [defaultValue];\n};\n\n/**\n * Add classes to an element\n *\n * @param element The element to add the CSS classes to\n * @param classes The classes to add\n * @internal\n */\nconst addClasses = (element: HTMLElement, classes: string[]): void => {\n element.classList.add(...classes);\n};\n\n/**\n * Remove classes from an element\n *\n * @param element The element to remove the CSS classes from\n * @param classes The classes to remove\n * @internal\n */\nconst removeClasses = (element: HTMLElement, classes: string[]): void => {\n element.classList.remove(...classes);\n};\n\n/**\n * Wait for the next frame\n * @returns A promise that resolves when the next frame is available\n * @internal\n */\nconst nextFrame = (): Promise<void> => {\n return new Promise((resolve) => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => resolve());\n });\n });\n};\n\n/**\n * Wait for all animations to finish\n * @param element The element to wait for\n * @returns A promise that resolves when all animations are finished\n * @internal\n */\nconst afterTransition = (element: HTMLElementWithAnimations): Promise<Animation[]> => {\n return Promise.all(element.getAnimations().map((animation) => animation.finished));\n};\n"],"version":3}