@shoper/phoenix_design_system 1.0.0 → 1.0.2

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 (199) hide show
  1. package/build/cjs/external/lit/external/lit-html/directive.js +14 -0
  2. package/build/cjs/external/lit/external/lit-html/directive.js.map +1 -0
  3. package/build/cjs/external/lit/external/lit-html/lit-html.js +14 -0
  4. package/build/cjs/external/lit/external/lit-html/lit-html.js.map +1 -0
  5. package/build/cjs/packages/phoenix/src/components/color_swatches/color_item/color_item.js +70 -0
  6. package/build/cjs/packages/phoenix/src/components/color_swatches/color_item/color_item.js.map +1 -0
  7. package/build/cjs/packages/phoenix/src/components/color_swatches/color_item/color_item_constants.js +12 -0
  8. package/build/cjs/packages/phoenix/src/components/color_swatches/color_item/color_item_constants.js.map +1 -0
  9. package/build/cjs/packages/phoenix/src/components/color_swatches/color_swatches.js +115 -0
  10. package/build/cjs/packages/phoenix/src/components/color_swatches/color_swatches.js.map +1 -0
  11. package/build/cjs/packages/phoenix/src/components/color_swatches/color_swatches_constants.js +22 -0
  12. package/build/cjs/packages/phoenix/src/components/color_swatches/color_swatches_constants.js.map +1 -0
  13. package/build/cjs/packages/phoenix/src/components/color_swatches/show-more/show_more.js +38 -0
  14. package/build/cjs/packages/phoenix/src/components/color_swatches/show-more/show_more.js.map +1 -0
  15. package/build/cjs/packages/phoenix/src/components/color_swatches/show-more/show_more_constants.js +12 -0
  16. package/build/cjs/packages/phoenix/src/components/color_swatches/show-more/show_more_constants.js.map +1 -0
  17. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +56 -32
  18. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  19. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_constants.js +0 -2
  20. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_constants.js.map +1 -1
  21. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js +26 -6
  22. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js.map +1 -1
  23. package/build/cjs/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js +75 -0
  24. package/build/cjs/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js.map +1 -0
  25. package/build/cjs/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control_constants.js +13 -0
  26. package/build/cjs/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control_constants.js.map +1 -0
  27. package/build/cjs/packages/phoenix/src/components/form/input/input_icon.js +4 -9
  28. package/build/cjs/packages/phoenix/src/components/form/input/input_icon.js.map +1 -1
  29. package/build/cjs/packages/phoenix/src/components/icon/icon.js +64 -0
  30. package/build/cjs/packages/phoenix/src/components/icon/icon.js.map +1 -0
  31. package/build/cjs/packages/phoenix/src/components/icon/icon_constants.js +14 -1
  32. package/build/cjs/packages/phoenix/src/components/icon/icon_constants.js.map +1 -1
  33. package/build/cjs/packages/phoenix/src/components/messages/base_message.js +155 -0
  34. package/build/cjs/packages/phoenix/src/components/messages/base_message.js.map +1 -0
  35. package/build/cjs/packages/phoenix/src/components/messages/base_message_constants.js +27 -0
  36. package/build/cjs/packages/phoenix/src/components/messages/base_message_constants.js.map +1 -0
  37. package/build/cjs/packages/phoenix/src/components/messages/base_message_content.js +32 -0
  38. package/build/cjs/packages/phoenix/src/components/messages/base_message_content.js.map +1 -0
  39. package/build/cjs/packages/phoenix/src/components/messages/hints/hint.js +34 -0
  40. package/build/cjs/packages/phoenix/src/components/messages/hints/hint.js.map +1 -0
  41. package/build/cjs/packages/phoenix/src/components/messages/hints/hint_constants.js +16 -0
  42. package/build/cjs/packages/phoenix/src/components/messages/hints/hint_constants.js.map +1 -0
  43. package/build/cjs/packages/phoenix/src/components/messages/hints/hint_content.js +19 -0
  44. package/build/cjs/packages/phoenix/src/components/messages/hints/hint_content.js.map +1 -0
  45. package/build/cjs/packages/phoenix/src/components/messages/tooltips/tooltip.js +29 -0
  46. package/build/cjs/packages/phoenix/src/components/messages/tooltips/tooltip.js.map +1 -0
  47. package/build/cjs/packages/phoenix/src/components/messages/tooltips/tooltip_constants.js +14 -0
  48. package/build/cjs/packages/phoenix/src/components/messages/tooltips/tooltip_constants.js.map +1 -0
  49. package/build/cjs/packages/phoenix/src/components/messages/tooltips/tooltip_content.js +19 -0
  50. package/build/cjs/packages/phoenix/src/components/messages/tooltips/tooltip_content.js.map +1 -0
  51. package/build/cjs/packages/phoenix/src/components/portal/portal_constants.js +3 -1
  52. package/build/cjs/packages/phoenix/src/components/portal/portal_constants.js.map +1 -1
  53. package/build/cjs/packages/phoenix/src/components/tabs/tabs.js +2 -1
  54. package/build/cjs/packages/phoenix/src/components/tabs/tabs.js.map +1 -1
  55. package/build/cjs/packages/phoenix/src/components/tag/tag.js +47 -0
  56. package/build/cjs/packages/phoenix/src/components/tag/tag.js.map +1 -0
  57. package/build/cjs/packages/phoenix/src/components/tag/tag_constants.js +20 -0
  58. package/build/cjs/packages/phoenix/src/components/tag/tag_constants.js.map +1 -0
  59. package/build/cjs/packages/phoenix/src/components/tag/tag_remove_button.js +29 -0
  60. package/build/cjs/packages/phoenix/src/components/tag/tag_remove_button.js.map +1 -0
  61. package/build/cjs/packages/phoenix/src/controllers/btn_controller.js +1 -1
  62. package/build/cjs/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js +44 -8
  63. package/build/cjs/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js.map +1 -1
  64. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js +1 -1
  65. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_constants.js +22 -2
  66. package/build/cjs/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_constants.js.map +1 -1
  67. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +11 -4
  68. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  69. package/build/cjs/packages/phoenix/src/directives/namespaced_attribure_directive.js +22 -0
  70. package/build/cjs/packages/phoenix/src/directives/namespaced_attribure_directive.js.map +1 -0
  71. package/build/cjs/packages/phoenix/src/index.js +77 -0
  72. package/build/cjs/packages/phoenix/src/index.js.map +1 -1
  73. package/build/esm/external/lit/external/lit-html/directive.js +9 -0
  74. package/build/esm/external/lit/external/lit-html/directive.js.map +1 -0
  75. package/build/esm/external/lit/external/lit-html/lit-html.js +9 -0
  76. package/build/esm/external/lit/external/lit-html/lit-html.js.map +1 -0
  77. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item.d.ts +14 -0
  78. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item.js +68 -0
  79. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item.js.map +1 -0
  80. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item_constants.d.ts +4 -0
  81. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item_constants.js +7 -0
  82. package/build/esm/packages/phoenix/src/{controllers/keystrokes_controller/keystrokes_controller_constants.js.map → components/color_swatches/color_item/color_item_constants.js.map} +1 -1
  83. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item_types.d.ts +5 -0
  84. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item_types.js +2 -0
  85. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item_types.js.map +1 -0
  86. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches.d.ts +21 -0
  87. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches.js +113 -0
  88. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches.js.map +1 -0
  89. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches_constants.d.ts +11 -0
  90. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches_constants.js +15 -0
  91. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches_constants.js.map +1 -0
  92. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches_types.d.ts +3 -0
  93. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches_types.js +2 -0
  94. package/build/esm/packages/phoenix/src/components/color_swatches/color_swatches_types.js.map +1 -0
  95. package/build/esm/packages/phoenix/src/components/color_swatches/show-more/show_more.d.ts +9 -0
  96. package/build/esm/packages/phoenix/src/components/color_swatches/show-more/show_more.js +36 -0
  97. package/build/esm/packages/phoenix/src/components/color_swatches/show-more/show_more.js.map +1 -0
  98. package/build/esm/packages/phoenix/src/components/color_swatches/show-more/show_more_constants.d.ts +4 -0
  99. package/build/esm/packages/phoenix/src/components/color_swatches/show-more/show_more_constants.js +7 -0
  100. package/build/esm/packages/phoenix/src/components/color_swatches/show-more/show_more_constants.js.map +1 -0
  101. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.d.ts +9 -6
  102. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +57 -33
  103. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js.map +1 -1
  104. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_constants.d.ts +0 -1
  105. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_constants.js +1 -2
  106. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_constants.js.map +1 -1
  107. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.d.ts +3 -0
  108. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js +27 -7
  109. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js.map +1 -1
  110. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_types.d.ts +4 -0
  111. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_types.js +2 -1
  112. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_types.js.map +1 -1
  113. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.d.ts +14 -0
  114. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js +73 -0
  115. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js.map +1 -0
  116. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control_constants.d.ts +5 -0
  117. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control_constants.js +9 -0
  118. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control_constants.js.map +1 -0
  119. package/build/esm/packages/phoenix/src/components/form/input/input_icon.d.ts +0 -1
  120. package/build/esm/packages/phoenix/src/components/form/input/input_icon.js +4 -9
  121. package/build/esm/packages/phoenix/src/components/form/input/input_icon.js.map +1 -1
  122. package/build/esm/packages/phoenix/src/components/groups/toggle_button_group/toggle_button.d.ts +1 -1
  123. package/build/esm/packages/phoenix/src/components/icon/icon.d.ts +14 -0
  124. package/build/esm/packages/phoenix/src/components/icon/icon.js +62 -0
  125. package/build/esm/packages/phoenix/src/components/icon/icon.js.map +1 -0
  126. package/build/esm/packages/phoenix/src/components/icon/icon_constants.d.ts +13 -0
  127. package/build/esm/packages/phoenix/src/components/icon/icon_constants.js +14 -2
  128. package/build/esm/packages/phoenix/src/components/icon/icon_constants.js.map +1 -1
  129. package/build/esm/packages/phoenix/src/components/messages/base_message.d.ts +27 -0
  130. package/build/esm/packages/phoenix/src/components/messages/base_message.js +151 -0
  131. package/build/esm/packages/phoenix/src/components/messages/base_message.js.map +1 -0
  132. package/build/esm/packages/phoenix/src/components/messages/base_message_constants.d.ts +9 -0
  133. package/build/esm/packages/phoenix/src/components/messages/base_message_constants.js +15 -0
  134. package/build/esm/packages/phoenix/src/components/messages/base_message_constants.js.map +1 -0
  135. package/build/esm/packages/phoenix/src/components/messages/base_message_content.d.ts +6 -0
  136. package/build/esm/packages/phoenix/src/components/messages/base_message_content.js +28 -0
  137. package/build/esm/packages/phoenix/src/components/messages/base_message_content.js.map +1 -0
  138. package/build/esm/packages/phoenix/src/components/messages/base_message_types.d.ts +4 -0
  139. package/build/esm/packages/phoenix/src/components/messages/base_message_types.js +2 -0
  140. package/build/esm/packages/phoenix/src/components/messages/base_message_types.js.map +1 -0
  141. package/build/esm/packages/phoenix/src/components/messages/hints/hint.d.ts +7 -0
  142. package/build/esm/packages/phoenix/src/components/messages/hints/hint.js +32 -0
  143. package/build/esm/packages/phoenix/src/components/messages/hints/hint.js.map +1 -0
  144. package/build/esm/packages/phoenix/src/components/messages/hints/hint_constants.d.ts +6 -0
  145. package/build/esm/packages/phoenix/src/components/messages/hints/hint_constants.js +8 -0
  146. package/build/{cjs/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller_constants.js.map → esm/packages/phoenix/src/components/messages/hints/hint_constants.js.map} +0 -0
  147. package/build/esm/packages/phoenix/src/components/messages/hints/hint_content.d.ts +4 -0
  148. package/build/esm/packages/phoenix/src/components/messages/hints/hint_content.js +17 -0
  149. package/build/esm/packages/phoenix/src/components/messages/hints/hint_content.js.map +1 -0
  150. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip.d.ts +6 -0
  151. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip.js +27 -0
  152. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip.js.map +1 -0
  153. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip_constants.d.ts +4 -0
  154. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip_constants.js +7 -0
  155. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip_constants.js.map +1 -0
  156. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip_content.d.ts +4 -0
  157. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip_content.js +17 -0
  158. package/build/esm/packages/phoenix/src/components/messages/tooltips/tooltip_content.js.map +1 -0
  159. package/build/esm/packages/phoenix/src/components/portal/portal_constants.d.ts +1 -0
  160. package/build/esm/packages/phoenix/src/components/portal/portal_constants.js +3 -2
  161. package/build/esm/packages/phoenix/src/components/portal/portal_constants.js.map +1 -1
  162. package/build/esm/packages/phoenix/src/components/tabs/tabs.d.ts +1 -0
  163. package/build/esm/packages/phoenix/src/components/tabs/tabs.js +2 -1
  164. package/build/esm/packages/phoenix/src/components/tabs/tabs.js.map +1 -1
  165. package/build/esm/packages/phoenix/src/components/tag/tag.d.ts +9 -0
  166. package/build/esm/packages/phoenix/src/components/tag/tag.js +45 -0
  167. package/build/esm/packages/phoenix/src/components/tag/tag.js.map +1 -0
  168. package/build/esm/packages/phoenix/src/components/tag/tag_constants.d.ts +10 -0
  169. package/build/esm/packages/phoenix/src/components/tag/tag_constants.js +14 -0
  170. package/build/esm/packages/phoenix/src/components/tag/tag_constants.js.map +1 -0
  171. package/build/esm/packages/phoenix/src/components/tag/tag_remove_button.d.ts +7 -0
  172. package/build/esm/packages/phoenix/src/components/tag/tag_remove_button.js +27 -0
  173. package/build/esm/packages/phoenix/src/components/tag/tag_remove_button.js.map +1 -0
  174. package/build/esm/packages/phoenix/src/controllers/btn_controller.js +1 -1
  175. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.d.ts +8 -2
  176. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js +44 -8
  177. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js.map +1 -1
  178. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller_types.d.ts +1 -1
  179. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator_types.js +4 -0
  180. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_calculator_types.js.map +1 -0
  181. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller.js +1 -1
  182. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_constants.d.ts +34 -0
  183. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_constants.js +20 -3
  184. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_constants.js.map +1 -1
  185. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_types.js +2 -1
  186. package/build/esm/packages/phoenix/src/controllers/relative_position_controller/relative_position_controller_types.js.map +1 -1
  187. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.d.ts +5 -2
  188. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +11 -4
  189. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  190. package/build/esm/packages/phoenix/src/directives/namespaced_attribure_directive.d.ts +8 -0
  191. package/build/esm/packages/phoenix/src/directives/namespaced_attribure_directive.js +18 -0
  192. package/build/esm/packages/phoenix/src/directives/namespaced_attribure_directive.js.map +1 -0
  193. package/build/esm/packages/phoenix/src/index.d.ts +11 -0
  194. package/build/esm/packages/phoenix/src/index.js +11 -0
  195. package/build/esm/packages/phoenix/src/index.js.map +1 -1
  196. package/package.json +2 -2
  197. package/build/cjs/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller_constants.js +0 -8
  198. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller_constants.d.ts +0 -1
  199. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller_constants.js +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,5 @@
