kemet-ui 3.0.0 → 3.0.1

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 (135) hide show
  1. package/custom-elements.json +657 -715
  2. package/dist/components/kemet-accordion/kemet-accordion-panel.d.ts +2 -2
  3. package/dist/components/kemet-accordion/kemet-accordion-panel.js +1 -1
  4. package/dist/components/kemet-accordion/kemet-accordion-panel.js.map +1 -1
  5. package/dist/components/kemet-accordion/kemet-accordion.d.ts +3 -3
  6. package/dist/components/kemet-accordion/kemet-accordion.js +2 -1
  7. package/dist/components/kemet-accordion/kemet-accordion.js.map +1 -1
  8. package/dist/components/kemet-alert/kemet-alert.d.ts +2 -2
  9. package/dist/components/kemet-alert/kemet-alert.js.map +1 -1
  10. package/dist/components/kemet-badge/kemet-badge.js.map +1 -1
  11. package/dist/components/kemet-button/kemet-button.d.ts +2 -2
  12. package/dist/components/kemet-button/kemet-button.js +1 -1
  13. package/dist/components/kemet-button/kemet-button.js.map +1 -1
  14. package/dist/components/kemet-card/kemet-card.d.ts +1 -1
  15. package/dist/components/kemet-card/kemet-card.js +1 -1
  16. package/dist/components/kemet-card/kemet-card.js.map +1 -1
  17. package/dist/components/kemet-carousel/kemet-carousel-current.d.ts +1 -1
  18. package/dist/components/kemet-carousel/kemet-carousel-current.js.map +1 -1
  19. package/dist/components/kemet-carousel/kemet-carousel-last.d.ts +1 -1
  20. package/dist/components/kemet-carousel/kemet-carousel-last.js +1 -1
  21. package/dist/components/kemet-carousel/kemet-carousel-last.js.map +1 -1
  22. package/dist/components/kemet-carousel/kemet-carousel.d.ts +18 -14
  23. package/dist/components/kemet-carousel/kemet-carousel.js +32 -13
  24. package/dist/components/kemet-carousel/kemet-carousel.js.map +1 -1
  25. package/dist/components/kemet-checkbox/kemet-checkbox.d.ts +4 -4
  26. package/dist/components/kemet-checkbox/kemet-checkbox.js +4 -4
  27. package/dist/components/kemet-checkbox/kemet-checkbox.js.map +1 -1
  28. package/dist/components/kemet-combo/kemet-combo.d.ts +8 -8
  29. package/dist/components/kemet-combo/kemet-combo.js +13 -17
  30. package/dist/components/kemet-combo/kemet-combo.js.map +1 -1
  31. package/dist/components/kemet-count/kemet-count.d.ts +1 -1
  32. package/dist/components/kemet-count/kemet-count.js +1 -1
  33. package/dist/components/kemet-count/kemet-count.js.map +1 -1
  34. package/dist/components/kemet-draggable/kemet-draggable.d.ts +3 -3
  35. package/dist/components/kemet-draggable/kemet-draggable.js +6 -5
  36. package/dist/components/kemet-draggable/kemet-draggable.js.map +1 -1
  37. package/dist/components/kemet-drawer/kemet-drawer.d.ts +2 -2
  38. package/dist/components/kemet-drawer/kemet-drawer.js +2 -2
  39. package/dist/components/kemet-drawer/kemet-drawer.js.map +1 -1
  40. package/dist/components/kemet-drawer/styles.js +1 -0
  41. package/dist/components/kemet-drawer/styles.js.map +1 -1
  42. package/dist/components/kemet-fab/kemet-fab.d.ts +1 -1
  43. package/dist/components/kemet-fab/kemet-fab.js +1 -1
  44. package/dist/components/kemet-fab/kemet-fab.js.map +1 -1
  45. package/dist/components/kemet-field/kemet-field.d.ts +7 -7
  46. package/dist/components/kemet-field/kemet-field.js +9 -14
  47. package/dist/components/kemet-field/kemet-field.js.map +1 -1
  48. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.d.ts +1 -1
  49. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.js +2 -3
  50. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.js.map +1 -1
  51. package/dist/components/kemet-flipcard/kemet-flipcard.d.ts +2 -2
  52. package/dist/components/kemet-flipcard/kemet-flipcard.js +3 -5
  53. package/dist/components/kemet-flipcard/kemet-flipcard.js.map +1 -1
  54. package/dist/components/kemet-input/kemet-input.d.ts +3 -22
  55. package/dist/components/kemet-input/kemet-input.js +3 -23
  56. package/dist/components/kemet-input/kemet-input.js.map +1 -1
  57. package/dist/components/kemet-modal/kemet-modal.d.ts +4 -4
  58. package/dist/components/kemet-modal/kemet-modal.js +3 -3
  59. package/dist/components/kemet-modal/kemet-modal.js.map +1 -1
  60. package/dist/components/kemet-password/kemet-password.d.ts +14 -8
  61. package/dist/components/kemet-password/kemet-password.js +4 -33
  62. package/dist/components/kemet-password/kemet-password.js.map +1 -1
  63. package/dist/components/kemet-popper/kemet-popper-close.d.ts +1 -1
  64. package/dist/components/kemet-popper/kemet-popper-close.js +2 -3
  65. package/dist/components/kemet-popper/kemet-popper-close.js.map +1 -1
  66. package/dist/components/kemet-popper/kemet-popper.d.ts +18 -7
  67. package/dist/components/kemet-popper/kemet-popper.js +21 -25
  68. package/dist/components/kemet-popper/kemet-popper.js.map +1 -1
  69. package/dist/components/kemet-radio/kemet-radios.d.ts +5 -4
  70. package/dist/components/kemet-radio/kemet-radios.js +10 -4
  71. package/dist/components/kemet-radio/kemet-radios.js.map +1 -1
  72. package/dist/components/kemet-rotator/kemet-rotator.d.ts +1 -1
  73. package/dist/components/kemet-rotator/kemet-rotator.js +1 -2
  74. package/dist/components/kemet-rotator/kemet-rotator.js.map +1 -1
  75. package/dist/components/kemet-scroll-link/kemet-scroll-link.d.ts +2 -2
  76. package/dist/components/kemet-scroll-link/kemet-scroll-link.js +11 -10
  77. package/dist/components/kemet-scroll-link/kemet-scroll-link.js.map +1 -1
  78. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.d.ts +2 -2
  79. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js +2 -7
  80. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js.map +1 -1
  81. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.d.ts +5 -4
  82. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js +1 -1
  83. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js.map +1 -1
  84. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.d.ts +1 -1
  85. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.js +1 -1
  86. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.js.map +1 -1
  87. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.d.ts +3 -2
  88. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js +2 -7
  89. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js.map +1 -1
  90. package/dist/components/kemet-select/kemet-option.d.ts +1 -1
  91. package/dist/components/kemet-select/kemet-option.js +1 -1
  92. package/dist/components/kemet-select/kemet-option.js.map +1 -1
  93. package/dist/components/kemet-select/kemet-select.d.ts +19 -10
  94. package/dist/components/kemet-select/kemet-select.js +3 -44
  95. package/dist/components/kemet-select/kemet-select.js.map +1 -1
  96. package/dist/components/kemet-sortable/kemet-sortable.d.ts +5 -5
  97. package/dist/components/kemet-sortable/kemet-sortable.js +5 -5
  98. package/dist/components/kemet-sortable/kemet-sortable.js.map +1 -1
  99. package/dist/components/kemet-svgs/kemet-svgs.d.ts +1 -1
  100. package/dist/components/kemet-svgs/kemet-svgs.js +1 -1
  101. package/dist/components/kemet-svgs/kemet-svgs.js.map +1 -1
  102. package/dist/components/kemet-tabs/kemet-tab-panel.d.ts +1 -0
  103. package/dist/components/kemet-tabs/kemet-tab-panel.js +3 -0
  104. package/dist/components/kemet-tabs/kemet-tab-panel.js.map +1 -1
  105. package/dist/components/kemet-tabs/kemet-tab.d.ts +1 -0
  106. package/dist/components/kemet-tabs/kemet-tab.js +4 -1
  107. package/dist/components/kemet-tabs/kemet-tab.js.map +1 -1
  108. package/dist/components/kemet-tabs/kemet-tabs.d.ts +23 -14
  109. package/dist/components/kemet-tabs/kemet-tabs.js +3 -47
  110. package/dist/components/kemet-tabs/kemet-tabs.js.map +1 -1
  111. package/dist/components/kemet-textarea/kemet-textarea.js.map +1 -1
  112. package/dist/components/kemet-toggle/kemet-toggle.d.ts +3 -3
  113. package/dist/components/kemet-toggle/kemet-toggle.js +3 -3
  114. package/dist/components/kemet-toggle/kemet-toggle.js.map +1 -1
  115. package/dist/components/kemet-tooltip/kemet-tooltip.d.ts +2 -2
  116. package/dist/components/kemet-tooltip/kemet-tooltip.js +13 -12
  117. package/dist/components/kemet-tooltip/kemet-tooltip.js.map +1 -1
  118. package/dist/components/kemet-tracker/kemet-tracker-step.d.ts +2 -2
  119. package/dist/components/kemet-tracker/kemet-tracker-step.js +2 -2
  120. package/dist/components/kemet-tracker/kemet-tracker-step.js.map +1 -1
  121. package/dist/components/kemet-tracker/kemet-tracker.d.ts +2 -1
  122. package/dist/components/kemet-tracker/kemet-tracker.js.map +1 -1
  123. package/dist/components/kemet-upload/kemet-upload-file.js +1 -2
  124. package/dist/components/kemet-upload/kemet-upload-file.js.map +1 -1
  125. package/dist/components/kemet-upload/kemet-upload.d.ts +3 -3
  126. package/dist/components/kemet-upload/kemet-upload.js +3 -8
  127. package/dist/components/kemet-upload/kemet-upload.js.map +1 -1
  128. package/dist/kemet-components.bundle.js +98 -86
  129. package/dist/kemet-components.bundle.js.map +1 -1
  130. package/dist/kemet-components.cjs +8680 -8803
  131. package/dist/kemet-components.js +8680 -8803
  132. package/dist/styles/kemet.core.css +1 -561
  133. package/dist/styles/kemet.core.css.map +1 -1
  134. package/dist/tsconfig.tsbuildinfo +1 -1
  135. package/package.json +5 -3
