@shoper/phoenix_design_system 0.20.2 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/build/cjs/{packages/phoenix/external → external}/classnames/index.js +10 -16
  2. package/build/{esm/packages/phoenix → cjs}/external/classnames/index.js.map +1 -1
  3. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox.js +1 -1
  4. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox.js.map +1 -1
  5. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox_control.js +1 -1
  6. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox_control.js.map +1 -1
  7. package/build/cjs/packages/phoenix/src/components/form/input/input.js +1 -1
  8. package/build/cjs/packages/phoenix/src/components/form/input/input.js.map +1 -1
  9. package/build/cjs/packages/phoenix/src/components/form/radio/radio.js +1 -1
  10. package/build/cjs/packages/phoenix/src/components/form/radio/radio.js.map +1 -1
  11. package/build/cjs/packages/phoenix/src/components/form/switch/switch.js +1 -1
  12. package/build/cjs/packages/phoenix/src/components/form/switch/switch.js.map +1 -1
  13. package/build/cjs/packages/phoenix/src/components/form/textarea/textarea.js +1 -1
  14. package/build/cjs/packages/phoenix/src/components/form/textarea/textarea.js.map +1 -1
  15. package/build/cjs/packages/phoenix/src/components/slider/slider.js +2 -2
  16. package/build/cjs/packages/phoenix/src/components/tabs/tab/tab.js +74 -0
  17. package/build/cjs/packages/phoenix/src/components/tabs/tab/tab.js.map +1 -0
  18. package/build/cjs/packages/phoenix/src/components/tabs/tab/tab_constants.js +12 -0
  19. package/build/{esm/packages/utilities/build/esm/web_components_utils.js.map → cjs/packages/phoenix/src/components/tabs/tab/tab_constants.js.map} +1 -1
  20. package/build/cjs/packages/phoenix/src/components/tabs/tab_panel.js +31 -0
  21. package/build/cjs/packages/phoenix/src/components/tabs/tab_panel.js.map +1 -0
  22. package/build/cjs/packages/phoenix/src/components/tabs/tabs.js +108 -0
  23. package/build/cjs/packages/phoenix/src/components/tabs/tabs.js.map +1 -0
  24. package/build/cjs/packages/phoenix/src/components/tabs/tabs_constants.js +10 -0
  25. package/build/cjs/packages/{utilities/build/esm/web_components_utils.js.map → phoenix/src/components/tabs/tabs_constants.js.map} +1 -1
  26. package/build/cjs/packages/phoenix/src/controllers/visibility_controller/visibility_controller.js +1 -1
  27. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +3 -0
  28. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  29. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element_utils.js +4 -4
  30. package/build/cjs/packages/phoenix/src/index.js +23 -0
  31. package/build/cjs/packages/phoenix/src/index.js.map +1 -1
  32. package/build/esm/{packages/phoenix/external → external}/classnames/index.js +10 -16
  33. package/build/{cjs/packages/phoenix → esm}/external/classnames/index.js.map +1 -1
  34. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox.js +1 -1
  35. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox.js.map +1 -1
  36. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox_control.js +1 -1
  37. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox_control.js.map +1 -1
  38. package/build/esm/packages/phoenix/src/components/form/input/input.js +1 -1
  39. package/build/esm/packages/phoenix/src/components/form/input/input.js.map +1 -1
  40. package/build/esm/packages/phoenix/src/components/form/radio/radio.js +1 -1
  41. package/build/esm/packages/phoenix/src/components/form/radio/radio.js.map +1 -1
  42. package/build/esm/packages/phoenix/src/components/form/switch/switch.js +1 -1
  43. package/build/esm/packages/phoenix/src/components/form/switch/switch.js.map +1 -1
  44. package/build/esm/packages/phoenix/src/components/form/textarea/textarea.js +1 -1
  45. package/build/esm/packages/phoenix/src/components/form/textarea/textarea.js.map +1 -1
  46. package/build/esm/packages/phoenix/src/components/slider/slider.js +1 -1
  47. package/build/esm/packages/phoenix/src/components/tabs/tab/tab.d.ts +14 -0
  48. package/build/esm/packages/phoenix/src/components/tabs/tab/tab.js +72 -0
  49. package/build/esm/packages/phoenix/src/components/tabs/tab/tab.js.map +1 -0
  50. package/build/esm/packages/phoenix/src/components/tabs/tab/tab_constants.d.ts +4 -0
  51. package/build/esm/packages/phoenix/src/components/tabs/tab/tab_constants.js +7 -0
  52. package/build/esm/packages/phoenix/src/components/tabs/tab/tab_constants.js.map +1 -0
  53. package/build/esm/packages/phoenix/src/components/tabs/tab_panel.d.ts +8 -0
  54. package/build/esm/packages/phoenix/src/components/tabs/tab_panel.js +29 -0
  55. package/build/{cjs/packages/utilities/build/esm/json_utils.js.map → esm/packages/phoenix/src/components/tabs/tab_panel.js.map} +1 -1
  56. package/build/esm/packages/phoenix/src/components/tabs/tabs.d.ts +16 -0
  57. package/build/esm/packages/phoenix/src/components/tabs/tabs.js +106 -0
  58. package/build/esm/packages/phoenix/src/components/tabs/tabs.js.map +1 -0
  59. package/build/esm/packages/phoenix/src/components/tabs/tabs_constants.d.ts +3 -0
  60. package/build/esm/packages/phoenix/src/components/tabs/tabs_constants.js +6 -0
  61. package/build/esm/packages/phoenix/src/components/tabs/tabs_constants.js.map +1 -0
  62. package/build/esm/packages/phoenix/src/components/tabs/tabs_types.d.ts +4 -0
  63. package/build/esm/packages/phoenix/src/components/tabs/tabs_types.js +2 -0
  64. package/build/esm/packages/phoenix/src/components/tabs/tabs_types.js.map +1 -0
  65. package/build/esm/packages/phoenix/src/controllers/visibility_controller/visibility_controller.js +1 -1
  66. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +3 -0
  67. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  68. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element_utils.js +1 -1
  69. package/build/esm/packages/phoenix/src/index.d.ts +4 -0
  70. package/build/esm/packages/phoenix/src/index.js +4 -0
  71. package/build/esm/packages/phoenix/src/index.js.map +1 -1
  72. package/package.json +2 -2
  73. package/build/cjs/packages/utilities/build/esm/json_utils.js +0 -25
  74. package/build/cjs/packages/utilities/build/esm/web_components_utils.js +0 -18
  75. package/build/esm/packages/utilities/build/esm/json_utils.js +0 -21
  76. package/build/esm/packages/utilities/build/esm/json_utils.js.map +0 -1
  77. package/build/esm/packages/utilities/build/esm/web_components_utils.js +0 -14
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA,uBAAuB,0CAA8C;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA,uBAAuB,gDAAoD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -5,7 +5,7 @@ import { phoenixCustomElement } from '../../../core/decorators/phoenix_custom_el
5
5
  import { INPUT_CONTROL_TYPES, INPUT_PROPS_TO_SYNC, INPUT_CONTROL_CSS_CLASSES } from './input_constants.js';