1
+ export declare type TColorItemConstructorOptions = {
2
+ color: string;
3
+ label: string;
4
+ disabled: boolean;
5
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=color_item_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color_item_types.js","sourceRoot":"","sources":["../../../../../../../../src/components/color_swatches/color_item/color_item_types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import { HColorItem } from "./color_item/color_item";
2
+ import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
3
+ export declare class HColorSwatches extends PhoenixLightLitElement {
4
+ multiple: boolean;
5
+ numberOfVisibleColors: number;
6
+ selectedColors: HColorItem[];
7
+ connectedCallback(): void;
8
+ private _addCssClasses;
9
+ private _hideItems;
10
+ private _showAllItemsEvent;
11
+ private _setupEvents;
12
+ private _handleColorClicked;
13
+ private _handleColorClickedForMultipleMode;
14
+ private _handleColorClickedForSingleMode;
15
+ private _toggleSelectedAttribute;
16
+ private _isColorAlreadyExistInArray;
17
+ private _removeExistingColorFromArray;
18
+ private _dispatchColorSelectEvent;
19
+ private _setColorsDispatchValue;
20
+ private _getOnlyColorValues;
21
+ }
@@ -0,0 +1,113 @@
1
+ import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
+ import { property, state } from 'lit/decorators';
3
+ import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
4
+ import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
5
+ import { COLOR_SWATCHES_EVENT_NAMES, COLOR_ITEM_TAG_NAME, COLOR_SWATCHES_CSS_CLASSES, COLOR_SWATCHES_HIDDEN_ATTRIBUTE } from './color_swatches_constants.js';
6
+ import { COLOR_ITEM_EVENT_NAMES, COLOR_ITEM_SELECTED_ATTRIBUTE } from './color_item/color_item_constants.js';
7
+ import { SHOW_MORE_EVENT_NAMES } from './show-more/show_more_constants.js';
8
+
9
+ let HColorSwatches = class HColorSwatches extends PhoenixLightLitElement {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.multiple = false;
13
+ this.selectedColors = [];
14
+ this._handleColorClicked = ({ target }) => {
15
+ const $colorItem = target;
16
+ this.multiple ? this._handleColorClickedForMultipleMode($colorItem) : this._handleColorClickedForSingleMode($colorItem);
17
+ };
18
+ this._dispatchColorSelectEvent = () => {
19
+ const detail = {
20
+ colors: this._setColorsDispatchValue(this.selectedColors)
21
+ };
22
+ this.dispatchEvent(new CustomEvent(COLOR_SWATCHES_EVENT_NAMES.selected, {
23
+ bubbles: true,
24
+ detail
25
+ }));
26
+ };
27
+ }
28
+ connectedCallback() {
29
+ super.connectedCallback();
30
+ this._setupEvents();
31
+ this._addCssClasses();
32
+ this.numberOfVisibleColors && this._hideItems(this.numberOfVisibleColors);
33
+ this._showAllItemsEvent();
34
+ }
35
+ _addCssClasses() {
36
+ this.querySelectorAll(COLOR_ITEM_TAG_NAME).forEach(($colorItem) => $colorItem.classList.add(COLOR_SWATCHES_CSS_CLASSES.colorSwatchesItem));
37
+ this.classList.add(COLOR_SWATCHES_CSS_CLASSES.colorSwatches);
38
+ }
39
+ _hideItems(numberOfVisibleColors) {
40
+ this.querySelectorAll(COLOR_ITEM_TAG_NAME).forEach(($colorItem, index) => {
41
+ if (index > numberOfVisibleColors - 1) {
42
+ $colorItem.setAttribute(COLOR_SWATCHES_HIDDEN_ATTRIBUTE, '');
43
+ }
44
+ });
45
+ }
46
+ _showAllItemsEvent() {
47
+ this.addEventListener(SHOW_MORE_EVENT_NAMES.showMore, () => {
48
+ var _a;
49
+ this.querySelectorAll(COLOR_ITEM_TAG_NAME).forEach(($colorItem) => {
50
+ $colorItem.removeAttribute(COLOR_SWATCHES_HIDDEN_ATTRIBUTE);
51
+ });
52
+ (_a = this.querySelector('h-color-swatches-show-more')) === null || _a === void 0 ? void 0 : _a.setAttribute(COLOR_SWATCHES_HIDDEN_ATTRIBUTE, '');
53
+ });
54
+ }
55
+ _setupEvents() {
56
+ this.addEventListener(COLOR_ITEM_EVENT_NAMES.selected, this._handleColorClicked);
57
+ }
58
+ _handleColorClickedForMultipleMode($colorItem) {
59
+ !this._isColorAlreadyExistInArray($colorItem)
60
+ ? (this.selectedColors = [...this.selectedColors, $colorItem])
61
+ : this._removeExistingColorFromArray($colorItem);
62
+ this._toggleSelectedAttribute($colorItem);
63
+ this._dispatchColorSelectEvent();
64
+ }
65
+ _handleColorClickedForSingleMode($colorItem) {
66
+ const $previouslySelected = this.selectedColors[0];
67
+ this._toggleSelectedAttribute($colorItem);
68
+ if ($previouslySelected && $previouslySelected !== $colorItem)
69
+ $previouslySelected.removeAttribute(COLOR_ITEM_SELECTED_ATTRIBUTE);
70
+ this.selectedColors = $previouslySelected === $colorItem ? [] : [$colorItem];
71
+ this._dispatchColorSelectEvent();
72
+ }
73
+ _toggleSelectedAttribute($colorItem) {
74
+ $colorItem.hasAttribute(COLOR_ITEM_SELECTED_ATTRIBUTE)
75
+ ? $colorItem.removeAttribute(COLOR_ITEM_SELECTED_ATTRIBUTE)
76
+ : $colorItem.setAttribute(COLOR_ITEM_SELECTED_ATTRIBUTE, '');
77
+ }
78
+ _isColorAlreadyExistInArray($colorItem) {
79
+ return this.selectedColors.includes($colorItem);
80
+ }
81
+ _removeExistingColorFromArray($colorItem) {
82
+ const indexOfAlreadyExistingColor = this.selectedColors.indexOf($colorItem);
83
+ this.selectedColors.splice(indexOfAlreadyExistingColor, 1);
84
+ }
85
+ _setColorsDispatchValue(selectedColors) {
86
+ if (this.selectedColors.length > 1)
87
+ return this._getOnlyColorValues(selectedColors);
88
+ if (this.selectedColors.length === 1)
89
+ return selectedColors[0].color;
90
+ return '';
91
+ }
92
+ _getOnlyColorValues(selectedColors) {
93
+ return selectedColors.map((selectedColor) => selectedColor.color);
94
+ }
95
+ };
96
+ __decorate([
97
+ property({ type: Boolean }),
98
+ __metadata("design:type", Object)
99
+ ], HColorSwatches.prototype, "multiple", void 0);
100
+ __decorate([
101
+ property({ type: Number, attribute: 'number-of-visible-colors' }),
102
+ __metadata("design:type", Number)
103
+ ], HColorSwatches.prototype, "numberOfVisibleColors", void 0);
104
+ __decorate([
105
+ state(),
106
+ __metadata("design:type", Array)
107
+ ], HColorSwatches.prototype, "selectedColors", void 0);
108
+ HColorSwatches = __decorate([
109
+ phoenixCustomElement('h-color-swatches')
110
+ ], HColorSwatches);
111
+
112
+ export { HColorSwatches };
113
+ //# sourceMappingURL=color_swatches.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,11 @@
1
+ export declare const COLOR_ITEM_TAG_NAME = "h-color-item";
2
+ export declare const COLOR_SWATCHES_CSS_CLASSES: {
3
+ readonly colorItem: "color-item";
4
+ readonly colorSwatches: "color-swatches";
5
+ readonly colorSwatchesItem: "color-swatches__color-item";
6
+ readonly colorSwatchesItems: "color-swatches__color-items";
7
+ };
8
+ export declare const COLOR_SWATCHES_EVENT_NAMES: {
9
+ readonly selected: "colorSwatchesSelected";
10
+ };
11
+ export declare const COLOR_SWATCHES_HIDDEN_ATTRIBUTE = "hidden";
@@ -0,0 +1,15 @@
1
+ const baseCssClass = 'color-swatches';
2
+ const COLOR_ITEM_TAG_NAME = 'h-color-item';
3
+ const COLOR_SWATCHES_CSS_CLASSES = {
4
+ colorItem: 'color-item',
5
+ colorSwatches: baseCssClass,
6
+ colorSwatchesItem: `${baseCssClass}__color-item`,
7
+ colorSwatchesItems: `${baseCssClass}__color-items`
8
+ };
9
+ const COLOR_SWATCHES_EVENT_NAMES = {
10
+ selected: 'colorSwatchesSelected'
11
+ };
12
+ const COLOR_SWATCHES_HIDDEN_ATTRIBUTE = 'hidden';
13
+
14
+ export { COLOR_ITEM_TAG_NAME, COLOR_SWATCHES_CSS_CLASSES, COLOR_SWATCHES_EVENT_NAMES, COLOR_SWATCHES_HIDDEN_ATTRIBUTE };
15
+ //# sourceMappingURL=color_swatches_constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,3 @@
1
+ export interface IColorSelectValue {
2
+ colors: string | string[] | undefined;
3
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=color_swatches_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color_swatches_types.js","sourceRoot":"","sources":["../../../../../../../src/components/color_swatches/color_swatches_types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { PhoenixLightLitElement } from "../../../core/phoenix_light_lit_element/phoenix_light_lit_element";
2
+ export declare class HColorSwatchesShowMore extends PhoenixLightLitElement {
3
+ private _btnController;
4
+ constructor();
5
+ connectedCallback(): void;
6
+ private _addCssClasses;
7
+ private setupEvents;
8
+ private _dispatchClickedEvent;
9
+ }
@@ -0,0 +1,36 @@
1
+ import { __decorate, __metadata } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { PhoenixLightLitElement } from '../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
3
+ import { phoenixCustomElement } from '../../../core/decorators/phoenix_custom_element.js';
4
+ import { BtnController } from '../../../controllers/btn_controller.js';
5
+ import { SHOW_MORE_EVENT_NAMES, SHOW_MORE_CSS_CLASS } from './show_more_constants.js';
6
+
7
+ let HColorSwatchesShowMore = class HColorSwatchesShowMore extends PhoenixLightLitElement {
8
+ constructor() {
9
+ super();
10
+ this._dispatchClickedEvent = () => {
11
+ this.dispatchEvent(new CustomEvent(SHOW_MORE_EVENT_NAMES.showMore, {
12
+ bubbles: true
13
+ }));
14
+ };
15
+ this._btnController = new BtnController(this, this._dispatchClickedEvent);
16
+ }
17
+ connectedCallback() {
18
+ super.connectedCallback();
19
+ this.setupEvents();
20
+ this._addCssClasses();
21
+ this.classList.add(SHOW_MORE_CSS_CLASS);
22
+ }
23
+ _addCssClasses() {
24
+ this.classList.add(SHOW_MORE_CSS_CLASS);
25
+ }
26
+ setupEvents() {
27
+ this.addEventListener('click', this._dispatchClickedEvent);
28
+ }
29
+ };
30
+ HColorSwatchesShowMore = __decorate([
31
+ phoenixCustomElement('h-color-swatches-show-more'),
32
+ __metadata("design:paramtypes", [])
33
+ ], HColorSwatchesShowMore);
34
+
35
+ export { HColorSwatchesShowMore };
36
+ //# sourceMappingURL=show_more.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,4 @@
1
+ export declare const SHOW_MORE_CSS_CLASS = "color-swatches-show-more";
2
+ export declare const SHOW_MORE_EVENT_NAMES: {
3
+ readonly showMore: "colorSwatchesShowMore";
4
+ };
@@ -0,0 +1,7 @@
1
+ const SHOW_MORE_CSS_CLASS = 'color-swatches-show-more';
2
+ const SHOW_MORE_EVENT_NAMES = {
3
+ showMore: 'colorSwatchesShowMore'
4
+ };
5
+
6
+ export { SHOW_MORE_CSS_CLASS, SHOW_MORE_EVENT_NAMES };
7
+ //# sourceMappingURL=show_more_constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;"}
@@ -1,11 +1,11 @@
1
- import { IDropdown } from "./dropdown_types";
1
+ import type { IDropdown, TDropdownDirection } from "./dropdown_types";
2
2
  import { TemplateResult } from 'lit-html';
3
3
  import { HDropdownContent } from './dropdown_content';
4
4
  import { HDropdownToggler } from './dropdown_toggler';
5
5
  import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
6
6
  export declare class HDropdown extends PhoenixLightLitElement implements IDropdown {
7
7
  opened: boolean;
8
- direction: "bottom-center";
8
+ direction: TDropdownDirection;
9
9
  toggleOnHover: boolean;
10
10
  name: string;
11
11
  transition: string;
@@ -20,7 +20,8 @@ export declare class HDropdown extends PhoenixLightLitElement implements IDropdo
20
20
  private _backdropController;
21
21
  _lastFocusableElement: HTMLElement | undefined;
22
22
  private _rootDropdown?;
23
- connectedCallback(): void;
23
+ constructor();
24
+ connectedCallback(): Promise<void>;
24
25
  private static _appendDropdownPortal;
25
26
  private _findRootDropdown;
26
27
  private _setupListeners;
@@ -29,18 +30,20 @@ export declare class HDropdown extends PhoenixLightLitElement implements IDropdo
29
30
  show: () => Promise<void>;
30
31
  private _dispatchShowDropdownEvent;
31
32
  private _hideDropdownsSequentially;
32
- hide: (ev?: Event | undefined) => Promise<void>;
33
+ hide: (ev?: Event) => Promise<void>;
33
34
  private _dispatchHideDropdownEvent;
34
35
  private _handleDisabledPositioning;
35
36
  private _handleEnabledPositioning;
36
37
  private _observeScrollToggling;
37
38
  private _toggleScroll;
38
39
  private _closeDropdownOnEscape;
39
- private _handleFocusWithinDropdown;
40
- private _focusOnNextSibling;
40
+ private _handleForwardFocus;
41
+ private _focusOnNextElementAfterToggler;
42
+ private _handleBackwardFocus;
41
43
  private _hoverToggle;
42
44
  private _isHoveredWithinDropdown;
43
45
  private _setupInitialDropdownProperties;
46
+ isOpened: () => boolean;
44
47
  private _positionDropdownContent;
45
48
  disconnectedCallback(): void;
46
49
  render(): TemplateResult;
@@ -7,8 +7,9 @@ import { PORTAL_TARGET_COMPONENT_NAME, PORTAL_TARGET_NAME_PROP } from '../portal
7
7
  import { html } from 'lit-html';
8
8
  import { BackdropController } from '../backdrop/controller/backdrop_controller.js';
9
9
  import { property } from '@lit/reactive-element/decorators.js';
10
+ import { KeystrokesController } from '../../controllers/keystrokes_controller/keystrokes_controller.js';
10
11
  import { BREAKPOINTS, SCROLLABLE_CLASS_NAME } from '../../global_constants.js';
11
- import { DEFAULT_DROPDOWN_PORTAL_NAME, DROPDOWN_CONTENT_VISIBLE_CLASS, DROPDOWN_CONTENT_SHOW, DROPDOWN_EVENTS, DROPDOWN_CONTAINER_NAME, DROPDOWN_CONTENT_HIDE, DROPDOWN_CONTENT_NAME, DROPDOWN_TOGGLER_NAME } from './dropdown_constants.js';
12
+ import { DEFAULT_DROPDOWN_PORTAL_NAME, DROPDOWN_CONTENT_VISIBLE_CLASS, DROPDOWN_CONTENT_SHOW, DROPDOWN_EVENTS, DROPDOWN_CONTAINER_NAME, DROPDOWN_CONTENT_HIDE, DROPDOWN_TOGGLER_NAME, DROPDOWN_CONTENT_NAME } from './dropdown_constants.js';
12
13
  import { DIRECTIONS, RELATIVE_POSITION_CONTROLLER_EVENTS, DEFAULT_THROTTLE_WAIT_TIME } from '../../controllers/relative_position_controller/relative_position_controller_constants.js';
13
14
  import { ClickOutsideController } from '../../controllers/click_outside_controller/click_outside_controller.js';
14
15
  import throttle_1 from '../../../../../external/lodash/throttle.js';
@@ -17,7 +18,7 @@ import { RelativePositionController } from '../../controllers/relative_position_
17
18
  var HDropdown_1;
18
19
  let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
19
20
  constructor() {
20
- super(...arguments);
21
+ super();
21
22
  this.opened = false;
22
23
  this.direction = DIRECTIONS.bottomCenter;
23
24
  this.toggleOnHover = false;
@@ -36,7 +37,12 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
36
37
  await this._hideDropdownsSequentially();
37
38
  };
38
39
  this.toggle = async () => {
39
- this.opened ? await this._hideDropdownsSequentially() : await this.show();
40
+ if (this.opened) {
41
+ await this._hideDropdownsSequentially();
42
+ return;
43
+ }
44
+ await this.show();
45
+ UiDomUtils.setFocusToFirstFocusableElementInContainer(this.$dropdownContent);
40
46
  };
41
47
  this.show = async () => {
42
48
  return new Promise((resolve) => {
@@ -51,13 +57,12 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
51
57
  }, 0);
52
58
  const transitionDuration = parseFloat(getComputedStyle(this.$dropdownContent || this).transitionDuration) * 1000;
53
59
  setTimeout(() => {
54
- var _a, _b, _c;
60
+ var _a, _b;
55
61
  this._dispatchShowDropdownEvent();
56
62
  (_a = this.$dropdownContent) === null || _a === void 0 ? void 0 : _a.classList.remove(`${DROPDOWN_CONTENT_SHOW}-${this.transition}-start`, `${DROPDOWN_CONTENT_SHOW}-${this.transition}-end`);
57
63
  this._toggleScroll();
58
64
  if (!this._lastFocusableElement)
59
65
  this._lastFocusableElement = (_b = this.$dropdownContent) === null || _b === void 0 ? void 0 : _b.lastElementChild;
60
- this._focusOnNextSibling((_c = this.$dropdownContent) === null || _c === void 0 ? void 0 : _c.firstElementChild);
61
66
  resolve();
62
67
  }, transitionDuration);
63
68
  });
@@ -128,20 +133,35 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
128
133
  return;
129
134
  await this.hide();
130
135
  };