@@ -4,46 +4,6 @@ import { customElement, property, state } from 'lit/decorators.js';
4
4
  import { FormSubmitController } from '../../utilities/controllers/forms';
5
5
  import { emitEvent } from '../../utilities/misc/events';
6
6
  import { stylesSelect } from './styles';
7
- /**
8
- * @since 1.0.0
9
- * @status stable
10
- *
11
- * @tagname kemet-select
12
- * @summary An enhanced select element.
13
- *
14
- * @prop {string} slug - A string the uniquely identifies the select
15
- * @prop {string} name - The name of the select
16
- * @prop {string} value - The value of the select
17
- * @prop {array} options - The options the select contains
18
- * @prop {string} status - The status of the select
19
- * @prop {boolean} required - Determines whether or not the field is required
20
- * @prop {boolean} disabled - Determines whether or not the field is disabled
21
- * @prop {boolean} multiple - Support of multiple choice selections
22
- * @prop {string} icon - The dropdown icon
23
- * @prop {number} iconSize - The dropdown icon size
24
- * @prop {boolean} filled - Displays a filled select
25
- * @prop {boolean} rounded - Displays rounded corners
26
- *
27
- * @csspart select
28
- *
29
- * @cssproperty --kemet-select-padding - The padding on the textarea.
30
- * @cssproperty --kemet-select-border - The border of the textarea.
31
- * @cssproperty --kemet-select-border-color-error - The border of the error state.
32
- * @cssproperty --kemet-select-border-color-success - The border of the success state.
33
- * @cssproperty --kemet-select-border-color-warning - The border of the warning state.
34
- * @cssproperty --kemet-select-border-radius-rounded - The border radius on rounded.
35
- * @cssproperty --kemet-select-border-filled - The border on filled.
36
- * @cssproperty --kemet-select-color-filled - The color on filled.
37
- * @cssproperty --kemet-select-background-color-filled - The background-color on filled.
38
- * @cssproperty --kemet-select-background-color-error - The error state background color.
39
- * @cssproperty --kemet-select-background-color-success - The success state background color.
40
- * @cssproperty --kemet-select-background-color-warning - The warning state background color.
41
- * @cssproperty --kemet-select-icon-right - The space on the right of the icon.
42
- *
43
- * @event kemet-input-focused - Fires when the input receives and loses focus
44
- * @event kemet-input-status - Fires when there's a change in status
45
- *
46
- */
47
7
  let KemetSelect = class KemetSelect extends LitElement {
48
8
  constructor() {
49
9
  super();
@@ -89,8 +49,6 @@ let KemetSelect = class KemetSelect extends LitElement {
89
49
  this.options = [];
90
50
  this.optionElements = this.querySelectorAll('kemet-option');
91
51
  this.optionElements.forEach((option) => {
92
- // if (index === 0) this.value = option.value;
93
- // this.value = option.selected ? option.value : this.value;
94
52
  this.options = this.options.concat({
95
53
  label: option.label,
96
54
  value: option.value,
@@ -103,7 +61,7 @@ let KemetSelect = class KemetSelect extends LitElement {
103
61
  </option>`);
104
62
  }
105
63
  /**
106
- * Generates an dropdown icon
64
+ * Generates a dropdown icon
107
65
  * @private
108
66
  */
109
67
  makeIcon() {
@@ -145,6 +103,7 @@ let KemetSelect = class KemetSelect extends LitElement {
145
103
  */
146
104
  handleChange() {
147
105
  this.value = this.select.value;
106
+ emitEvent(this, 'kemet-input-change', this.value);
148
107
  if (this.select.checkValidity()) {
149
108
  this.invalid = false;
150
109
  this.status = 'standard';
@@ -174,7 +133,7 @@ let KemetSelect = class KemetSelect extends LitElement {
174
133
  * @returns {boolean}
175
134
  */
176
135
  checkValidity() {
177
- this.select.checkValidity();
136
+ return this.select.checkValidity();
178
137
  }
179
138
  };
180
139
  KemetSelect.styles = [stylesSelect];
@@ -1 +1 @@
1
- {"version":3,"file":"kemet-select.js","sourceRoot":"","sources":["../../../src/components/kemet-select/kemet-select.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, css, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { FormSubmitController } from '../../utilities/controllers/forms';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { KemetFieldInterface } from '../kemet-field/types';\nimport { stylesSelect } from './styles';\nimport { KemetOptionInterface } from './types';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-select\n * @summary An enhanced select element.\n *\n * @prop {string} slug - A string the uniquely identifies the select\n * @prop {string} name - The name of the select\n * @prop {string} value - The value of the select\n * @prop {array} options - The options the select contains\n * @prop {string} status - The status of the select\n * @prop {boolean} required - Determines whether or not the field is required\n * @prop {boolean} disabled - Determines whether or not the field is disabled\n * @prop {boolean} multiple - Support of multiple choice selections\n * @prop {string} icon - The dropdown icon\n * @prop {number} iconSize - The dropdown icon size\n * @prop {boolean} filled - Displays a filled select\n * @prop {boolean} rounded - Displays rounded corners\n *\n * @csspart select\n *\n * @cssproperty --kemet-select-padding - The padding on the textarea.\n * @cssproperty --kemet-select-border - The border of the textarea.\n * @cssproperty --kemet-select-border-color-error - The border of the error state.\n * @cssproperty --kemet-select-border-color-success - The border of the success state.\n * @cssproperty --kemet-select-border-color-warning - The border of the warning state.\n * @cssproperty --kemet-select-border-radius-rounded - The border radius on rounded.\n * @cssproperty --kemet-select-border-filled - The border on filled.\n * @cssproperty --kemet-select-color-filled - The color on filled.\n * @cssproperty --kemet-select-background-color-filled - The background-color on filled.\n * @cssproperty --kemet-select-background-color-error - The error state background color.\n * @cssproperty --kemet-select-background-color-success - The success state background color.\n * @cssproperty --kemet-select-background-color-warning - The warning state background color.\n * @cssproperty --kemet-select-icon-right - The space on the right of the icon.\n *\n * @event kemet-input-focused - Fires when the input receives and loses focus\n * @event kemet-input-status - Fires when there's a change in status\n *\n */\n\n@customElement('kemet-select')\nexport default class KemetSelect extends LitElement {\n formSubmitController: FormSubmitController;\n\n static styles = [stylesSelect];\n\n @property({ type: String })\n slug: string;\n\n @property({ type: String })\n name: string = 'select';\n\n @property({ type: String })\n value: string;\n\n @property({ type: Array })\n options: any[];\n\n @property({ type: String, reflect: true })\n status: string;\n\n @property({ type: Boolean, reflect: true })\n required: boolean;\n\n @property({ type: Boolean, reflect: true })\n disabled: boolean;\n\n @property({ type: Boolean })\n multiple: boolean;\n\n @property({ type: String })\n icon: string = 'chevron-down';\n\n @property({ type: Number, attribute: 'icon-size' })\n iconSize: number = 16;\n\n @property({ type: Boolean, reflect: true })\n filled: boolean;\n\n @property({ type: Boolean, reflect: true })\n rounded: boolean;\n\n @state()\n invalid: boolean;\n\n @state()\n control: KemetFieldInterface;\n\n @state()\n select: HTMLSelectElement;\n\n @state()\n selectedOption: HTMLOptionElement;\n\n @state()\n optionElements: any;\n\n @state()\n hasFocus: boolean;\n\n constructor() {\n super();\n\n /** @internal */\n this.formSubmitController = new FormSubmitController(this);\n\n /** @internal */\n this.control = this.closest('kemet-field');\n }\n\n firstUpdated() {\n this.select = this.shadowRoot.querySelector('select');\n this.selectedOption = this.querySelector('[selected]');\n this.value = this.selectedOption ? this.selectedOption.value : '';\n }\n\n render() {\n return html`\n <select\n part=\"select\"\n id=${this.slug}\n name=${this.name}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?multiple=${this.multiple}\n @change=${this.handleChange}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n @invalid=${this.handleInvalid}\n >\n ${this.makeOptions()}\n </select>\n ${this.makeIcon()}\n <slot @slotchange=${() => this.makeOptions()}></slot>\n `;\n }\n\n /**\n * Generates the option elements\n * @private\n * @returns {TemplateResult} An option element\n */\n makeOptions() {\n this.options = [];\n this.optionElements = this.querySelectorAll('kemet-option');\n\n this.optionElements.forEach((option) => {\n // if (index === 0) this.value = option.value;\n // this.value = option.selected ? option.value : this.value;\n this.options = this.options.concat({\n label: option.label,\n value: option.value,\n disabled: option.disabled,\n selected: option.selected,\n });\n });\n\n return this.options.map(\n option => html`<option value=${option.value} ?disabled=${option.disabled} ?selected=${option.selected}>\n ${option.label}\n </option>`,\n );\n }\n\n /**\n * Generates an dropdown icon\n * @private\n */\n makeIcon() {\n if (this.icon || this.icon !== '') {\n return html`<kemet-icon icon=${this.icon} size=${this.iconSize}></kemet-icon>`;\n }\n\n return null;\n }\n\n /**\n * Handles when the input receives focus\n * @private\n */\n handleFocus() {\n this.hasFocus = true;\n emitEvent(this, 'kemet-input-focused', true);\n }\n\n /**\n * Handles when the input loses focus\n * @private\n */\n handleBlur() {\n this.hasFocus = false;\n emitEvent(this, 'kemet-input-focused', false);\n\n this.select.checkValidity();\n\n if (!this.select.checkValidity()) {\n this.invalid = true;\n this.status = 'error';\n this.control.status = 'error';\n\n emitEvent(this, 'kemet-input-status', {\n status: 'error',\n validity: this.select.validity,\n element: this,\n });\n }\n }\n\n /**\n * Handles when the input changes value\n * @private\n */\n handleChange() {\n this.value = this.select.value;\n\n if (this.select.checkValidity()) {\n this.invalid = false;\n this.status = 'standard';\n\n emitEvent(this, 'kemet-input-status', {\n status: 'standard',\n validity: this.select.validity,\n element: this,\n });\n }\n }\n\n /**\n * Handles when the input has an error\n * @private\n */\n handleInvalid() {\n this.invalid = true;\n this.status = 'error';\n\n emitEvent(this, 'kemet-input-status', {\n status: 'error',\n validity: this.select.validity,\n element: this,\n });\n }\n\n /**\n * Checks the validity of the standard select\n * @public\n * @returns {boolean}\n */\n checkValidity() {\n this.select.checkValidity();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-select': KemetSelect\n }\n}\n"]}
1
+ {"version":3,"file":"kemet-select.js","sourceRoot":"","sources":["../../../src/components/kemet-select/kemet-select.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, TemplateResult } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { FormSubmitController } from '../../utilities/controllers/forms';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { KemetFieldInterface } from '../kemet-field/types';\nimport { stylesSelect } from './styles';\n\nimport type KemetOption from './kemet-option';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-select\n * @summary An enhanced select element.\n *\n * @prop {string} slug - A string the uniquely identifies the select\n * @prop {string} name - The name of the select\n * @prop {string} value - The value of the select\n * @prop {array} options - The options the select contains\n * @prop {string} status - The status of the select\n * @prop {boolean} required - Determines whether the field is required\n * @prop {boolean} disabled - Determines whether the field is disabled\n * @prop {boolean} multiple - Support of multiple choice selections\n * @prop {string} icon - The dropdown icon\n * @prop {number} iconSize - The dropdown icon size\n * @prop {boolean} filled - Displays a filled select\n * @prop {boolean} rounded - Displays rounded corners\n *\n * @csspart select\n *\n * @cssproperty --kemet-select-padding - The padding on the textarea.\n * @cssproperty --kemet-select-border - The border of the textarea.\n * @cssproperty --kemet-select-border-color-error - The border of the error state.\n * @cssproperty --kemet-select-border-color-success - The border of the success state.\n * @cssproperty --kemet-select-border-color-warning - The border of the warning state.\n * @cssproperty --kemet-select-border-radius-rounded - The border radius on rounded.\n * @cssproperty --kemet-select-border-filled - The border on filled.\n * @cssproperty --kemet-select-color-filled - The color on filled.\n * @cssproperty --kemet-select-background-color-filled - The background-color on filled.\n * @cssproperty --kemet-select-background-color-error - The error state background color.\n * @cssproperty --kemet-select-background-color-success - The success state background color.\n * @cssproperty --kemet-select-background-color-warning - The warning state background color.\n * @cssproperty --kemet-select-icon-right - The space on the right of the icon.\n *\n * @event kemet-input-focused - Fires when the input receives and loses focus\n * @event kemet-input-status - Fires when there's a change in status\n * @event kemet-input-change - Fires when the select input changes\n *\n */\n\ninterface IOptions {\n label: string;\n value: string;\n disabled: boolean;\n selected: boolean;\n}\n\n@customElement('kemet-select')\nexport default class KemetSelect extends LitElement {\n formSubmitController: FormSubmitController;\n\n static styles = [stylesSelect];\n\n @property({ type: String })\n slug: string;\n\n @property({ type: String })\n name: string = 'select';\n\n @property({ type: String })\n value: string;\n\n @property({ type: Array })\n options: IOptions[];\n\n @property({ type: String, reflect: true })\n status: string;\n\n @property({ type: Boolean, reflect: true })\n required: boolean;\n\n @property({ type: Boolean, reflect: true })\n disabled: boolean;\n\n @property({ type: Boolean })\n multiple: boolean;\n\n @property({ type: String })\n icon: string = 'chevron-down';\n\n @property({ type: Number, attribute: 'icon-size' })\n iconSize: number = 16;\n\n @property({ type: Boolean, reflect: true })\n filled: boolean;\n\n @property({ type: Boolean, reflect: true })\n rounded: boolean;\n\n @state()\n invalid: boolean;\n\n @state()\n control: KemetFieldInterface;\n\n @state()\n select: HTMLSelectElement;\n\n @state()\n selectedOption: HTMLOptionElement;\n\n @state()\n optionElements: NodeListOf<KemetOption>;\n\n @state()\n hasFocus: boolean;\n\n constructor() {\n super();\n\n /** @internal */\n this.formSubmitController = new FormSubmitController(this);\n\n /** @internal */\n this.control = this.closest('kemet-field');\n }\n\n firstUpdated() {\n this.select = this.shadowRoot.querySelector('select');\n this.selectedOption = this.querySelector('[selected]');\n this.value = this.selectedOption ? this.selectedOption.value : '';\n }\n\n render() {\n return html`\n <select\n part=\"select\"\n id=${this.slug}\n name=${this.name}\n ?required=${this.required}\n ?disabled=${this.disabled}\n ?multiple=${this.multiple}\n @change=${this.handleChange}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n @invalid=${this.handleInvalid}\n >\n ${this.makeOptions()}\n </select>\n ${this.makeIcon()}\n <slot @slotchange=${() => this.makeOptions()}></slot>\n `;\n }\n\n /**\n * Generates the option elements\n * @private\n * @returns {TemplateResult} An option element\n */\n makeOptions(): TemplateResult<1>[] {\n this.options = [];\n this.optionElements = this.querySelectorAll('kemet-option');\n\n this.optionElements.forEach((option: KemetOption) => {\n this.options = this.options.concat({\n label: option.label,\n value: option.value,\n disabled: option.disabled,\n selected: option.selected,\n });\n });\n\n return this.options.map(\n option => html`<option value=${option.value} ?disabled=${option.disabled} ?selected=${option.selected}>\n ${option.label}\n </option>`,\n );\n }\n\n /**\n * Generates a dropdown icon\n * @private\n */\n makeIcon() {\n if (this.icon || this.icon !== '') {\n return html`<kemet-icon icon=${this.icon} size=${this.iconSize}></kemet-icon>`;\n }\n\n return null;\n }\n\n /**\n * Handles when the input receives focus\n * @private\n */\n handleFocus() {\n this.hasFocus = true;\n emitEvent(this, 'kemet-input-focused', true);\n }\n\n /**\n * Handles when the input loses focus\n * @private\n */\n handleBlur() {\n this.hasFocus = false;\n emitEvent(this, 'kemet-input-focused', false);\n\n this.select.checkValidity();\n\n if (!this.select.checkValidity()) {\n this.invalid = true;\n this.status = 'error';\n this.control.status = 'error';\n\n emitEvent(this, 'kemet-input-status', {\n status: 'error',\n validity: this.select.validity,\n element: this,\n });\n }\n }\n\n /**\n * Handles when the input changes value\n * @private\n */\n handleChange() {\n this.value = this.select.value;\n emitEvent(this, 'kemet-input-change', this.value);\n\n if (this.select.checkValidity()) {\n this.invalid = false;\n this.status = 'standard';\n\n emitEvent(this, 'kemet-input-status', {\n status: 'standard',\n validity: this.select.validity,\n element: this,\n });\n }\n }\n\n /**\n * Handles when the input has an error\n * @private\n */\n handleInvalid() {\n this.invalid = true;\n this.status = 'error';\n\n emitEvent(this, 'kemet-input-status', {\n status: 'error',\n validity: this.select.validity,\n element: this,\n });\n }\n\n /**\n * Checks the validity of the standard select\n * @public\n * @returns {boolean}\n */\n checkValidity(): boolean {\n return this.select.checkValidity();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-select': KemetSelect\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { LitElement } from 'lit';
2
- import { KemetSortableItemInterface } from './types';
2
+ import type KemetSortableItem from './kemet-sortable-item';
3
3
  /**
4
4
  * @since 1.3.0
5
5
  * @status stable
@@ -11,12 +11,12 @@ import { KemetSortableItemInterface } from './types';
11
11
  */
12
12
  export default class KemetSortable extends LitElement {
13
13
  static styles: import("lit").CSSResult[];
14
- sortableItem: KemetSortableItemInterface;
14
+ sortableItem: KemetSortableItem;
15
15
  firstUpdated(): void;
16
16
  render(): import("lit-html").TemplateResult<1>;
17
- handleDragStart(event: any): void;
18
- handleDragOver(event: any): void;
19
- handleDragEnd(event: any): void;
17
+ handleDragStart(event: DragEvent): void;
18
+ handleDragOver(event: DragEvent): void;
19
+ handleDragEnd(event: DragEvent): void;
20
20
  }
21
21
  declare global {
22
22
  interface HTMLElementTagNameMap {
@@ -5,12 +5,12 @@ import { polyfill } from 'mobile-drag-drop';
5
5
  import { emitEvent } from '../../utilities/misc/events';
6
6
  import { stylesSortable } from './styles';
7
7
  const getMouseOffset = (event) => {
8
- const targetRect = event.target.getBoundingClientRect();
9
- const offset = {
8
+ const target = event.target;
9
+ const targetRect = target.getBoundingClientRect();
10
+ return {
10
11
  x: event.pageX - targetRect.left,
11
12
  y: event.pageY - targetRect.top,
12
13
  };
13
- return offset;
14
14
  };
15
15
  const getElementVerticalCenter = (element) => {
16
16
  const rect = element.getBoundingClientRect();
@@ -44,10 +44,10 @@ let KemetSortable = class KemetSortable extends LitElement {
44
44
  }
45
45
  handleDragOver(event) {
46
46
  event.preventDefault();
47
- const { target } = event;
47
+ const target = event.target;
48
48
  if (target && target.tagName === 'KEMET-SORTABLE-ITEM') {
49
49
  const offset = getMouseOffset(event);
50
- const middleY = getElementVerticalCenter(event.target);
50
+ const middleY = getElementVerticalCenter(target);
51
51
  if (offset.y > middleY) {
52
52
  this.insertBefore(this.sortableItem, target.nextSibling);
53
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"kemet-sortable.js","sourceRoot":"","sources":["../../../src/components/kemet-sortable/kemet-sortable.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,EAAE;IAC/B,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG;QACb,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI;QAChC,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG;KAChC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,EAAE;IAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAC7C,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;;;;;;;GAQG;AAGH,IAAqB,aAAa,GAAlC,MAAqB,aAAc,SAAQ,UAAU;IAMnD,YAAY;QACV,QAAQ,EAAE,CAAC;QAEX,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAChF,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;IAED,eAAe,CAAC,KAAK;QACnB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;QAEjC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9F,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;QAE1F,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;QACjC,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC;IAED,cAAc,CAAC,KAAK;QAClB,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAEzB,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,qBAAqB,EAAE;YACtD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEvD,IAAI,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE;gBACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;aAC1D;iBAAM;gBACL,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;aAC9C;SACF;IACH,CAAC;IAED,aAAa,CAAC,KAAK;QACjB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;QAEhC,SAAS,CAAC,IAAI,EAAE,yBAAyB,EAAE;YACzC,KAAK;YACL,OAAO,EAAE,IAAI,CAAC,YAAY;YAC1B,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;SAClD,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAtDQ,oBAAM,GAAG,CAAC,cAAc,CAAC,CAAC;AAGjC;IADC,KAAK,EAAE;mDACiC;AAJtB,aAAa;IADjC,aAAa,CAAC,gBAAgB,CAAC;GACX,aAAa,CAuDjC;eAvDoB,aAAa","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport { polyfill } from 'mobile-drag-drop';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { stylesSortable } from './styles';\nimport { KemetSortableItemInterface } from './types';\n\nconst getMouseOffset = (event) => {\n const targetRect = event.target.getBoundingClientRect();\n const offset = {\n x: event.pageX - targetRect.left,\n y: event.pageY - targetRect.top,\n };\n\n return offset;\n};\n\nconst getElementVerticalCenter = (element) => {\n const rect = element.getBoundingClientRect();\n return (rect.bottom - rect.top) / 2;\n};\n\n/**\n * @since 1.3.0\n * @status stable\n *\n * @tagname kemet-sortable\n * @summary A list that can be sorted by drag and drop.\n *\n * @event kemet-sortable-drag-end - Fires when an item has been moved to a new spot.\n */\n\n@customElement('kemet-sortable')\nexport default class KemetSortable extends LitElement {\n static styles = [stylesSortable];\n\n @state()\n sortableItem: KemetSortableItemInterface;\n\n firstUpdated() {\n polyfill();\n\n this.addEventListener('dragstart', event => this.handleDragStart(event), false);\n this.addEventListener('dragenter', (event) => { event.preventDefault(); });\n }\n\n render() {\n return html`<slot></slot>`;\n }\n\n handleDragStart(event) {\n this.sortableItem = event.target;\n\n this.addEventListener('dragover', dragOverEvent => this.handleDragOver(dragOverEvent), false);\n this.addEventListener('dragend', dragEndEvent => this.handleDragEnd(dragEndEvent), false);\n\n setTimeout(() => {\n this.sortableItem.ghost = true;\n }, 0);\n }\n\n handleDragOver(event) {\n event.preventDefault();\n\n const { target } = event;\n\n if (target && target.tagName === 'KEMET-SORTABLE-ITEM') {\n const offset = getMouseOffset(event);\n const middleY = getElementVerticalCenter(event.target);\n\n if (offset.y > middleY) {\n this.insertBefore(this.sortableItem, target.nextSibling);\n } else {\n this.insertBefore(this.sortableItem, target);\n }\n }\n }\n\n handleDragEnd(event) {\n event.preventDefault();\n this.sortableItem.ghost = false;\n\n emitEvent(this, 'kemet-sortable-drag-end', {\n event,\n current: this.sortableItem,\n all: this.querySelectorAll('kemet-sortable-item'),\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-sortable': KemetSortable\n }\n}\n"]}
1
+ {"version":3,"file":"kemet-sortable.js","sourceRoot":"","sources":["../../../src/components/kemet-sortable/kemet-sortable.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport { polyfill } from 'mobile-drag-drop';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { stylesSortable } from './styles';\nimport type KemetSortableItem from './kemet-sortable-item';\n\nconst getMouseOffset = (event: DragEvent) => {\n const target = event.target as HTMLElement;\n const targetRect = target.getBoundingClientRect();\n return {\n x: event.pageX - targetRect.left,\n y: event.pageY - targetRect.top,\n };\n};\n\nconst getElementVerticalCenter = (element: HTMLElement) => {\n const rect = element.getBoundingClientRect();\n return (rect.bottom - rect.top) / 2;\n};\n\n/**\n * @since 1.3.0\n * @status stable\n *\n * @tagname kemet-sortable\n * @summary A list that can be sorted by drag and drop.\n *\n * @event kemet-sortable-drag-end - Fires when an item has been moved to a new spot.\n */\n\n@customElement('kemet-sortable')\nexport default class KemetSortable extends LitElement {\n static styles = [stylesSortable];\n\n @state()\n sortableItem: KemetSortableItem;\n\n firstUpdated() {\n polyfill();\n\n this.addEventListener('dragstart', event => this.handleDragStart(event), false);\n this.addEventListener('dragenter', (event) => { event.preventDefault(); });\n }\n\n render() {\n return html`<slot></slot>`;\n }\n\n handleDragStart(event: DragEvent) {\n this.sortableItem = event.target as KemetSortableItem;\n\n this.addEventListener('dragover', dragOverEvent => this.handleDragOver(dragOverEvent), false);\n this.addEventListener('dragend', dragEndEvent => this.handleDragEnd(dragEndEvent), false);\n\n setTimeout(() => {\n this.sortableItem.ghost = true;\n }, 0);\n }\n\n handleDragOver(event: DragEvent) {\n event.preventDefault();\n\n const target = event.target as KemetSortableItem;\n\n if (target && target.tagName === 'KEMET-SORTABLE-ITEM') {\n const offset = getMouseOffset(event);\n const middleY = getElementVerticalCenter(target);\n\n if (offset.y > middleY) {\n this.insertBefore(this.sortableItem, target.nextSibling);\n } else {\n this.insertBefore(this.sortableItem, target);\n }\n }\n }\n\n handleDragEnd(event: DragEvent) {\n event.preventDefault();\n this.sortableItem.ghost = false;\n\n emitEvent(this, 'kemet-sortable-drag-end', {\n event,\n current: this.sortableItem,\n all: this.querySelectorAll('kemet-sortable-item'),\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-sortable': KemetSortable\n }\n}\n"]}
@@ -4,7 +4,7 @@ import { LitElement } from 'lit';
4
4
  * @status stable
5
5
  *
6
6
  * @tagname kemet-svgs
7
- * @summary A set of SVG graphics that can be referenced any where in a page or app.
7
+ * @summary A set of SVG graphics that can be referenced anywhere in a page or app.
8
8
  *
9
9
  * @prop {string} set - Defines the name for the set of svgs.
10
10
  *
@@ -6,7 +6,7 @@ import { customElement, property, state } from 'lit/decorators.js';
6
6
  * @status stable
7
7
  *
8
8
  * @tagname kemet-svgs
9
- * @summary A set of SVG graphics that can be referenced any where in a page or app.
9
+ * @summary A set of SVG graphics that can be referenced anywhere in a page or app.
10
10
  *
11
11
  * @prop {string} set - Defines the name for the set of svgs.
12
12
  *
@@ -1 +1 @@
1
- {"version":3,"file":"kemet-svgs.js","sourceRoot":"","sources":["../../../src/components/kemet-svgs/kemet-svgs.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;;;;;;GASG;AAGH,IAAqB,SAAS,GAA9B,MAAqB,SAAU,SAAQ,UAAU;IAAjD;;QAQE,QAAG,GAAW,MAAM,CAAC;IA0BvB,CAAC;IApBC,YAAY;QACV,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACzD,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;QAE9C,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;IAED,aAAa;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAElE,IAAI,WAAW,EAAE;YACf,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;SAC5C;IACH,CAAC;CACF,CAAA;AAjCQ,gBAAM,GAAG,CAAC,GAAG,CAAA;;;;GAInB,CAAC,CAAC;AAGH;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCACN;AAGrB;IADC,KAAK,EAAE;8CACqB;AAXV,SAAS;IAD7B,aAAa,CAAC,YAAY,CAAC;GACP,SAAS,CAkC7B;eAlCoB,SAAS","sourcesContent":["import { LitElement, html, css } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-svgs\n * @summary A set of SVG graphics that can be referenced any where in a page or app.\n *\n * @prop {string} set - Defines the name for the set of svgs.\n *\n */\n\n@customElement('kemet-svgs')\nexport default class KemetSVGs extends LitElement {\n static styles = [css`\n :host {\n display: none;\n }\n `];\n\n @property({ type: String })\n set: string = 'svgs';\n\n @state()\n slotElement: HTMLSlotElement;\n\n\n firstUpdated() {\n this.slotElement = this.shadowRoot.querySelector('slot');\n document.kemetSVGs = document.kemetSVGs || {};\n\n this.populateIcons();\n this.slotElement.addEventListener('slotchange', () => this.populateIcons());\n }\n\n render() {\n return html`<slot></slot>`;\n }\n\n populateIcons() {\n const svg = this.slotElement.assignedElements()[0];\n const svgContents = svg ? svg.querySelectorAll('defs > g') : null;\n\n if (svgContents) {\n document.kemetSVGs[this.set] = svgContents;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-svgs': KemetSVGs\n }\n\n interface Document {\n kemetSVGs: any;\n }\n}\n"]}
1
+ {"version":3,"file":"kemet-svgs.js","sourceRoot":"","sources":["../../../src/components/kemet-svgs/kemet-svgs.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;;;;;;GASG;AAGH,IAAqB,SAAS,GAA9B,MAAqB,SAAU,SAAQ,UAAU;IAAjD;;QAQE,QAAG,GAAW,MAAM,CAAC;IAyBvB,CAAC;IApBC,YAAY;QACV,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACzD,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;QAE9C,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;IAED,aAAa;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAElE,IAAI,WAAW,EAAE;YACf,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;SAC5C;IACH,CAAC;CACF,CAAA;AAhCQ,gBAAM,GAAG,CAAC,GAAG,CAAA;;;;GAInB,CAAC,CAAC;AAGH;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCACN;AAGrB;IADC,KAAK,EAAE;8CACqB;AAXV,SAAS;IAD7B,aAAa,CAAC,YAAY,CAAC;GACP,SAAS,CAiC7B;eAjCoB,SAAS","sourcesContent":["import { LitElement, html, css } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-svgs\n * @summary A set of SVG graphics that can be referenced anywhere in a page or app.\n *\n * @prop {string} set - Defines the name for the set of svgs.\n *\n */\n\n@customElement('kemet-svgs')\nexport default class KemetSVGs extends LitElement {\n static styles = [css`\n :host {\n display: none;\n }\n `];\n\n @property({ type: String })\n set: string = 'svgs';\n\n @state()\n slotElement: HTMLSlotElement;\n\n firstUpdated() {\n this.slotElement = this.shadowRoot.querySelector('slot');\n document.kemetSVGs = document.kemetSVGs || {};\n\n this.populateIcons();\n this.slotElement.addEventListener('slotchange', () => this.populateIcons());\n }\n\n render() {\n return html`<slot></slot>`;\n }\n\n populateIcons() {\n const svg = this.slotElement.assignedElements()[0];\n const svgContents = svg ? svg.querySelectorAll('defs > g') : null;\n\n if (svgContents) {\n document.kemetSVGs[this.set] = svgContents;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-svgs': KemetSVGs\n }\n\n interface Document {\n kemetSVGs: any;\n }\n}\n"]}
@@ -16,6 +16,7 @@ export default class KemetTabPanel extends LitElement {
16
16
  static styles: import("lit").CSSResult[];
17
17
  selected: boolean;
18
18
  panel: string;
19
+ index: number;
19
20
  updated(): void;
20
21
  render(): import("lit-html").TemplateResult<1>;
21
22
  a11y(): void;
@@ -45,6 +45,9 @@ __decorate([
45
45
  __decorate([
46
46
  property({ type: String })
47
47
  ], KemetTabPanel.prototype, "panel", void 0);
48
+ __decorate([
49
+ property({ type: Number })
50
+ ], KemetTabPanel.prototype, "index", void 0);
48
51
  KemetTabPanel = __decorate([
49
52
  customElement('kemet-tab-panel')
50
53
  ], KemetTabPanel);
@@ -1 +1 @@
1
- {"version":3,"file":"kemet-tab-panel.js","sourceRoot":"","sources":["../../../src/components/kemet-tabs/kemet-tab-panel.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;;;;;;;;;GAYG;AAGH,IAAqB,aAAa,GAAlC,MAAqB,aAAc,SAAQ,UAAU;IAArD;;QAIE,aAAQ,GAAY,KAAK,CAAC;IAwB5B,CAAC;IAnBC,OAAO;QACL,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;KAEV,CAAC;IACJ,CAAC;IAED,IAAI;QACF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAEtC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;SACpC;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;SACrC;IACH,CAAC;CACF,CAAA;AA3BQ,oBAAM,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAGtC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CACjB;AAG1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACb;AAPK,aAAa;IADjC,aAAa,CAAC,iBAAiB,CAAC;GACZ,aAAa,CA4BjC;eA5BoB,aAAa","sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { stylesKemetTabPanel } from './styles';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-tab-panel\n * @summary A panel in a set of tabs.\n *\n * @prop {boolean} selected - Is true when a panel is selected\n * @prop {string} panel - Identifies the panel to be linked by a tab\n *\n * @cssproperty --kemet-tab-panel-fade-speed - The fade speed.\n *\n */\n\n@customElement('kemet-tab-panel')\nexport default class KemetTabPanel extends LitElement {\n static styles = [stylesKemetTabPanel];\n\n @property({ type: Boolean, reflect: true })\n selected: boolean = false;\n\n @property({ type: String })\n panel: string;\n\n updated() {\n this.a11y();\n }\n\n render() {\n return html`\n <slot></slot>\n `;\n }\n\n a11y() {\n this.setAttribute('role', 'tabpanel');\n\n if (this.selected) {\n this.setAttribute('tabindex', '0');\n } else {\n this.setAttribute('tabindex', '-1');\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-tab-panel': KemetTabPanel\n }\n}\n\n"]}
1
+ {"version":3,"file":"kemet-tab-panel.js","sourceRoot":"","sources":["../../../src/components/kemet-tabs/kemet-tab-panel.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;;;;;;;;;GAYG;AAGH,IAAqB,aAAa,GAAlC,MAAqB,aAAc,SAAQ,UAAU;IAArD;;QAIE,aAAQ,GAAY,KAAK,CAAC;IA2B5B,CAAC;IAnBC,OAAO;QACL,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;KAEV,CAAC;IACJ,CAAC;IAED,IAAI;QACF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAEtC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;SACpC;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;SACrC;IACH,CAAC;CACF,CAAA;AA9BQ,oBAAM,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAGtC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CACjB;AAG1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACb;AAGd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACb;AAVK,aAAa;IADjC,aAAa,CAAC,iBAAiB,CAAC;GACZ,aAAa,CA+BjC;eA/BoB,aAAa","sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { stylesKemetTabPanel } from './styles';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-tab-panel\n * @summary A panel in a set of tabs.\n *\n * @prop {boolean} selected - Is true when a panel is selected\n * @prop {string} panel - Identifies the panel to be linked by a tab\n *\n * @cssproperty --kemet-tab-panel-fade-speed - The fade speed.\n *\n */\n\n@customElement('kemet-tab-panel')\nexport default class KemetTabPanel extends LitElement {\n static styles = [stylesKemetTabPanel];\n\n @property({ type: Boolean, reflect: true })\n selected: boolean = false;\n\n @property({ type: String })\n panel: string;\n\n @property({ type: Number })\n index: number;\n\n updated() {\n this.a11y();\n }\n\n render() {\n return html`\n <slot></slot>\n `;\n }\n\n a11y() {\n this.setAttribute('role', 'tabpanel');\n\n if (this.selected) {\n this.setAttribute('tabindex', '0');\n } else {\n this.setAttribute('tabindex', '-1');\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-tab-panel': KemetTabPanel\n }\n}\n"]}
@@ -19,6 +19,7 @@ import { LitElement } from 'lit';
19
19
  */
20
20
  export default class KemetTab extends LitElement {
21
21
  static styles: import("lit").CSSResult[];
22
+ index: number;
22
23
  selected: boolean;
23
24
  link: string;
24
25
  closable: boolean;
@@ -1,7 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { LitElement, html } from 'lit';
3
- import { emitEvent } from '../../utilities/misc/events';
4
3
  import { customElement, property } from 'lit/decorators.js';
4
+ import { emitEvent } from '../../utilities/misc/events';
5
5
  import { stylesKemetTab } from './styles';
6
6
  /**
7
7
  * @since 1.0.0
@@ -63,6 +63,9 @@ let KemetTab = class KemetTab extends LitElement {
63
63
  }
64
64
  };
65
65
  KemetTab.styles = [stylesKemetTab];
66
+ __decorate([
67
+ property({ type: Number })
68
+ ], KemetTab.prototype, "index", void 0);
66
69
  __decorate([
67
70
  property({ type: Boolean, reflect: true })
68
71
  ], KemetTab.prototype, "selected", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"kemet-tab.js","sourceRoot":"","sources":["../../../src/components/kemet-tabs/kemet-tab.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C;;;;;;;;;;;;;;;;;GAiBG;AAGH,IAAqB,QAAQ,GAA7B,MAAqB,QAAS,SAAQ,UAAU;IAAhD;;QAIE,aAAQ,GAAY,KAAK,CAAC;IAmD5B,CAAC;IA1CC,YAAY;QACV,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;QAEP,IAAI,CAAC,aAAa,EAAE;KACvB,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,SAAS,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI;QACF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;SACpC;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;SACrC;IACH,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAA,kCAAkC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC;SAC1F;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc;QACZ,SAAS,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF,CAAA;AAtDQ,eAAM,GAAG,CAAC,cAAc,CAAC,CAAC;AAGjC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0CACjB;AAG1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCACd;AAGb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACV;AAVC,QAAQ;IAD5B,aAAa,CAAC,WAAW,CAAC;GACN,QAAQ,CAuD5B;eAvDoB,QAAQ","sourcesContent":["import { LitElement, html } from 'lit';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { customElement, property } from 'lit/decorators.js';\nimport { stylesKemetTab } from './styles';\n\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-tab\n * @summary A tab in a set of tabs.\n *\n * @prop {boolean} selected - Is true when the tab is selected\n * @prop {string} link - Links to a panel name\n * @prop {boolean} closable - Determines if the tab can be closed\n *\n * @cssproperty --kemet-tab-padding - The padding of the tab.\n * @cssproperty --kemet-tab-color - The color of the selected tab.\n *\n * @event kemet-tab-selected - Fires when a tab is selected\n * @event kemet-tab-close - Fires when the tab should close\n *\n */\n\n@customElement('kemet-tab')\nexport default class KemetTab extends LitElement {\n static styles = [stylesKemetTab];\n\n @property({ type: Boolean, reflect: true })\n selected: boolean = false;\n\n @property({ type: String })\n link: string;\n\n @property({ type: Boolean })\n closable: boolean;\n\n\n firstUpdated() {\n this.addEventListener('click', this.select.bind(this));\n }\n\n updated() {\n this.a11y();\n }\n\n render() {\n return html`\n <slot></slot>\n ${this.makeCloseable()}\n `;\n }\n\n select() {\n emitEvent(this, 'kemet-tab-selected', this);\n }\n\n a11y() {\n this.setAttribute('role', 'tab');\n\n if (this.selected) {\n this.setAttribute('aria-selected', 'true');\n this.setAttribute('tabindex', '0');\n } else {\n this.setAttribute('aria-selected', 'false');\n this.setAttribute('tabindex', '-1');\n }\n }\n\n makeCloseable() {\n if (this.closable) {\n return html`<kemet-icon icon=\"x-lg\" @click=${() => this.handleClosable()}></kemet-icon>`;\n }\n\n return null;\n }\n\n handleClosable() {\n emitEvent(this, 'kemet-tab-close', this);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-tab': KemetTab\n }\n}\n\n"]}
1
+ {"version":3,"file":"kemet-tab.js","sourceRoot":"","sources":["../../../src/components/kemet-tabs/kemet-tab.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C;;;;;;;;;;;;;;;;;GAiBG;AAGH,IAAqB,QAAQ,GAA7B,MAAqB,QAAS,SAAQ,UAAU;IAAhD;;QAOE,aAAQ,GAAY,KAAK,CAAC;IAkD5B,CAAC;IA1CC,YAAY;QACV,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;QAEP,IAAI,CAAC,aAAa,EAAE;KACvB,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,SAAS,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI;QACF,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;SACpC;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;SACrC;IACH,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAA,kCAAkC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,gBAAgB,CAAC;SAC1F;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc;QACZ,SAAS,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF,CAAA;AAxDQ,eAAM,GAAG,CAAC,cAAc,CAAC,CAAC;AAGjC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uCACb;AAGd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;0CACjB;AAG1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCACd;AAGb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACV;AAbC,QAAQ;IAD5B,aAAa,CAAC,WAAW,CAAC;GACN,QAAQ,CAyD5B;eAzDoB,QAAQ","sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { stylesKemetTab } from './styles';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-tab\n * @summary A tab in a set of tabs.\n *\n * @prop {boolean} selected - Is true when the tab is selected\n * @prop {string} link - Links to a panel name\n * @prop {boolean} closable - Determines if the tab can be closed\n *\n * @cssproperty --kemet-tab-padding - The padding of the tab.\n * @cssproperty --kemet-tab-color - The color of the selected tab.\n *\n * @event kemet-tab-selected - Fires when a tab is selected\n * @event kemet-tab-close - Fires when the tab should close\n *\n */\n\n@customElement('kemet-tab')\nexport default class KemetTab extends LitElement {\n static styles = [stylesKemetTab];\n\n @property({ type: Number })\n index: number;\n\n @property({ type: Boolean, reflect: true })\n selected: boolean = false;\n\n @property({ type: String })\n link: string;\n\n @property({ type: Boolean })\n closable: boolean;\n\n firstUpdated() {\n this.addEventListener('click', this.select.bind(this));\n }\n\n updated() {\n this.a11y();\n }\n\n render() {\n return html`\n <slot></slot>\n ${this.makeCloseable()}\n `;\n }\n\n select() {\n emitEvent(this, 'kemet-tab-selected', this);\n }\n\n a11y() {\n this.setAttribute('role', 'tab');\n\n if (this.selected) {\n this.setAttribute('aria-selected', 'true');\n this.setAttribute('tabindex', '0');\n } else {\n this.setAttribute('aria-selected', 'false');\n this.setAttribute('tabindex', '-1');\n }\n }\n\n makeCloseable() {\n if (this.closable) {\n return html`<kemet-icon icon=\"x-lg\" @click=${() => this.handleClosable()}></kemet-icon>`;\n }\n\n return null;\n }\n\n handleClosable() {\n emitEvent(this, 'kemet-tab-close', this);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-tab': KemetTab\n }\n}\n"]}
@@ -1,5 +1,7 @@
1
1
  import { LitElement } from 'lit';
2
2
  import { TypePanelEffect, TypePlacement, TypeTabsAlign } from './types';
3
+ import type KemetTab from './kemet-tab';
4
+ import type KemetTabPanel from './kemet-tab-panel';
3
5
  /**
4
6
  * @since 1.0.0
5
7
  * @status stable
@@ -11,12 +13,12 @@ import { TypePanelEffect, TypePlacement, TypeTabsAlign } from './types';
11
13
  * @prop {number} selectedIndex - The selected tab by index
12
14
  * @prop {number} panelPosition - Positions the current panel
13
15
  * @prop {string} panelEffect - The transition effect for panels
14
- * @prop {boolean} swipe - Determines whether or not to enable swipe behavior
16
+ * @prop {boolean} swipe - Determines whether to enable swipe behavior
15
17
  * @prop {string} placement - Places the tabs to the top, right, bottom, or left
16
- * @prop {boolean} divider - Determines whether or not to show a divider line
18
+ * @prop {boolean} divider - Determines whether to show a divider line
17
19
  * @prop {string} tabsAlign - Spacing alignment of the tabs
18
20
  * @prop {object} ink - An object that contains information about the ink
19
- * @prop {boolean} hideInk - Determines whether or not to hide the ink
21
+ * @prop {boolean} hideInk - Determines whether to hide the ink
20
22
  * @prop {boolean} overflow - Is true when the space of the tabs is larger than it's container
21
23
  *
22
24
  * @slot tab - Place the tabs here.
@@ -39,6 +41,12 @@ import { TypePanelEffect, TypePlacement, TypeTabsAlign } from './types';
39
41
  * @event kemet-tab-changed - Fires when a tab is changed
40
42
  *
41
43
  */
44
+ interface Iink {
45
+ width: string;
46
+ height: string;
47
+ positionX: string;
48
+ positionY: string;
49
+ }
42
50
  export default class KemetTabs extends LitElement {
43
51
  static styles: import("lit").CSSResult[];
44
52
  selected: string;
@@ -49,11 +57,11 @@ export default class KemetTabs extends LitElement {
49
57
  placement: TypePlacement;
50
58
  divider: boolean;
51
59
  tabsAlign: TypeTabsAlign;
52
- ink: any;
60
+ ink: Iink;
53
61
  hideInk: boolean;
54
62
  overflow: boolean;
55
- tabs: any[];
56
- panels: any[];
63
+ tabs: KemetTab[];
64
+ panels: KemetTabPanel[];
57
65
  xDown: number | null;
58
66
  yDown: number | null;
59
67
  links: HTMLElement;
@@ -61,31 +69,32 @@ export default class KemetTabs extends LitElement {
61
69
  constructor();
62
70
  firstUpdated(): void;
63
71
  render(): import("lit-html").TemplateResult<1>;
64
- updated(prevProps: any): void;
72
+ updated(prevProps: Map<string, never>): void;
65
73
  handleLinksSlotChange(): void;
66
74
  handlePanelsSlotChange(): void;
67
75
  handleLeftArrow(): void;
68
76
  handleRightArrow(): void;
69
- handleTabClose(event: any): void;
70
- makeInk(location: any): import("lit-html").TemplateResult<1>;
77
+ handleTabClose(event: CustomEvent): void;
78
+ makeInk(location: string): import("lit-html").TemplateResult<1>;
71
79
  makeDivider(): import("lit-html").TemplateResult<1>;
72
80
  makeLeftArrow(): import("lit-html").TemplateResult<1>;
73
81
  makeRightArrow(): import("lit-html").TemplateResult<1>;
74
82
  selectTab(): void;
75
83
  selectPanel(): void;
76
84
  dispatchTabChange(): void;
77
- tabSelectedChange(event: any): void;
85
+ tabSelectedChange(event: CustomEvent): void;
78
86
  determineFade(): void;
79
87
  determineStacked(): void;
80
88
  determineOverflow(): void;
81
89
  handleResize(): void;
82
- animatePanel(panelName: any, panelIndex: any): void;
83
- handleTabKeydown(event: any): void;
84
- handleTouchStart(event: any): void;
85
- handleTouchMove(event: any): void;
90
+ animatePanel(panelName: string, panelIndex: number): void;
91
+ handleTabKeydown(event: KeyboardEvent): void;
92
+ handleTouchStart(event: TouchEvent): void;
93
+ handleTouchMove(event: TouchEvent): void;
86
94
  }
87
95
  declare global {
88
96
  interface HTMLElementTagNameMap {
89
97
  'kemet-tabs': KemetTabs;
90
98
  }
91
99
  }
100
+ export {};
@@ -2,48 +2,9 @@ import { __decorate } from "tslib";
2
2
  /* eslint-disable no-lonely-if */
3
3
  /* eslint-disable no-case-declarations */
4
4
  import { LitElement, html } from 'lit';
5
- import { stylesKemetTabs } from './styles';
5
+ import { customElement, property, query, state, } from 'lit/decorators.js';
6
6
  import { emitEvent } from '../../utilities/misc/events';
7
- import { customElement, property, query, state } from 'lit/decorators.js';
8
- /**
9
- * @since 1.0.0
10
- * @status stable
11
- *
12
- * @tagname kemet-tabs
13
- * @summary A group of tabs and panels.
14
- *
15
- * @prop {string} selected - The selected tab by name
16
- * @prop {number} selectedIndex - The selected tab by index
17
- * @prop {number} panelPosition - Positions the current panel
18
- * @prop {string} panelEffect - The transition effect for panels
19
- * @prop {boolean} swipe - Determines whether or not to enable swipe behavior
20
- * @prop {string} placement - Places the tabs to the top, right, bottom, or left
21
- * @prop {boolean} divider - Determines whether or not to show a divider line
22
- * @prop {string} tabsAlign - Spacing alignment of the tabs
23
- * @prop {object} ink - An object that contains information about the ink
24
- * @prop {boolean} hideInk - Determines whether or not to hide the ink
25
- * @prop {boolean} overflow - Is true when the space of the tabs is larger than it's container
26
- *
27
- * @slot tab - Place the tabs here.
28
- * @slot panel - Place the panels here.
29
- *
30
- * @csspart links - The container for the tablist.
31
- * @csspart tablist - Contains the tabs.
32
- * @csspart panels - Contains the panels.
33
- * @csspart ink - The ink element.
34
- * @csspart divider - The divider element.
35
- *
36
- * @cssproperty --kemet-tabs-ink-size - The thickness of the ink.
37
- * @cssproperty --kemet-tabs-ink-radius - The radius on the ink.
38
- * @cssproperty --kemet-tabs-ink-color - The color of the ink.
39
- * @cssproperty --kemet-tabs-divider-size - The thickness of the divider.
40
- * @cssproperty --kemet-tabs-divider-color - The color of the divider.
41
- * @cssproperty --kemet-tabs-transition-speed - The transition speed of the panels.
42
- * @cssproperty --kemet-tabs-spacer - The space between tabs and panels.
43
- *
44
- * @event kemet-tab-changed - Fires when a tab is changed
45
- *
46
- */
7
+ import { stylesKemetTabs } from './styles';
47
8
  let KemetTabs = class KemetTabs extends LitElement {
48
9
  constructor() {
49
10
  super();
@@ -331,12 +292,7 @@ let KemetTabs = class KemetTabs extends LitElement {
331
292
  tabElements.forEach((tab) => {
332
293
  totalTabsWidth += tab.offsetWidth;
333
294
  });
334
- if (totalTabsWidth > tabsContainerWidth && (this.placement === 'top' || this.placement === 'bottom')) {
335
- this.overflow = true;
336
- }
337
- else {
338
- this.overflow = false;
339
- }
295
+ this.overflow = totalTabsWidth > tabsContainerWidth && (this.placement === 'top' || this.placement === 'bottom');
340
296
  }
341
297
  handleResize() {
342
298
  if (this.tabs && this.panels) {