6
6
  import { BASE_FORM_CONTROL_PROPS } from '../controllers/props_synchronizing/control_props_sync_controller_constants.js';
7
7
  import { ControlPropsSyncProviderController } from '../controllers/props_synchronizing/control_props_sync_provider_controller.js';
8
- import classnames from '../../../../external/classnames/index.js';
8
+ import classnames from '../../../../../../external/classnames/index.js';
9
9
 
10
10
  let HInput = class HInput extends PhoenixLightLitElement {
11
11
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0CAA8C;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gDAAoD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -4,7 +4,7 @@ import { PhoenixLightLitElement } from '../../../core/phoenix_light_lit_element/
4
4
  import { phoenixCustomElement } from '../../../core/decorators/phoenix_custom_element.js';
5
5
  import { BASE_FORM_CONTROL_PROPS } from '../controllers/props_synchronizing/control_props_sync_controller_constants.js';
6
6
  import { ControlPropsSyncProviderController } from '../controllers/props_synchronizing/control_props_sync_provider_controller.js';
7
- import classnames from '../../../../external/classnames/index.js';
7
+ import classnames from '../../../../../../external/classnames/index.js';
8
8
  import { CHECKBOX_PROPS_TO_SYNC } from '../checkbox/checkbox_constants.js';
9
9
  import { RADIO_CONTROL_CSS_CLASSES } from './radio_constants.js';
10
10
 
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA,uBAAuB,0CAA8C;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA,uBAAuB,gDAAoD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -4,7 +4,7 @@ import { PhoenixLightLitElement } from '../../../core/phoenix_light_lit_element/
4
4
  import { phoenixCustomElement } from '../../../core/decorators/phoenix_custom_element.js';
5
5
  import { BASE_FORM_CONTROL_PROPS } from '../controllers/props_synchronizing/control_props_sync_controller_constants.js';
6
6
  import { ControlPropsSyncProviderController } from '../controllers/props_synchronizing/control_props_sync_provider_controller.js';
7
- import classnames from '../../../../external/classnames/index.js';
7
+ import classnames from '../../../../../../external/classnames/index.js';
8
8
  import { CHECKBOX_PROPS_TO_SYNC } from '../checkbox/checkbox_constants.js';
9
9
  import { SWITCH_CONTROL_CSS_CLASSES } from './switch_constants.js';
10
10
 
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA,uBAAuB,0CAA8C;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA,uBAAuB,gDAAoD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -4,7 +4,7 @@ import { PhoenixLightLitElement } from '../../../core/phoenix_light_lit_element/
4
4
  import { phoenixCustomElement } from '../../../core/decorators/phoenix_custom_element.js';
5
5
  import { BASE_FORM_CONTROL_PROPS } from '../controllers/props_synchronizing/control_props_sync_controller_constants.js';
6
6
  import { ControlPropsSyncProviderController } from '../controllers/props_synchronizing/control_props_sync_provider_controller.js';
7
- import classnames from '../../../../external/classnames/index.js';
7
+ import classnames from '../../../../../../external/classnames/index.js';
8
8
  import { TEXTAREA_PROPS_TO_SYNC, TEXTAREA_CONTROL_CSS_CLASSES } from './textarea_constants.js';
9
9
 
10
10
  let HTextarea = class HTextarea extends PhoenixLightLitElement {
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA,uBAAuB,0CAA8C;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+CAAmD;AAC1F;AACA;AACA;AACA;AACA;AACA,uBAAuB,gDAAoD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,6 +1,6 @@
1
1
  import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
2
  import { property } from 'lit/decorators';
3
- import { JsonUtils } from '../../../../utilities/build/esm/json_utils.js';
3
+ import { JsonUtils } from '@dreamcommerce/utilities';
4
4
  import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
5
5
  import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
6
6
  import { Splide } from '../../../../../external/@splidejs/splide/dist/js/splide.esm.js';
@@ -0,0 +1,14 @@
1
+ import { PhoenixLightLitElement } from "../../../core/phoenix_light_lit_element/phoenix_light_lit_element";
2
+ export declare class HTab extends PhoenixLightLitElement {
3
+ panelName: string;
4
+ get selected(): boolean;
5
+ disabled: boolean;
6
+ set selected(selected: boolean);
7
+ private _btnController;
8
+ attributeChangedCallback(name: string, value: string | null, newValue: string | null): void;
9
+ connectedCallback(): void;
10
+ private _setupAttributes;
11
+ private _bindEvents;
12
+ private _handleTabClicked;
13
+ _dispatchSelectedEvent: () => void;
14
+ }
@@ -0,0 +1,72 @@
1
+ import { __decorate, __metadata } from '../../../../../../external/tslib/tslib.es6.js';
2
+ import { property } from 'lit/decorators';
3
+ import { UiDomUtils } from '@dreamcommerce/utilities';
4
+ import { PhoenixLightLitElement } from '../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
5
+ import { phoenixCustomElement } from '../../../core/decorators/phoenix_custom_element.js';
6
+ import { BtnController } from '../../../controllers/btn_controller.js';
7
+ import { TAB_EVENT_NAMES, TAB_SELECTED_ATTRIBUTE_NAME } from './tab_constants.js';
8
+
9
+ let HTab = class HTab extends PhoenixLightLitElement {
10
+ constructor() {
11
+ super(...arguments);
12
+ this._handleTabClicked = () => {
13
+ if (this.disabled)
14
+ return;
15
+ this._dispatchSelectedEvent();
16
+ };
17
+ this._dispatchSelectedEvent = () => {
18
+ this.dispatchEvent(new CustomEvent(TAB_EVENT_NAMES.selected, {
19
+ detail: {
20
+ $el: this
21
+ },
22
+ bubbles: true
23
+ }));
24
+ };
25
+ }
26
+ get selected() {
27
+ return this.hasAttribute(TAB_SELECTED_ATTRIBUTE_NAME);
28
+ }
29
+ set selected(selected) {
30
+ selected ? this.setAttribute(TAB_SELECTED_ATTRIBUTE_NAME, '') : this.removeAttribute(TAB_SELECTED_ATTRIBUTE_NAME);
31
+ this.setAttribute('aria-selected', String(selected));
32
+ selected ? UiDomUtils.makeNavigable(this) : UiDomUtils.makeUnnavigable(this);
33
+ }
34
+ attributeChangedCallback(name, value, newValue) {
35
+ super.attributeChangedCallback(name, value, newValue);
36
+ switch (name) {
37
+ case TAB_SELECTED_ATTRIBUTE_NAME: {
38
+ this.selected = Boolean(newValue);
39
+ break;
40
+ }
41
+ }
42
+ }
43
+ connectedCallback() {
44
+ super.connectedCallback();
45
+ this._btnController = new BtnController(this, this._handleTabClicked);
46
+ this._setupAttributes();
47
+ this._bindEvents();
48
+ this.selected ? UiDomUtils.makeNavigable(this) : UiDomUtils.makeUnnavigable(this);
49
+ }
50
+ _setupAttributes() {
51
+ this.setAttribute('role', 'tab');
52
+ this.setAttribute('aria-controls', this.panelName);
53
+ this.setAttribute('aria-selected', String(this.selected));
54
+ }
55
+ _bindEvents() {
56
+ this.addEventListener('click', this._handleTabClicked);
57
+ }
58
+ };
59
+ __decorate([
60
+ property({ type: String, reflect: true, attribute: 'panel-name' }),
61
+ __metadata("design:type", String)
62
+ ], HTab.prototype, "panelName", void 0);
63
+ __decorate([
64
+ property({ type: Boolean, reflect: true }),
65
+ __metadata("design:type", Boolean)
66
+ ], HTab.prototype, "disabled", void 0);
67
+ HTab = __decorate([
68
+ phoenixCustomElement('h-tab')
69
+ ], HTab);
70
+
71
+ export { HTab };
72
+ //# sourceMappingURL=tab.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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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 TAB_EVENT_NAMES: {
2
+ readonly selected: "selected";
3
+ };
4
+ export declare const TAB_SELECTED_ATTRIBUTE_NAME = "selected";
@@ -0,0 +1,7 @@
1
+ const TAB_EVENT_NAMES = {
2
+ selected: 'selected'
3
+ };
4
+ const TAB_SELECTED_ATTRIBUTE_NAME = 'selected';
5
+
6
+ export { TAB_EVENT_NAMES, TAB_SELECTED_ATTRIBUTE_NAME };
7
+ //# sourceMappingURL=tab_constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,8 @@
1
+ import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
2
+ export declare class HTabPanel extends PhoenixLightLitElement {
3
+ name: string;
4
+ private _visibilityController;
5
+ constructor();
6
+ show(): void;
7
+ hide(): void;
8
+ }
@@ -0,0 +1,29 @@
1
+ import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
+ import { property } 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 { VisibilityController } from '../../controllers/visibility_controller/visibility_controller.js';
6
+
7
+ let HTabPanel = class HTabPanel extends PhoenixLightLitElement {
8
+ constructor() {
9
+ super();
10
+ this._visibilityController = new VisibilityController(this);
11
+ }
12
+ show() {
13
+ this._visibilityController.show();
14
+ }
15
+ hide() {
16
+ this._visibilityController.hide();
17
+ }
18
+ };
19
+ __decorate([
20
+ property({ type: String, reflect: true }),
21
+ __metadata("design:type", String)
22
+ ], HTabPanel.prototype, "name", void 0);
23
+ HTabPanel = __decorate([
24
+ phoenixCustomElement('h-tab-panel'),
25
+ __metadata("design:paramtypes", [])
26
+ ], HTabPanel);
27
+
28
+ export { HTabPanel };
29
+ //# sourceMappingURL=tab_panel.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;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;"}
@@ -0,0 +1,16 @@
1
+ import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
2
+ export declare class HTabs extends PhoenixLightLitElement {
3
+ private _$selectedTab;
4
+ private _$tabs;
5
+ connectedCallback(): void;
6
+ private _handleArrowNavigation;
7
+ private _getFocusedTabIndex;
8
+ private _getNextTabIndex;
9
+ private _getPrevTabIndex;
10
+ private _setupEvents;
11
+ private _handleTabSelected;
12
+ allChildrenConnected(): void;
13
+ private _hideNotSelectedAndVisiblePanels;
14
+ switchPanel(newPanelName: string): void;
15
+ private _dispatchChangedEvent;
16
+ }
@@ -0,0 +1,106 @@
1
+ import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
+ import { state } from 'lit/decorators';
3
+ import { UiDomUtils } from '@dreamcommerce/utilities';
4
+ import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
5
+ import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
6
+ import { KeystrokesController } from '../../controllers/keystrokes_controller/keystrokes_controller.js';
7
+ import { TAB_EVENT_NAMES } from './tab/tab_constants.js';
8
+ import { HTab } from './tab/tab.js';
9
+ import { TABS_EVENT_NAMES } from './tabs_constants.js';
10
+
11
+ let HTabs = class HTabs extends PhoenixLightLitElement {
12
+ constructor() {
13
+ super(...arguments);
14
+ this._handleArrowNavigation = ({ key }) => {
15
+ const currentTabIndex = this._getFocusedTabIndex();
16
+ if (currentTabIndex === undefined)
17
+ return;
18
+ const newTabIndex = key === 'ArrowLeft' ? this._getPrevTabIndex(currentTabIndex) : this._getNextTabIndex(currentTabIndex);
19
+ if (newTabIndex === undefined)
20
+ return;
21
+ UiDomUtils.makeUnnavigable(this._$tabs[currentTabIndex]);
22
+ UiDomUtils.makeNavigable(this._$tabs[newTabIndex]);
23
+ this._$tabs[newTabIndex].focus();
24
+ };
25
+ this._handleTabSelected = (event) => {
26
+ const $newlySelectedTab = event.detail.$el;
27
+ this.switchPanel($newlySelectedTab.panelName);
28
+ if (this._$selectedTab)
29
+ this._$selectedTab.selected = false;
30
+ $newlySelectedTab.selected = true;
31
+ this._dispatchChangedEvent(this._$selectedTab, $newlySelectedTab);
32
+ this._$selectedTab = $newlySelectedTab;
33
+ };
34
+ }
35
+ connectedCallback() {
36
+ super.connectedCallback();
37
+ this._setupEvents();
38
+ this.setAttribute('role', 'tablist');
39
+ this._$tabs = [...this.querySelectorAll('h-tab')];
40
+ new KeystrokesController({
41
+ host: this,
42
+ keys: ['ArrowRight', 'ArrowLeft'],
43
+ callback: this._handleArrowNavigation
44
+ });
45
+ }
46
+ _getFocusedTabIndex() {
47
+ const focusedElement = document.activeElement;
48
+ if ((focusedElement === null || focusedElement === void 0 ? void 0 : focusedElement.tagName) !== 'H-TAB')
49
+ return;
50
+ return this._$tabs.findIndex(($tab) => $tab === focusedElement);
51
+ }
52
+ _getNextTabIndex(currentTabIndex) {
53
+ if (currentTabIndex >= this._$tabs.length - 1)
54
+ return;
55
+ return currentTabIndex + 1;
56
+ }
57
+ _getPrevTabIndex(currentTabIndex) {
58
+ if (currentTabIndex <= 0)
59
+ return;
60
+ return currentTabIndex - 1;
61
+ }
62
+ _setupEvents() {
63
+ this.addEventListener(TAB_EVENT_NAMES.selected, this._handleTabSelected);
64
+ }
65
+ allChildrenConnected() {
66
+ const $selectedTab = this.querySelector('h-tab[selected]');
67
+ this._hideNotSelectedAndVisiblePanels();
68
+ if (!$selectedTab)
69
+ return;
70
+ this._$selectedTab = $selectedTab;
71
+ this.switchPanel(this._$selectedTab.panelName);
72
+ }
73
+ _hideNotSelectedAndVisiblePanels() {
74
+ const $notSelectedTabs = [...this.querySelectorAll('h-tab:not([selected])')];
75
+ $notSelectedTabs
76
+ .map(($tab) => $tab.panelName)
77
+ .forEach((panelName) => document.querySelectorAll(`[name="${panelName}"]`).forEach(($panel) => $panel.hide()));
78
+ }
79
+ switchPanel(newPanelName) {
80
+ const $currentPanel = this._$selectedTab && document.querySelectorAll(`[name="${this._$selectedTab.panelName}"]`);
81
+ const $newPanel = document.querySelectorAll(`[name="${newPanelName}"]`);
82
+ if ($currentPanel)
83
+ $currentPanel.forEach(($panel) => $panel.hide());
84
+ if ($newPanel)
85
+ $newPanel.forEach(($panel) => $panel.show());
86
+ }
87
+ _dispatchChangedEvent($previousTab, $newTab) {
88
+ this.dispatchEvent(new CustomEvent(TABS_EVENT_NAMES.changed, {
89
+ detail: {
90
+ $previousTab,
91
+ $newTab
92
+ },
93
+ bubbles: true
94
+ }));
95
+ }
96
+ };
97
+ __decorate([
98
+ state(),
99
+ __metadata("design:type", HTab)
100
+ ], HTabs.prototype, "_$selectedTab", void 0);
101
+ HTabs = __decorate([
102
+ phoenixCustomElement('h-tabs')
103
+ ], HTabs);
104
+
105
+ export { HTabs };
106
+ //# sourceMappingURL=tabs.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;"}
@@ -0,0 +1,3 @@
1
+ export declare const TABS_EVENT_NAMES: {
2
+ readonly changed: "changed";
3
+ };
@@ -0,0 +1,6 @@
1
+ const TABS_EVENT_NAMES = {
2
+ changed: 'changed'
3
+ };
4
+
5
+ export { TABS_EVENT_NAMES };
6
+ //# sourceMappingURL=tabs_constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,4 @@
1
+ import { HTab } from "./tab/tab";
2
+ export declare type TTabSelectedEvent = CustomEvent<{
3
+ $el: HTab;
4
+ }>;
@@ -0,0 +1,2 @@
1
+ import '@phoenixRoot/components/tabs/tab/tab';
2
+ //# sourceMappingURL=tabs_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs_types.js","sourceRoot":"","sources":["../../../../../../../src/components/tabs/tabs_types.ts"],"names":[],"mappings":"AAAA,OAAqB,sCAAsC,CAAC"}
@@ -16,7 +16,7 @@ class VisibilityController {
16
16
  __classPrivateFieldGet(this, _VisibilityController_host, "f").addEventListener('resize', this._handleResize);
17
17
  }
18
18
  _setVisibilityValue() {
19
- const isVisible = this._isVisibleBasedOnCssStyle();
19
+ const isVisible = this._isVisibleBasedOnCssStyle() && !__classPrivateFieldGet(this, _VisibilityController_host, "f").getAttribute('hidden');
20
20
  isVisible ? this.show() : this.hide();
21
21
  }
22
22
  _isVisibleBasedOnCssStyle() {
@@ -28,6 +28,8 @@ class PhoenixLightLitElement extends LitElement {
28
28
  }
29
29
  _setupChildrenWatch() {
30
30
  this.childrenToWatch = this.childrenToWatch ? this.childrenToWatch : this._getComponentsNamesToWatch();
31
+ if (!this.childrenToWatch.length)
32
+ this.allChildrenConnected();
31
33
  this.addEventListener(PHOENIX_LIGHT_LIT_ELEMENTS_EVENT_NAMES.connected, this._handleComponentConnected);
32
34
  }
33
35
  _getComponentsNamesToWatch() {
@@ -41,6 +43,7 @@ class PhoenixLightLitElement extends LitElement {
41
43
  },
42
44
  bubbles: true
43
45
  }));