131
- this._handleFocusWithinDropdown = async (ev) => {
136
+ this._handleForwardFocus = async (ev) => {
137
+ const $focusableElementsWithinDropdownContent = UiDomUtils.getFocusableElements(this.$dropdownContent);
138
+ const doesNotHaveFocusableElementsInsideContent = $focusableElementsWithinDropdownContent.length <= 0 && this.opened;
139
+ const isActiveElementLastFocusableElement = document.activeElement === this._lastFocusableElement;
140
+ if (doesNotHaveFocusableElementsInsideContent || isActiveElementLastFocusableElement)
141
+ this._focusOnNextElementAfterToggler(ev);
142
+ };
143
+ this._focusOnNextElementAfterToggler = async (ev) => {
144
+ ev.preventDefault();
145
+ const $focusableElements = UiDomUtils.getFocusableElements(document.body);
146
+ const indexOfDropdownToggler = $focusableElements.indexOf(this.$dropdownToggler);
147
+ const $nextElementToFocus = $focusableElements.find((currentElement, index) => {
148
+ if (index > indexOfDropdownToggler && !currentElement.closest(`${DROPDOWN_TOGGLER_NAME}[name="${this.name}"]`))
149
+ return currentElement;
150
+ return null;
151
+ });
152
+ if ($nextElementToFocus)
153
+ $nextElementToFocus.focus();
154
+ await this._hideDropdownsSequentially();
155
+ await this.hide();
156
+ };
157
+ this._handleBackwardFocus = async (ev) => {
132
158
  var _a;
133
- const hasTabBeenPressed = ev.key.toLowerCase() === 'tab';
134
- if (hasTabBeenPressed && document.activeElement === this._lastFocusableElement) {
135
- ev.preventDefault();
136
- this._focusOnNextSibling(this.nextElementSibling || this);
137
- await this._hideDropdownsSequentially();
138
- }
139
159
  const $firstFocusableElement = this.$dropdownContent && UiDomUtils.getFocusableElement(this.$dropdownContent);
140
- if (hasTabBeenPressed && ev.shiftKey && document.activeElement === $firstFocusableElement) {
141
- ev.preventDefault();
142
- (_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.focus();
143
- await this._hideDropdownsSequentially();
144
- }
160
+ if (document.activeElement !== $firstFocusableElement)
161
+ return;
162
+ ev.preventDefault();
163
+ (_a = this.$dropdownToggler) === null || _a === void 0 ? void 0 : _a.focus();
164
+ await this._hideDropdownsSequentially();
145
165
  };
146
166
  this._hoverToggle = async (ev) => {
147
167
  if (window.innerWidth < BREAKPOINTS.xs)
@@ -153,11 +173,13 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
153
173
  const isHoveredWithinDropdown = this._isHoveredWithinDropdown(ev.target);
154
174
  if (isHoveredWithinDropdown && !this.opened) {
155
175
  await this.show();
176
+ UiDomUtils.setFocusToFirstFocusableElementInContainer(this.$dropdownContent);
156
177
  return;
157
178
  }
158
179
  if (!isHoveredWithinDropdown && this.opened)
159
180
  await this._hideDropdownsSequentially();
160
181
  };
182
+ this.isOpened = () => this.opened;
161
183
  this._positionDropdownContent = () => {
162
184
  requestAnimationFrame(() => {
163
185
  this.opened && window.innerWidth < BREAKPOINTS.xs
@@ -165,8 +187,20 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
165
187
  : this._positionController.position();
166
188
  });
167
189
  };
190
+ new KeystrokesController({
191
+ host: this,
192
+ target: document.body,
193
+ keys: ['tab'],
194
+ callback: this._handleForwardFocus
195
+ });
196
+ new KeystrokesController({
197
+ host: this,
198
+ target: document.body,
199
+ keys: [['shift', 'tab']],
200
+ callback: this._handleBackwardFocus
201
+ });
168
202
  }
169
- connectedCallback() {
203
+ async connectedCallback() {
170
204
  var _a;
171
205
  super.connectedCallback();
172
206
  HDropdown_1._appendDropdownPortal();
@@ -196,6 +230,8 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
196
230
  name: this.name,
197
231
  action: this._handleClickOutside
198
232
  });
233
+ if (this.opened)
234
+ await this.show();
199
235
  this._setupListeners();
200
236
  this._setupInitialDropdownProperties();
201
237
  }
