@beeq/core 1.8.0-beta.11 → 1.8.0-beta.13
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.
- package/dist/beeq/beeq.esm.js +1 -1
- package/dist/beeq/{p-42fd96c3.entry.js → p-01050fbd.entry.js} +2 -2
- package/dist/beeq/{p-7bc123c9.entry.js → p-2951eb56.entry.js} +2 -2
- package/dist/beeq/{p-e8410587.entry.js → p-9a7ddcd2.entry.js} +2 -2
- package/dist/beeq/{p-b71d2d9a.entry.js → p-fc0af6bb.entry.js} +2 -2
- package/dist/cjs/bq-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/bq-dialog.cjs.entry.js +1 -1
- package/dist/cjs/bq-drawer.cjs.entry.js +1 -1
- package/dist/cjs/bq-select.cjs.entry.js +1 -1
- package/dist/collection/components/date-picker/scss/bq-date-picker.css +1 -1
- package/dist/collection/components/dialog/scss/bq-dialog.css +1 -1
- package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
- package/dist/collection/components/select/scss/bq-select.css +1 -1
- package/dist/components/bq-accordion-group.js +1 -114
- package/dist/components/bq-accordion-group.js.map +1 -1
- package/dist/components/bq-accordion.js +1 -311
- package/dist/components/bq-accordion.js.map +1 -1
- package/dist/components/bq-alert.js +1 -220
- package/dist/components/bq-alert.js.map +1 -1
- package/dist/components/bq-avatar.js +1 -139
- package/dist/components/bq-avatar.js.map +1 -1
- package/dist/components/bq-badge.js +1 -7
- package/dist/components/bq-badge.js.map +1 -1
- package/dist/components/bq-breadcrumb-item.js +1 -96
- package/dist/components/bq-breadcrumb-item.js.map +1 -1
- package/dist/components/bq-breadcrumb.js +1 -112
- package/dist/components/bq-breadcrumb.js.map +1 -1
- package/dist/components/bq-button.js +1 -7
- package/dist/components/bq-button.js.map +1 -1
- package/dist/components/bq-card.js +1 -86
- package/dist/components/bq-card.js.map +1 -1
- package/dist/components/bq-checkbox.js +1 -207
- package/dist/components/bq-checkbox.js.map +1 -1
- package/dist/components/bq-date-picker.js +1 -390
- package/dist/components/bq-date-picker.js.map +1 -1
- package/dist/components/bq-dialog.js +1 -252
- package/dist/components/bq-dialog.js.map +1 -1
- package/dist/components/bq-divider.js +1 -7
- package/dist/components/bq-divider.js.map +1 -1
- package/dist/components/bq-drawer.js +1 -249
- package/dist/components/bq-drawer.js.map +1 -1
- package/dist/components/bq-dropdown.js +1 -7
- package/dist/components/bq-dropdown.js.map +1 -1
- package/dist/components/bq-empty-state.js +1 -125
- package/dist/components/bq-empty-state.js.map +1 -1
- package/dist/components/bq-icon.js +1 -7
- package/dist/components/bq-icon.js.map +1 -1
- package/dist/components/bq-input.js +1 -266
- package/dist/components/bq-input.js.map +1 -1
- package/dist/components/bq-notification.js +1 -245
- package/dist/components/bq-notification.js.map +1 -1
- package/dist/components/bq-option-group.js +1 -64
- package/dist/components/bq-option-group.js.map +1 -1
- package/dist/components/bq-option-list.js +1 -7
- package/dist/components/bq-option-list.js.map +1 -1
- package/dist/components/bq-option.js +1 -137
- package/dist/components/bq-option.js.map +1 -1
- package/dist/components/bq-page-title.js +1 -82
- package/dist/components/bq-page-title.js.map +1 -1
- package/dist/components/bq-panel.js +1 -7
- package/dist/components/bq-panel.js.map +1 -1
- package/dist/components/bq-progress.js +1 -130
- package/dist/components/bq-progress.js.map +1 -1
- package/dist/components/bq-radio-group.js +1 -207
- package/dist/components/bq-radio-group.js.map +1 -1
- package/dist/components/bq-radio.js +1 -136
- package/dist/components/bq-radio.js.map +1 -1
- package/dist/components/bq-select.js +1 -452
- package/dist/components/bq-select.js.map +1 -1
- package/dist/components/bq-side-menu-item.js +1 -125
- package/dist/components/bq-side-menu-item.js.map +1 -1
- package/dist/components/bq-side-menu.js +1 -144
- package/dist/components/bq-side-menu.js.map +1 -1
- package/dist/components/bq-slider.js +1 -307
- package/dist/components/bq-slider.js.map +1 -1
- package/dist/components/bq-spinner.js +1 -167
- package/dist/components/bq-spinner.js.map +1 -1
- package/dist/components/bq-status.js +1 -82
- package/dist/components/bq-status.js.map +1 -1
- package/dist/components/bq-step-item.js +1 -119
- package/dist/components/bq-step-item.js.map +1 -1
- package/dist/components/bq-steps.js +1 -108
- package/dist/components/bq-steps.js.map +1 -1
- package/dist/components/bq-switch.js +1 -175
- package/dist/components/bq-switch.js.map +1 -1
- package/dist/components/bq-tab-group.js +1 -232
- package/dist/components/bq-tab-group.js.map +1 -1
- package/dist/components/bq-tab.js +1 -170
- package/dist/components/bq-tab.js.map +1 -1
- package/dist/components/bq-tag.js +1 -7
- package/dist/components/bq-tag.js.map +1 -1
- package/dist/components/bq-textarea.js +1 -210
- package/dist/components/bq-textarea.js.map +1 -1
- package/dist/components/bq-toast.js +1 -213
- package/dist/components/bq-toast.js.map +1 -1
- package/dist/components/bq-tooltip.js +1 -7
- package/dist/components/bq-tooltip.js.map +1 -1
- package/dist/components/index.js +1 -1246
- package/dist/components/index.js.map +1 -1
- package/dist/components/p-073153b0.js +6 -0
- package/dist/components/p-073153b0.js.map +1 -0
- package/dist/components/p-0b976755.js +6 -0
- package/dist/components/p-0b976755.js.map +1 -0
- package/dist/components/p-1a5d4394.js +6 -0
- package/dist/components/p-1a5d4394.js.map +1 -0
- package/dist/components/p-1c8b6eb4.js +6 -0
- package/dist/components/p-1c8b6eb4.js.map +1 -0
- package/dist/components/p-1defeea3.js +6 -0
- package/dist/components/p-1defeea3.js.map +1 -0
- package/dist/components/p-31df5ea1.js +6 -0
- package/dist/components/p-31df5ea1.js.map +1 -0
- package/dist/components/p-33c55e15.js +6 -0
- package/dist/components/p-33c55e15.js.map +1 -0
- package/dist/components/p-4299eebe.js +6 -0
- package/dist/components/p-4299eebe.js.map +1 -0
- package/dist/components/p-57621be1.js +6 -0
- package/dist/components/p-57621be1.js.map +1 -0
- package/dist/components/p-687da041.js +6 -0
- package/dist/components/p-687da041.js.map +1 -0
- package/dist/components/p-756ea6e3.js +6 -0
- package/dist/components/p-756ea6e3.js.map +1 -0
- package/dist/components/p-90b96691.js +6 -0
- package/dist/components/p-90b96691.js.map +1 -0
- package/dist/components/p-99829fc7.js +6 -0
- package/dist/components/p-99829fc7.js.map +1 -0
- package/dist/components/p-9e40fcc3.js +6 -0
- package/dist/components/p-9e40fcc3.js.map +1 -0
- package/dist/components/p-a5dc1c94.js +6 -0
- package/dist/components/p-a5dc1c94.js.map +1 -0
- package/dist/components/p-a8cad5ab.js +6 -0
- package/dist/components/p-a8cad5ab.js.map +1 -0
- package/dist/components/p-ac2aea4d.js +6 -0
- package/dist/components/p-ac2aea4d.js.map +1 -0
- package/dist/components/p-af062402.js +6 -0
- package/dist/components/p-af062402.js.map +1 -0
- package/dist/components/p-b8a8243f.js +7 -0
- package/dist/components/p-b8a8243f.js.map +1 -0
- package/dist/components/p-b9b47a5c.js +6 -0
- package/dist/components/p-b9b47a5c.js.map +1 -0
- package/dist/components/p-c78ae3c2.js +6 -0
- package/dist/components/p-c78ae3c2.js.map +1 -0
- package/dist/components/p-d7ce7165.js +6 -0
- package/dist/components/p-d7ce7165.js.map +1 -0
- package/dist/components/p-ecd27cf2.js +6 -0
- package/dist/components/p-ecd27cf2.js.map +1 -0
- package/dist/components/p-edfd9767.js +6 -0
- package/dist/components/p-edfd9767.js.map +1 -0
- package/dist/esm/bq-date-picker.entry.js +1 -1
- package/dist/esm/bq-dialog.entry.js +1 -1
- package/dist/esm/bq-drawer.entry.js +1 -1
- package/dist/esm/bq-select.entry.js +1 -1
- package/dist/hydrate/index.js +4 -4
- package/dist/hydrate/index.mjs +4 -4
- package/dist/stencil.config.js +4 -1
- package/dist/stencil.config.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/bq-badge2.js +0 -125
- package/dist/components/bq-badge2.js.map +0 -1
- package/dist/components/bq-button2.js +0 -208
- package/dist/components/bq-button2.js.map +0 -1
- package/dist/components/bq-divider2.js +0 -159
- package/dist/components/bq-divider2.js.map +0 -1
- package/dist/components/bq-dropdown2.js +0 -155
- package/dist/components/bq-dropdown2.js.map +0 -1
- package/dist/components/bq-icon2.js +0 -315
- package/dist/components/bq-icon2.js.map +0 -1
- package/dist/components/bq-option-list2.js +0 -76
- package/dist/components/bq-option-list2.js.map +0 -1
- package/dist/components/bq-panel2.js +0 -135
- package/dist/components/bq-panel2.js.map +0 -1
- package/dist/components/bq-steps.types.js +0 -10
- package/dist/components/bq-steps.types.js.map +0 -1
- package/dist/components/bq-tab.types.js +0 -11
- package/dist/components/bq-tab.types.js.map +0 -1
- package/dist/components/bq-tag2.js +0 -271
- package/dist/components/bq-tag2.js.map +0 -1
- package/dist/components/bq-tooltip2.js +0 -178
- package/dist/components/bq-tooltip2.js.map +0 -1
- package/dist/components/cssVariables.js +0 -34
- package/dist/components/cssVariables.js.map +0 -1
- package/dist/components/debounce.js +0 -73
- package/dist/components/debounce.js.map +0 -1
- package/dist/components/event.js +0 -18
- package/dist/components/event.js.map +0 -1
- package/dist/components/index2.js +0 -2138
- package/dist/components/index2.js.map +0 -1
- package/dist/components/isDefined.js +0 -19
- package/dist/components/isDefined.js.map +0 -1
- package/dist/components/isHTMLElement.js +0 -17
- package/dist/components/isHTMLElement.js.map +0 -1
- package/dist/components/isNil.js +0 -16
- package/dist/components/isNil.js.map +0 -1
- package/dist/components/isString.js +0 -21
- package/dist/components/isString.js.map +0 -1
- package/dist/components/props.js +0 -27
- package/dist/components/props.js.map +0 -1
- package/dist/components/slot.js +0 -85
- package/dist/components/slot.js.map +0 -1
- package/dist/components/transition.js +0 -131
- package/dist/components/transition.js.map +0 -1
- /package/dist/beeq/{p-42fd96c3.entry.js.map → p-01050fbd.entry.js.map} +0 -0
- /package/dist/beeq/{p-7bc123c9.entry.js.map → p-2951eb56.entry.js.map} +0 -0
- /package/dist/beeq/{p-e8410587.entry.js.map → p-9a7ddcd2.entry.js.map} +0 -0
- /package/dist/beeq/{p-b71d2d9a.entry.js.map → p-fc0af6bb.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}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|