46
+ this.isWebComponentConnected = true;
44
47
  this._setupChildrenWatch();
45
48
  }
46
49
  allChildrenConnected() { }
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA,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;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA,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;"}
@@ -1,4 +1,4 @@
1
- import { WebComponentsUtils } from '../../../../utilities/build/esm/web_components_utils.js';
1
+ import { WebComponentsUtils } from '@dreamcommerce/utilities';
2
2
 
3
3
  class PhoenixLightLitElementUtils {
4
4
  static getComponentsForWhichToWaitForConnection(components) {
@@ -69,5 +69,9 @@ export { VisibilityController } from './controllers/visibility_controller/visibi
69
69
  export * from './controllers/visibility_controller/visibility_controller_types';
70
70
  export { HSlider } from './components/slider/slider';
71
71
  export * from './components/slider/slider_types';
72
+ export { HTabs } from './components/tabs/tabs';
73
+ export { HTab } from './components/tabs/tab/tab';
74
+ export { HTabPanel } from './components/tabs/tab_panel';
75
+ export { TABS_EVENT_NAMES } from './components/tabs/tabs_constants';
72
76
  export { HScrollTo } from './components/scroll_to/scroll_to';
73
77
  export * from './components/scroll_to/scroll_to_types';
@@ -58,5 +58,9 @@ export { CLICK_OUTSIDE_CONTROLLER_MESSAGES } from './controllers/click_outside_c
58
58
  export { HBackdrop } from './components/backdrop/backdrop.js';
59
59
  export { VisibilityController } from './controllers/visibility_controller/visibility_controller.js';
60
60
  export { HSlider } from './components/slider/slider.js';
61
+ export { HTab } from './components/tabs/tab/tab.js';
62
+ export { HTabPanel } from './components/tabs/tab_panel.js';
63
+ export { TABS_EVENT_NAMES } from './components/tabs/tabs_constants.js';
64
+ export { HTabs } from './components/tabs/tabs.js';
61
65
  export { HScrollTo } from './components/scroll_to/scroll_to.js';
62
66
  //# sourceMappingURL=index.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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@shoper/phoenix_design_system",
3
3
  "packageManager": "yarn@3.2.0",
4
4
  "sideEffects": false,
5
- "version": "0.20.2",
5
+ "version": "0.21.0",
6
6
  "description": "phoenix design system",
7
7
  "author": "zefirek",
8
8
  "license": "MIT",
@@ -30,7 +30,7 @@
30
30
  "@splidejs/splide": "4.0.7"
31
31
  },
32
32
  "devDependencies": {
33
- "@dreamcommerce/utilities": "^0.9.1",
33
+ "@dreamcommerce/utilities": "^0.10.1",
34
34
  "@shoper/jest_config": "^0.0.0",
35
35
  "@shoper/tsconfig": "^0.0.0",
36
36
  "@splidejs/splide": "4.0.7",
@@ -1,25 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- class JsonUtils {
6
- static toJson(value) {
7
- try {
8
- return JSON.stringify(value);
9
- }
10
- catch (error) {
11
- console.error(error);
12
- }
13
- }
14
- static fromJson(value) {
15
- try {
16
- return JSON.parse(value);
17
- }
18
- catch (error) {
19
- console.error(error);
20
- }
21
- }
22
- }
23
-
24
- exports.JsonUtils = JsonUtils;
25
- //# sourceMappingURL=json_utils.js.map
@@ -1,18 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- class WebComponentsUtils {
6
- static isWebComponentDefined($element) {
7
- if (!this.isWebComponent($element))
8
- return false;
9
- const customElementClass = window.customElements.get($element.tagName.toLowerCase());
10
- return !!customElementClass && $element instanceof customElementClass;
11
- }
12
- static isWebComponent($element) {
13
- return $element.tagName.includes('-');
14
- }
15
- }
16
-
17
- exports.WebComponentsUtils = WebComponentsUtils;
18
- //# sourceMappingURL=web_components_utils.js.map
@@ -1,21 +0,0 @@
1
- class JsonUtils {
2
- static toJson(value) {
3
- try {
4
- return JSON.stringify(value);
5
- }
6
- catch (error) {
7
- console.error(error);
8
- }
9
- }
10
- static fromJson(value) {
11
- try {
12
- return JSON.parse(value);
13
- }
14
- catch (error) {
15
- console.error(error);
16
- }
17
- }
18
- }
19
-
20
- export { JsonUtils };
21
- //# sourceMappingURL=json_utils.js.map
@@ -1 +0,0 @@
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;"}
@@ -1,14 +0,0 @@
1
- class WebComponentsUtils {
2
- static isWebComponentDefined($element) {
3
- if (!this.isWebComponent($element))
4
- return false;
5
- const customElementClass = window.customElements.get($element.tagName.toLowerCase());
6
- return !!customElementClass && $element instanceof customElementClass;
7
- }
8
- static isWebComponent($element) {
9
- return $element.tagName.includes('-');
10
- }
11
- }
12
-
13
- export { WebComponentsUtils };
14
- //# sourceMappingURL=web_components_utils.js.map