@@ -221,7 +257,6 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
221
257
  document.addEventListener(DROPDOWN_EVENTS.hide, this.hide);
222
258
  window.addEventListener('resize', this._observeScrollToggling);
223
259
  document.addEventListener('keydown', this._closeDropdownOnEscape);
224
- document.addEventListener('keydown', this._handleFocusWithinDropdown);
225
260
  if (this.toggleOnHover)
226
261
  document.addEventListener('mouseover', this._hoverToggle);
227
262
  }
@@ -241,17 +276,6 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
241
276
  (_b = this.$dropdownContent) === null || _b === void 0 ? void 0 : _b.classList.add(SCROLLABLE_CLASS_NAME);
242
277
  }
243
278
  }
244
- _focusOnNextSibling(el) {
245
- el.focus();
246
- if (el === document.activeElement)
247
- return;
248
- if (el.firstElementChild) {
249
- this._focusOnNextSibling(el.firstElementChild);
250
- return;
251
- }
252
- if (el.nextElementSibling)
253
- this._focusOnNextSibling(el.nextElementSibling);
254
- }
255
279
  _isHoveredWithinDropdown(element) {
256
280
  var _a;
257
281
  if (element === this)
@@ -283,7 +307,6 @@ let HDropdown = HDropdown_1 = class HDropdown extends PhoenixLightLitElement {
283
307
  window.removeEventListener('resize', this._observeScrollToggling);
284
308
  document.removeEventListener('keydown', this._closeDropdownOnEscape);
285
309
  document.removeEventListener(DROPDOWN_EVENTS.hide, this.hide);
286
- document.removeEventListener('keydown', this._handleFocusWithinDropdown);
287
310
  if (this.toggleOnHover)
288
311
  document.removeEventListener('mouseover', this._hoverToggle);
289
312
  if (this.opened) {
@@ -307,7 +330,7 @@ __decorate([
307
330
  ], HDropdown.prototype, "opened", void 0);
308
331
  __decorate([
309
332
  property({ type: String, reflect: true }),
310
- __metadata("design:type", Object)
333
+ __metadata("design:type", String)
311
334
  ], HDropdown.prototype, "direction", void 0);
312
335
  __decorate([
313
336
  property({ type: Boolean }),
@@ -330,7 +353,8 @@ __decorate([
330
353
  __metadata("design:type", Object)
331
354
  ], HDropdown.prototype, "_lastFocusableElement", void 0);
332
355
  HDropdown = HDropdown_1 = __decorate([
333
- phoenixCustomElement('h-dropdown')
356
+ phoenixCustomElement('h-dropdown'),
357
+ __metadata("design:paramtypes", [])
334
358
  ], HDropdown);
335
359
 
336
360
  export { HDropdown };
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4CAAgD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4CAAgD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -10,7 +10,6 @@ export declare const DROPDOWN_EVENTS: {
10
10
  readonly showed: "dropdown.showed";
11
11
  readonly hidden: "dropdown.hidden";
12
12
  };
13
- export declare const DROPDOWN_OPENED_ATTRIBUTE_NAME = "opened";
14
13
  export declare const DROPDOWN_CSS_CLASS = "dropdown";
15
14
  export declare const DROPDOWN_CONTENT_CSS_CLASS: string;
16
15
  export declare const DROPDOWN_TOGGLER_CSS_CLASS: string;
@@ -11,7 +11,6 @@ const DROPDOWN_EVENTS = {
11
11
  showed: `${DROPDOWN_EVENT_NAME}.showed`,
12
12
  hidden: `${DROPDOWN_EVENT_NAME}.hidden`
13
13
  };
14
- const DROPDOWN_OPENED_ATTRIBUTE_NAME = 'opened';
15
14
  const DROPDOWN_CSS_CLASS = 'dropdown';
16
15
  const DROPDOWN_CONTENT_CSS_CLASS = `${DROPDOWN_CSS_CLASS}__content`;
17
16
  const DROPDOWN_TOGGLER_CSS_CLASS = `${DROPDOWN_CSS_CLASS}__toggler`;
@@ -19,5 +18,5 @@ const DROPDOWN_CONTENT_VISIBLE_CLASS = `${DROPDOWN_CONTENT_CSS_CLASS}_visible`;
19
18
  const DROPDOWN_CONTENT_SHOW = `${DROPDOWN_CONTENT_CSS_CLASS}_show`;
20
19
  const DROPDOWN_CONTENT_HIDE = `${DROPDOWN_CONTENT_CSS_CLASS}_hide`;
21
20
 
22
- export { DEFAULT_DROPDOWN_PORTAL_NAME, DROPDOWN_CONTAINER_NAME, DROPDOWN_CONTENT_CSS_CLASS, DROPDOWN_CONTENT_HIDE, DROPDOWN_CONTENT_NAME, DROPDOWN_CONTENT_SHOW, DROPDOWN_CONTENT_VISIBLE_CLASS, DROPDOWN_CSS_CLASS, DROPDOWN_EVENTS, DROPDOWN_NAME, DROPDOWN_OPENED_ATTRIBUTE_NAME, DROPDOWN_TOGGLER_CSS_CLASS, DROPDOWN_TOGGLER_NAME };
21
+ export { DEFAULT_DROPDOWN_PORTAL_NAME, DROPDOWN_CONTAINER_NAME, DROPDOWN_CONTENT_CSS_CLASS, DROPDOWN_CONTENT_HIDE, DROPDOWN_CONTENT_NAME, DROPDOWN_CONTENT_SHOW, DROPDOWN_CONTENT_VISIBLE_CLASS, DROPDOWN_CSS_CLASS, DROPDOWN_EVENTS, DROPDOWN_NAME, DROPDOWN_TOGGLER_CSS_CLASS, DROPDOWN_TOGGLER_NAME };
23
22
  //# sourceMappingURL=dropdown_constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -3,8 +3,11 @@ export declare class HDropdownToggler extends PhoenixLightLitElement {
3
3
  name: string;
4
4
  private _btnController;
5
5
  private _toggleElementAriaController;
6
+ private _$dropdown;
6
7
  toggleOnHover: boolean;
7
8
  constructor();
8
9
  connectedCallback(): void;
9
10
  private _dispatchToggleDropdownEvent;
11
+ private _handleFocusToOpenedDropdown;
12
+ disconnectedCallback(): void;
10
13
  }
@@ -1,9 +1,10 @@
1
1
  import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
2
  import { property, state } from 'lit/decorators';
3
+ import { UiDomUtils } from '@dreamcommerce/utilities';
3
4
  import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
4
5
  import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
5
6
  import { BtnController } from '../../controllers/btn_controller.js';
6
- import { DROPDOWN_EVENTS, DROPDOWN_TOGGLER_CSS_CLASS, DROPDOWN_OPENED_ATTRIBUTE_NAME } from './dropdown_constants.js';
7
+ import { DROPDOWN_EVENTS, DROPDOWN_CONTENT_NAME, DROPDOWN_TOGGLER_CSS_CLASS } from './dropdown_constants.js';
7
8
  import { ToggleElementAriaController } from '../../controllers/toggle_element_aria_controller/toggle_element_aria_controller.js';
8
9
 
9
10
  let HDropdownToggler = class HDropdownToggler extends PhoenixLightLitElement {
@@ -19,19 +20,38 @@ let HDropdownToggler = class HDropdownToggler extends PhoenixLightLitElement {
19
20
  });
20
21
  this.dispatchEvent(toggleDropdownEvent);
21
22
  };
23
+ this._handleFocusToOpenedDropdown = async (ev) => {
24
+ if (ev.target !== this)
25
+ return;
26
+ const isOpened = this._$dropdown.isOpened();
27
+ if (!isOpened)
28
+ return;
29
+ const $dropdownContent = document.querySelector(`${DROPDOWN_CONTENT_NAME}[name="${this.name}"]`);
30
+ if (!$dropdownContent)
31
+ return;
32
+ ev.preventDefault();
33
+ UiDomUtils.setFocusToFirstFocusableElementInContainer($dropdownContent);
34
+ };
22
35
  this.slot = this.hasAttribute('slot') ? this.slot : 'toggler';
23
36
  this.className = `${DROPDOWN_TOGGLER_CSS_CLASS} ${this.className}`;
24
37
  }
25
38
  connectedCallback() {
39
+ var _a;
26
40
  super.connectedCallback();
27
41
  this._btnController = new BtnController(this, this._dispatchToggleDropdownEvent);
28
- const dropdown = this.parentElement;
29
- this._toggleElementAriaController = new ToggleElementAriaController({
30
- host: this,
31
- initialAriaExpandedValue: !!(dropdown === null || dropdown === void 0 ? void 0 : dropdown.getAttribute(DROPDOWN_OPENED_ATTRIBUTE_NAME))
32
- });
33
- this.toggleOnHover = (dropdown === null || dropdown === void 0 ? void 0 : dropdown.getAttribute('toggleOnHover')) !== null;
42
+ this._$dropdown = this.parentElement;
43
+ if (this._$dropdown.isOpened)
44
+ this._toggleElementAriaController = new ToggleElementAriaController({
45
+ host: this,
46
+ initialAriaExpandedValue: this._$dropdown.isOpened()
47
+ });
48
+ this.toggleOnHover = ((_a = this._$dropdown) === null || _a === void 0 ? void 0 : _a.getAttribute('toggleOnHover')) !== null;
34
49
  this.addEventListener('click', this._dispatchToggleDropdownEvent);
50
+ document.addEventListener('keydown', this._handleFocusToOpenedDropdown);
51
+ }
52
+ disconnectedCallback() {
53
+ super.disconnectedCallback();
54
+ document.removeEventListener('keydown', this._handleFocusToOpenedDropdown);
35
55
  }
36
56
  };
37
57
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}