@trendyol/baklava 3.3.0-beta.23 → 3.3.0-beta.25

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 (165) hide show
  1. package/dist/baklava-react.d.ts +12 -0
  2. package/dist/baklava-react.d.ts.map +1 -1
  3. package/dist/baklava-react.js +1 -1
  4. package/dist/baklava-react.js.map +3 -3
  5. package/dist/baklava-vue.d.ts +1 -0
  6. package/dist/baklava.d.ts +1 -0
  7. package/dist/baklava.d.ts.map +1 -1
  8. package/dist/baklava.js +1 -1
  9. package/dist/{chunk-OAF3R4PW.js → chunk-2IJL7HNY.js} +2 -2
  10. package/dist/chunk-2IJL7HNY.js.map +7 -0
  11. package/dist/chunk-4BLKAURK.js +16 -0
  12. package/dist/chunk-4BLKAURK.js.map +7 -0
  13. package/dist/chunk-7VMGFJ5X.js +2 -0
  14. package/dist/chunk-7VMGFJ5X.js.map +7 -0
  15. package/dist/chunk-APLBTZ36.js +24 -0
  16. package/dist/chunk-APLBTZ36.js.map +7 -0
  17. package/dist/chunk-DE3A37FL.js +20 -0
  18. package/dist/chunk-DE3A37FL.js.map +7 -0
  19. package/dist/chunk-DIGACNOH.js +21 -0
  20. package/dist/chunk-DIGACNOH.js.map +7 -0
  21. package/dist/chunk-ERL6CBPO.js +31 -0
  22. package/dist/chunk-ERL6CBPO.js.map +7 -0
  23. package/dist/chunk-GFBXJPT6.js +50 -0
  24. package/dist/chunk-GFBXJPT6.js.map +7 -0
  25. package/dist/{chunk-5VEXMTA4.js → chunk-H4WETBHJ.js} +2 -2
  26. package/dist/chunk-H4WETBHJ.js.map +7 -0
  27. package/dist/chunk-HYBPEELZ.js +5 -0
  28. package/dist/chunk-HYBPEELZ.js.map +7 -0
  29. package/dist/chunk-HZV6GUII.js +26 -0
  30. package/dist/chunk-HZV6GUII.js.map +7 -0
  31. package/dist/chunk-IDRA37BX.js +59 -0
  32. package/dist/chunk-IDRA37BX.js.map +7 -0
  33. package/dist/chunk-LEAVDIGF.js +2 -0
  34. package/dist/chunk-LEAVDIGF.js.map +7 -0
  35. package/dist/chunk-MWFGDECP.js +35 -0
  36. package/dist/chunk-MWFGDECP.js.map +7 -0
  37. package/dist/chunk-MWG4TBH7.js +27 -0
  38. package/dist/chunk-MWG4TBH7.js.map +7 -0
  39. package/dist/chunk-NXVLNG4L.js +65 -0
  40. package/dist/chunk-NXVLNG4L.js.map +7 -0
  41. package/dist/chunk-OTAAXK2L.js +84 -0
  42. package/dist/chunk-OTAAXK2L.js.map +7 -0
  43. package/dist/chunk-OXHRXOBD.js +32 -0
  44. package/dist/chunk-OXHRXOBD.js.map +7 -0
  45. package/dist/{chunk-CAIHRZ24.js → chunk-Q5D7W6YP.js} +2 -2
  46. package/dist/{chunk-GMVJABPT.js → chunk-QDYWH7BU.js} +2 -2
  47. package/dist/chunk-QDYWH7BU.js.map +7 -0
  48. package/dist/chunk-RER7OLAQ.js +22 -0
  49. package/dist/chunk-RER7OLAQ.js.map +7 -0
  50. package/dist/chunk-SBCJY5IU.js +34 -0
  51. package/dist/{chunk-75V3FKJS.js.map → chunk-SBCJY5IU.js.map} +2 -2
  52. package/dist/chunk-STZJ3LBU.js +37 -0
  53. package/dist/{chunk-KBNVATXF.js.map → chunk-STZJ3LBU.js.map} +2 -2
  54. package/dist/{chunk-4BZSILLM.js → chunk-T5MEA7JO.js} +2 -2
  55. package/dist/chunk-T5MEA7JO.js.map +7 -0
  56. package/dist/chunk-TUUQIEDI.js +25 -0
  57. package/dist/chunk-TUUQIEDI.js.map +7 -0
  58. package/dist/{chunk-BNUJWONI.js → chunk-UOGCEUXK.js} +2 -2
  59. package/dist/chunk-UOGCEUXK.js.map +7 -0
  60. package/dist/chunk-WPESQSKX.js +31 -0
  61. package/dist/chunk-WPESQSKX.js.map +7 -0
  62. package/dist/chunk-X5XH4HTW.js +17 -0
  63. package/dist/chunk-X5XH4HTW.js.map +7 -0
  64. package/dist/{chunk-IGNJQVQF.js → chunk-ZE7GYACV.js} +2 -2
  65. package/dist/chunk-ZE7GYACV.js.map +7 -0
  66. package/dist/{chunk-N4GAO7FQ.js → chunk-ZJBBQHF3.js} +2 -2
  67. package/dist/chunk-ZLJF4SVG.js +4 -0
  68. package/dist/chunk-ZLJF4SVG.js.map +7 -0
  69. package/dist/components/accordion-group/accordion/bl-accordion.js +1 -1
  70. package/dist/components/accordion-group/bl-accordion-group.js +1 -1
  71. package/dist/components/alert/bl-alert.js +1 -1
  72. package/dist/components/badge/bl-badge.js +1 -1
  73. package/dist/components/button/bl-button.js +1 -1
  74. package/dist/components/calendar/bl-calendar.d.ts.map +1 -1
  75. package/dist/components/calendar/bl-calendar.js +1 -1
  76. package/dist/components/checkbox-group/bl-checkbox-group.js +1 -1
  77. package/dist/components/checkbox-group/checkbox/bl-checkbox.js +1 -1
  78. package/dist/components/datepicker/bl-datepicker.js +1 -1
  79. package/dist/components/dialog/bl-dialog.js +1 -1
  80. package/dist/components/drawer/bl-drawer.js +1 -1
  81. package/dist/components/dropdown/bl-dropdown.js +1 -1
  82. package/dist/components/dropdown/group/bl-dropdown-group.js +1 -1
  83. package/dist/components/dropdown/item/bl-dropdown-item.js +1 -1
  84. package/dist/components/input/bl-input.js +1 -1
  85. package/dist/components/notification/bl-notification.js +1 -1
  86. package/dist/components/notification/bl-notification.stories.d.ts.map +1 -1
  87. package/dist/components/notification/bl-notification.stories.js +30 -196
  88. package/dist/components/notification/bl-notification.stories.js.map +3 -3
  89. package/dist/components/notification/card/bl-notification-card.js +1 -1
  90. package/dist/components/pagination/bl-pagination.js +1 -1
  91. package/dist/components/popover/bl-popover.js +1 -1
  92. package/dist/components/progress-indicator/bl-progress-indicator.js +1 -1
  93. package/dist/components/radio-group/bl-radio-group.js +1 -1
  94. package/dist/components/radio-group/radio/bl-radio.js +1 -1
  95. package/dist/components/select/bl-select.js +1 -1
  96. package/dist/components/select/option/bl-select-option.js +1 -1
  97. package/dist/components/spinner/bl-spinner.js +1 -1
  98. package/dist/components/split-button/bl-split-button.js +1 -1
  99. package/dist/components/switch/bl-switch.js +1 -1
  100. package/dist/components/tab-group/bl-tab-group.js +1 -1
  101. package/dist/components/tab-group/tab/bl-tab.js +1 -1
  102. package/dist/components/table/table-cell/bl-table-cell.js +1 -1
  103. package/dist/components/table/table-header/bl-table-header.js +1 -1
  104. package/dist/components/table/table-header-cell/bl-table-header-cell.js +1 -1
  105. package/dist/components/table/table-row/bl-table-row.js +1 -1
  106. package/dist/components/tag/bl-tag.d.ts +52 -0
  107. package/dist/components/tag/bl-tag.d.ts.map +1 -0
  108. package/dist/components/tag/bl-tag.js +2 -0
  109. package/dist/components/tag/bl-tag.js.map +7 -0
  110. package/dist/components/tag/bl-tag.test.d.ts +2 -0
  111. package/dist/components/tag/bl-tag.test.d.ts.map +1 -0
  112. package/dist/components/textarea/bl-textarea.js +1 -1
  113. package/dist/components/tooltip/bl-tooltip.js +1 -1
  114. package/dist/custom-elements.json +112 -0
  115. package/package.json +1 -1
  116. package/dist/chunk-4BZSILLM.js.map +0 -7
  117. package/dist/chunk-4QFXDW3W.js +0 -31
  118. package/dist/chunk-4QFXDW3W.js.map +0 -7
  119. package/dist/chunk-5VEXMTA4.js.map +0 -7
  120. package/dist/chunk-73RGV4UX.js +0 -16
  121. package/dist/chunk-73RGV4UX.js.map +0 -7
  122. package/dist/chunk-757CMI4A.js +0 -78
  123. package/dist/chunk-757CMI4A.js.map +0 -7
  124. package/dist/chunk-75V3FKJS.js +0 -34
  125. package/dist/chunk-BNUJWONI.js.map +0 -7
  126. package/dist/chunk-CJDCQC7C.js +0 -50
  127. package/dist/chunk-CJDCQC7C.js.map +0 -7
  128. package/dist/chunk-FCEMOH4J.js +0 -27
  129. package/dist/chunk-FCEMOH4J.js.map +0 -7
  130. package/dist/chunk-FTQX7CEW.js +0 -35
  131. package/dist/chunk-FTQX7CEW.js.map +0 -7
  132. package/dist/chunk-FVBGMXMC.js +0 -17
  133. package/dist/chunk-FVBGMXMC.js.map +0 -7
  134. package/dist/chunk-GMVJABPT.js.map +0 -7
  135. package/dist/chunk-GXDVWGFU.js +0 -32
  136. package/dist/chunk-GXDVWGFU.js.map +0 -7
  137. package/dist/chunk-IGNJQVQF.js.map +0 -7
  138. package/dist/chunk-ILK55FB6.js +0 -65
  139. package/dist/chunk-ILK55FB6.js.map +0 -7
  140. package/dist/chunk-J45OQI7D.js +0 -20
  141. package/dist/chunk-J45OQI7D.js.map +0 -7
  142. package/dist/chunk-JAZGOWKA.js +0 -2
  143. package/dist/chunk-JAZGOWKA.js.map +0 -7
  144. package/dist/chunk-KBNVATXF.js +0 -37
  145. package/dist/chunk-NGJM4NWA.js +0 -4
  146. package/dist/chunk-NGJM4NWA.js.map +0 -7
  147. package/dist/chunk-OAF3R4PW.js.map +0 -7
  148. package/dist/chunk-QMVEWMEI.js +0 -20
  149. package/dist/chunk-QMVEWMEI.js.map +0 -7
  150. package/dist/chunk-S6HEBXIR.js +0 -84
  151. package/dist/chunk-S6HEBXIR.js.map +0 -7
  152. package/dist/chunk-T5EQ4OXS.js +0 -2
  153. package/dist/chunk-T5EQ4OXS.js.map +0 -7
  154. package/dist/chunk-UZJOCLOO.js +0 -21
  155. package/dist/chunk-UZJOCLOO.js.map +0 -7
  156. package/dist/chunk-VU6LRFZR.js +0 -26
  157. package/dist/chunk-VU6LRFZR.js.map +0 -7
  158. package/dist/chunk-WXWKIQAK.js +0 -22
  159. package/dist/chunk-WXWKIQAK.js.map +0 -7
  160. package/dist/chunk-X73CSBRO.js +0 -24
  161. package/dist/chunk-X73CSBRO.js.map +0 -7
  162. package/dist/chunk-YZRAUVUQ.js +0 -31
  163. package/dist/chunk-YZRAUVUQ.js.map +0 -7
  164. /package/dist/{chunk-CAIHRZ24.js.map → chunk-Q5D7W6YP.js.map} +0 -0
  165. /package/dist/{chunk-N4GAO7FQ.js.map → chunk-ZJBBQHF3.js.map} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/dropdown/bl-dropdown.css", "../src/components/dropdown/bl-dropdown.ts", "../src/components/dropdown/item/bl-dropdown-item.css", "../src/components/dropdown/item/bl-dropdown-item.ts", "../src/components/split-button/bl-split-button.css", "../src/components/split-button/bl-split-button.ts"],
4
- "sourcesContent": ["import {css} from 'lit';\nexport const styles = css`:host{position:relative;display:inline-block}:host([kind=\"neutral\"]) bl-popover{--bl-popover-border-color:var(--bl-color-neutral-darker)}:host([kind=\"success\"]) bl-popover{--bl-popover-border-color:var(--bl-color-success)}:host([kind=\"danger\"]) bl-popover{--bl-popover-border-color:var(--bl-color-danger)}.popover-content{display:flex;flex-direction:column;gap:var(--bl-size-xs)}`;\nexport default styles;\n", "import { CSSResultGroup, html, LitElement, TemplateResult } from \"lit\";\nimport { customElement, property, query, state } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { event, EventDispatcher } from \"../../utilities/event\";\nimport \"../button/bl-button\";\nimport BlButton, { ButtonKind, ButtonSize, ButtonVariant } from \"../button/bl-button\";\nimport BlPopover from \"../popover/bl-popover\";\nimport style from \"./bl-dropdown.css\";\nimport BlDropdownItem, { blDropdownItemTag } from \"./item/bl-dropdown-item\";\n\nexport const blDropdownTag = \"bl-dropdown\";\n\n/**\n * @tag bl-dropdown\n * @summary Baklava Dropdown component\n */\n@customElement(blDropdownTag)\nexport default class BlDropdown extends LitElement {\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n @query(\"bl-popover\")\n private _popover: BlPopover;\n\n @query(\"bl-button\")\n private _button: BlButton;\n\n @state() private _isPopoverOpen = false;\n\n /**\n * Sets the dropdown button label\n */\n @property({ type: String, reflect: true })\n label: string;\n\n /**\n * Sets the dropdown button variant\n */\n @property({ type: String, reflect: true })\n variant: ButtonVariant = \"primary\";\n\n /**\n * Sets the dropdown button kind\n */\n @property({ type: String, reflect: true })\n kind: ButtonKind = \"default\";\n\n /**\n * Sets the dropdown button size\n */\n @property({ type: String, reflect: true })\n size: ButtonSize = \"medium\";\n\n /**\n * Sets button as disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Sets the icon name to be displayed on the left side of the button label\n */\n @property({ type: String, reflect: true })\n icon?: string;\n\n /**\n * Fires when dropdown opened\n */\n @event(\"bl-dropdown-open\") private onOpen: EventDispatcher<string>;\n\n /**\n * Fires when dropdown closed\n */\n @event(\"bl-dropdown-close\") private onClose: EventDispatcher<string>;\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener(\"keydown\", this.handleKeyDown);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener(\"keydown\", this.handleKeyDown);\n }\n\n firstUpdated() {\n // `_button` will be undefined during the initial render.\n // To ensure proper rendering, we set `_popover.target` after the template has been created.\n this._popover.target = this._button;\n }\n\n get opened() {\n return this._isPopoverOpen;\n }\n\n private _handleClick() {\n !this._isPopoverOpen && !this.disabled ? this.open() : this.close();\n }\n\n private focusedOptionIndex = -1;\n\n private handleKeyDown(event: KeyboardEvent) {\n // Next action\n if ([\"ArrowDown\", \"ArrowRight\"].includes(event.key)) {\n this.focusedOptionIndex++;\n\n // Previous action\n } else if ([\"ArrowUp\", \"ArrowLeft\"].includes(event.key)) {\n this.focusedOptionIndex--;\n // Select action\n } else if (event.key === \"Escape\") {\n this.focusedOptionIndex = -1;\n this.close();\n return;\n } else {\n // Other keys are not our interest here\n return;\n }\n\n // Don't exceed array indexes\n this.focusedOptionIndex = Math.max(\n 0,\n Math.min(this.focusedOptionIndex, this.options.length - 1)\n );\n\n this.options[this.focusedOptionIndex].focus();\n\n event.preventDefault();\n }\n\n get options(): BlDropdownItem[] {\n return [...this.querySelectorAll(blDropdownItemTag)];\n }\n\n open() {\n this._isPopoverOpen = true;\n this._popover.show();\n this.onOpen(\"Dropdown opened!\");\n }\n\n close() {\n this._isPopoverOpen = false;\n this._popover.visible && this._popover.hide();\n this.onClose(\"Dropdown closed!\");\n }\n\n render(): TemplateResult {\n return html`<bl-button\n dropdown\n .active=${this.opened}\n ?disabled=${this.disabled}\n variant=\"${this.variant}\"\n kind=\"${this.kind}\"\n size=\"${this.size}\"\n icon=\"${ifDefined(this.icon)}\"\n @bl-click=\"${this._handleClick}\"\n >\n ${this.label}\n </bl-button>\n <bl-popover fit-size placement=\"bottom-start\" @bl-popover-hide=\"${this.close}\"\n ><div class=\"popover-content\">\n <slot></slot></div\n ></bl-popover> `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [blDropdownTag]: BlDropdown;\n }\n}\n", "import {css} from 'lit';\nexport const styles = css`:host{width:100%;--bl-button-display:block;--bl-button-justify:start}`;\nexport default styles;\n", "import { CSSResultGroup, html, LitElement, TemplateResult } from \"lit\";\nimport { customElement, property, query } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { event, EventDispatcher } from \"../../../utilities/event\";\nimport \"../../button/bl-button\";\nimport BlButton from \"../../button/bl-button\";\nimport { BaklavaIcon } from \"../../icon/icon-list\";\nimport type BlSplitButton from \"../../split-button/bl-split-button\";\nimport { blSplitButtonTag } from \"../../split-button/bl-split-button\";\nimport type BlDropdown from \"../bl-dropdown\";\nimport { blDropdownTag } from \"../bl-dropdown\";\nimport type BlDropdownGroup from \"../group/bl-dropdown-group\";\nimport { blDropdownGroupTag } from \"../group/bl-dropdown-group\";\nimport style from \"./bl-dropdown-item.css\";\n\nexport const blDropdownItemTag = \"bl-dropdown-item\";\n\n/**\n * @tag bl-dropdown-item\n * @summary Baklava Dropdown Item component\n */\n@customElement(blDropdownItemTag)\nexport default class BlDropdownItem extends LitElement {\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n /**\n * Sets the icon name. Shows icon with bl-icon component\n */\n\n @property({ type: String })\n icon?: BaklavaIcon;\n\n /**\n * Sets item as disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n @event(\"bl-dropdown-item-click\") private onClick: EventDispatcher<string>;\n\n private _handleClick() {\n this.BlDropdownField?.close();\n this.BlSplitButtonField?.close();\n this.onClick(\"Action clicked!\");\n }\n\n @query(\"[role=menuitem]\") private menuElement: BlButton;\n\n /**\n * Focuses this action\n */\n focus() {\n this.menuElement.focus();\n }\n\n private BlDropdownGroupField: BlDropdownGroup | null;\n private BlDropdownField: BlDropdown | null;\n private BlSplitButtonField: BlSplitButton | null;\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this.BlDropdownGroupField = this.closest<BlDropdownGroup>(blDropdownGroupTag);\n this.BlDropdownField = this.closest<BlDropdown>(blDropdownTag);\n this.BlSplitButtonField = this.closest<BlSplitButton>(blSplitButtonTag);\n\n if (!this.BlDropdownField && !this.BlDropdownGroupField && !this.BlSplitButtonField) {\n console.warn(\n `bl-dropdown-item is designed to be used inside a ${blDropdownGroupTag}, ${blDropdownTag} or ${blSplitButtonTag}`,\n this\n );\n }\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n }\n\n render(): TemplateResult {\n return html`<bl-button\n variant=\"tertiary\"\n kind=\"neutral\"\n icon=\"${ifDefined(this.icon)}\"\n role=\"menuitem\"\n ?disabled=\"${this.disabled}\"\n @bl-click=\"${this._handleClick}\"\n ><slot></slot>\n </bl-button>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [blDropdownItemTag]: BlDropdownItem;\n }\n}\n", "import {css} from 'lit';\nexport const styles = css`:host{position:relative;display:inline-block}:host([kind=\"neutral\"]) bl-popover{--bl-popover-border-color:var(--bl-color-neutral-darker)}:host([kind=\"success\"]) bl-popover{--bl-popover-border-color:var(--bl-color-success)}:host([kind=\"danger\"]) bl-popover{--bl-popover-border-color:var(--bl-color-danger)}.split-button-container{display:flex}.split-main-button{width:100%;--bl-border-radius-m:calc(var(--bl-size-xs) / 2) 0 0 calc(var(--bl-size-xs) / 2)}:host([dir=\"rtl\"]) .split-main-button{--bl-border-radius-m:0 calc(var(--bl-size-xs) / 2) calc(var(--bl-size-xs) / 2) 0}.split-main-button:focus{--bl-border-radius-l:calc(var(--bl-size-m) / 2) 0 0 calc(var(--bl-size-m) / 2)}.dropdown-button{--bl-border-radius-m:0 calc(var(--bl-size-xs) / 2) calc(var(--bl-size-xs) / 2) 0}:host([dir=\"rtl\"]) .dropdown-button{--bl-border-radius-m:calc(var(--bl-size-xs) / 2) 0 0 calc(var(--bl-size-xs) / 2)}.dropdown-button:focus{--bl-border-radius-l:0 calc(var(--bl-size-m) / 2) calc(var(--bl-size-m) / 2) 0}:host([variant=\"secondary\"][dir=\"rtl\"]) .dropdown-button{inset-inline-end:-1px}:host([variant=\"secondary\"]) .dropdown-button{inset-inline-start:-1px}:host([dropdown-disabled][variant=\"secondary\"]) .dropdown-button{inset-inline-start:0}:host([dropdown-disabled][variant=\"secondary\"][dir=\"rtl\"]) .dropdown-button{inset-inline-end:0}.split-divider{display:block;height:var(--bl-size-2xl);width:1px;background-color:var(--bl-color-neutral-full)}:host([variant=\"secondary\"]) .split-divider{display:none}:host([size=\"small\"]) .split-divider{height:var(--bl-size-xl)}:host([size=\"large\"]) .split-divider{height:var(--bl-size-3xl)}:host([dropdown-disabled][disabled]) .split-divider{display:block;background-color:var(--bl-color-neutral-lighter)}`;\nexport default styles;\n", "import { CSSResultGroup, html, LitElement, TemplateResult } from \"lit\";\nimport { customElement, property, query, state } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { ReferenceElement } from \"@floating-ui/core\";\nimport { setDirectionProperty } from \"../../utilities/direction\";\nimport { event, EventDispatcher } from \"../../utilities/event\";\nimport \"../button/bl-button\";\nimport BlButton, { ButtonKind, ButtonSize, ButtonVariant, TargetType } from \"../button/bl-button\";\nimport BlDropdownItem, { blDropdownItemTag } from \"../dropdown/item/bl-dropdown-item\";\nimport { BaklavaIcon } from \"../icon/icon-list\";\nimport BlPopover from \"../popover/bl-popover\";\nimport style from \"./bl-split-button.css\";\n\nexport const blSplitButtonTag = \"bl-split-button\";\n\n/**\n * @tag bl-split-button\n * @summary Baklava Split Button component\n */\n\n@customElement(blSplitButtonTag)\nexport default class BlSplitButton extends LitElement {\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n @query(\"#split-button-container\") private trigger: ReferenceElement;\n\n @query(\"bl-popover\")\n private _popover: BlPopover;\n\n @query(\"#split-main-button\")\n private mainButton: BlButton;\n\n @query(\"#dropdown-button\")\n private dropdownButton: BlButton;\n\n @state() private _isPopoverOpen = false;\n\n /**\n * Sets the split button label\n */\n @property({ type: String, reflect: true })\n label: string;\n\n /**\n * Sets the split button variant\n */\n @property({ type: String, reflect: true })\n variant: Exclude<ButtonVariant, \"tertiary\"> = \"primary\";\n\n /**\n * Sets the split button kind\n */\n @property({ type: String, reflect: true })\n kind: ButtonKind = \"default\";\n\n /**\n * Sets the split button size\n */\n @property({ type: String, reflect: true })\n size: ButtonSize = \"medium\";\n\n /**\n * Set link url. If set, split main button will be rendered as anchor tag.\n */\n @property({ type: String, reflect: true })\n href: string;\n\n /**\n * Sets main button as disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Sets loading state of button\n */\n @property({ type: Boolean, reflect: true })\n loading = false;\n\n /**\n * Sets the button label for loading status.\n */\n @property({ type: String, attribute: \"loading-label\" })\n loadingLabel: string;\n\n /**\n * Sets dropdown button as disabled\n */\n @property({ attribute: \"dropdown-disabled\", type: Boolean })\n dropdownDisabled = false;\n\n /**\n * Sets the icon name. Shows icon with bl-icon component\n */\n @property({ type: String })\n icon?: BaklavaIcon;\n\n /**\n * Sets the anchor target. Used when `href` is set.\n */\n @property({ type: String })\n target?: TargetType = \"_self\";\n\n /**\n * Sets the type of the button. Set `submit` to use button as the submitter of parent form.\n */\n @property({ type: String })\n type: \"submit\";\n\n /**\n * Sets button to get keyboard focus automatically\n */\n @property({ type: Boolean, reflect: true })\n autofocus = false;\n\n /**\n * Sets the associated form of the button. Use when `type` is set to `submit` and button is not inside the target form.\n */\n @property({ type: String })\n form: HTMLFormElement | string;\n\n /**\n * Fires when dropdown opened\n */\n @event(\"bl-dropdown-open\") private onOpen: EventDispatcher<string>;\n\n /**\n * Fires when dropdown closed\n */\n @event(\"bl-dropdown-close\") private onClose: EventDispatcher<string>;\n\n /**\n * Fires when main button click\n */\n @event(\"bl-click\") private onClick: EventDispatcher<string>;\n\n connectedCallback() {\n super.connectedCallback();\n\n this.addEventListener(\"keydown\", this.handleKeyDown);\n\n setDirectionProperty(this);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this.removeEventListener(\"keydown\", this.handleKeyDown);\n }\n\n firstUpdated() {\n // To ensure proper rendering, we set `_popover.target` after the template has been created.\n this._popover.target = this.trigger;\n this.dropdownButton.addEventListener(\"bl-click\", e => e.stopPropagation());\n this.mainButton.addEventListener(\"bl-click\", e => e.stopPropagation());\n }\n\n get opened() {\n return this._isPopoverOpen;\n }\n\n private _handleClick() {\n !this._isPopoverOpen && !this.dropdownDisabled ? this.open() : this.close();\n }\n\n private _handlePrimaryClick() {\n this.onClick(\"Click event fired!\");\n }\n\n private focusedOptionIndex = -1;\n\n private handleKeyDown(event: KeyboardEvent) {\n // Next action\n if (this._isPopoverOpen && [\"ArrowDown\", \"ArrowRight\"].includes(event.key)) {\n this.focusedOptionIndex++;\n // Previous action\n } else if (this._isPopoverOpen && [\"ArrowUp\", \"ArrowLeft\"].includes(event.key)) {\n this.focusedOptionIndex--;\n // Select action\n } else if (this._isPopoverOpen && event.key === \"Escape\") {\n this.focusedOptionIndex = -1;\n this.close();\n return;\n } else {\n // Other keys are not our interest here\n return;\n }\n\n // Don't exceed array indexes\n this.focusedOptionIndex = Math.max(\n 0,\n Math.min(this.focusedOptionIndex, this.options.length - 1)\n );\n\n this.options[this.focusedOptionIndex].focus();\n\n event.preventDefault();\n }\n\n get options(): BlDropdownItem[] {\n return [...this.querySelectorAll(blDropdownItemTag)];\n }\n\n open() {\n this._isPopoverOpen = true;\n this._popover.show();\n this.onOpen(\"Dropdown opened!\");\n }\n\n close() {\n if (!this._isPopoverOpen) {\n return;\n }\n\n this._isPopoverOpen = false;\n this._popover.visible && this._popover.hide();\n this.onClose(\"Dropdown closed!\");\n }\n\n render(): TemplateResult {\n return html` <div class=\"split-button-container\" id=\"split-button-container\">\n <bl-button\n id=\"split-main-button\"\n class=\"split-main-button\"\n variant=\"${this.variant}\"\n kind=\"${this.kind}\"\n size=\"${this.size}\"\n loading-label=\"${ifDefined(this.loadingLabel)}\"\n icon=\"${ifDefined(this.icon)}\"\n href=\"${ifDefined(this.type)}\"\n ?disabled=\"${this.disabled}\"\n ?loading=\"${this.loading}\"\n type=\"${this.type}\"\n target=\"${ifDefined(this.target)}\"\n form=\"${ifDefined(this.form)}\"\n ?autofocus=\"${this.autofocus}\"\n @bl-click=\"${this._handlePrimaryClick}\"\n >\n ${this.label}\n </bl-button>\n <div class=\"split-divider\"></div>\n <bl-button\n id=\"dropdown-button\"\n class=\"dropdown-button\"\n .active=\"${this.opened}\"\n icon=\"${this.opened ? \"arrow_up\" : \"arrow_down\"}\"\n ?disabled=\"${this.dropdownDisabled}\"\n variant=\"${this.variant}\"\n kind=\"${this.kind}\"\n size=\"${this.size}\"\n ?loading=\"${this.loading}\"\n label=\"split-dropdown-button\"\n @bl-click=\"${this._handleClick}\"\n >\n </bl-button>\n <bl-popover fit-size placement=\"bottom-start\" @bl-popover-hide=\"${this.close}\">\n <div class=\"popover-content\">\n <slot></slot>\n </div>\n </bl-popover>\n </div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [blSplitButtonTag]: BlSplitButton;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["styles", "i", "bl_dropdown_default", "blDropdownTag", "BlDropdown", "s", "bl_dropdown_default", "event", "blDropdownItemTag", "x", "l", "__decorateClass", "i", "t", "e", "styles", "i", "bl_dropdown_item_default", "blDropdownItemTag", "BlDropdownItem", "s", "bl_dropdown_item_default", "_a", "_b", "blDropdownGroupTag", "blDropdownTag", "blSplitButtonTag", "x", "l", "__decorateClass", "e", "event", "i", "styles", "i", "bl_split_button_default", "blSplitButtonTag", "BlSplitButton", "s", "bl_split_button_default", "setDirectionProperty", "e", "event", "blDropdownItemTag", "x", "l", "__decorateClass", "i", "t"]
7
- }
@@ -1,20 +0,0 @@
1
- import{a as u}from"./chunk-IPYZIIRV.js";import{a as b}from"./chunk-DINNT5P2.js";import{a as d}from"./chunk-GRL4DWKG.js";import{a as h,b as a}from"./chunk-5MOOXA2X.js";import{a as s,b as c,f as n}from"./chunk-4OT5AMS5.js";import{d as r}from"./chunk-IZ2LK5GK.js";var m=s`:host{display:inline-block;cursor:pointer;vertical-align:middle}span{display:inline-block}.switch{--track-height:var(--bl-size-xl);--track-width:var(--bl-size-4xl);--thumb-offset:var(--bl-size-4xs);--thumb-height:calc(var(--track-height) - calc(2 * var(--thumb-offset)));--thumb-width:var(--thumb-height);/* TODO: use predefined animation duration once it is ready */--animation-duration:var(--bl-switch-animation-duration, 300ms);--switch-color:var(--bl-switch-color-off, var(--bl-color-neutral-lighter));background-color:var(--switch-color);border-radius:var(--bl-border-radius-pill);height:var(--track-height);transition-property:background-color;transition-duration:var(--animation-duration);width:var(--track-width)}.switch::before{content:"";display:inline-block;background-color:white;border-radius:var(--bl-border-radius-circle);height:var(--thumb-height);inset-inline-start:var(--thumb-offset);position:relative;top:var(--thumb-offset);transition:transform;transition-duration:var(--animation-duration);width:var(--thumb-width)}label{display:flex;gap:var(--bl-size-2xs);color:var(--bl-color-neutral-darker);font:var(--bl-font-title-3);cursor:pointer;user-select:none;line-height:normal;align-items:center;margin-block:0}.label{overflow-wrap:anywhere}:host([disabled]) .label{color:var(--bl-color-neutral-light);border:1px solid var(--bl-color-neutral-lighter)}:host([checked]) .label,:host(.__ONLY_FOR_STORYBOOK_DEMONSTRATION_HOVER__) .label,:host(:hover) .label{color:var(--bl-color-primary)}:host([checked]) .switch{--switch-color:var(--bl-switch-color-on, var(--bl-switch-color, var(--bl-color-primary)))}:host([checked]) .switch::before{transform:translateX(
2
- calc(var(--track-width) - var(--thumb-width) - calc(2 * var(--thumb-offset)))
3
- )}:host([checked][dir="rtl"]) .switch::before{transform:translateX(
4
- calc(calc(2 * var(--thumb-offset)) - var(--track-width) + var(--thumb-width))
5
- )}:host([disabled]) .switch{opacity:0.5;cursor:not-allowed}:host([disabled]){cursor:not-allowed}.switch:focus-visible{position:relative;outline:none}.switch:focus-visible::after{border:2px solid var(--switch-color);border-radius:var(--bl-border-radius-pill);content:"";position:absolute;inset:-3px}`,p=m;var v="bl-switch",t=class extends n{constructor(){super(...arguments);this.checked=!1;this.disabled=!1}static get styles(){return[p]}toggle(){this.disabled||(this.checked=!this.checked,this.onToggle(this.checked))}connectedCallback(){super.connectedCallback(),u(this)}handleKeyDown(e){(e.code==="Enter"||e.code==="Space")&&(this.toggle(),e.preventDefault())}render(){var o,i,l;let e=(l=(i=this.ariaLabel)!=null?i:(o=this.attributes.getNamedItem("aria-label"))==null?void 0:o.value)!=null?l:void 0;return c`
6
- <label @click=${this.toggle}>
7
- <slot class="label"></slot>
8
- <span
9
- class="switch"
10
- role="switch"
11
- aria-checked=${this.checked}
12
- aria-readonly=${!!this.disabled}
13
- @keydown=${this.handleKeyDown}
14
- aria-label=${b(e)}
15
- tabindex="0"
16
- >
17
- </span>
18
- </label>
19
- `}};r([a({type:Boolean,reflect:!0})],t.prototype,"checked",2),r([a({type:Boolean,reflect:!0})],t.prototype,"disabled",2),r([d("bl-switch-toggle")],t.prototype,"onToggle",2),t=r([h(v)],t);export{v as a,t as b};
20
- //# sourceMappingURL=chunk-J45OQI7D.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/switch/bl-switch.css", "../src/components/switch/bl-switch.ts"],
4
- "sourcesContent": ["import {css} from 'lit';\nexport const styles = css`:host{display:inline-block;cursor:pointer;vertical-align:middle}span{display:inline-block}.switch{--track-height:var(--bl-size-xl);--track-width:var(--bl-size-4xl);--thumb-offset:var(--bl-size-4xs);--thumb-height:calc(var(--track-height) - calc(2 * var(--thumb-offset)));--thumb-width:var(--thumb-height);/* TODO: use predefined animation duration once it is ready */--animation-duration:var(--bl-switch-animation-duration, 300ms);--switch-color:var(--bl-switch-color-off, var(--bl-color-neutral-lighter));background-color:var(--switch-color);border-radius:var(--bl-border-radius-pill);height:var(--track-height);transition-property:background-color;transition-duration:var(--animation-duration);width:var(--track-width)}.switch::before{content:\"\";display:inline-block;background-color:white;border-radius:var(--bl-border-radius-circle);height:var(--thumb-height);inset-inline-start:var(--thumb-offset);position:relative;top:var(--thumb-offset);transition:transform;transition-duration:var(--animation-duration);width:var(--thumb-width)}label{display:flex;gap:var(--bl-size-2xs);color:var(--bl-color-neutral-darker);font:var(--bl-font-title-3);cursor:pointer;user-select:none;line-height:normal;align-items:center;margin-block:0}.label{overflow-wrap:anywhere}:host([disabled]) .label{color:var(--bl-color-neutral-light);border:1px solid var(--bl-color-neutral-lighter)}:host([checked]) .label,:host(.__ONLY_FOR_STORYBOOK_DEMONSTRATION_HOVER__) .label,:host(:hover) .label{color:var(--bl-color-primary)}:host([checked]) .switch{--switch-color:var(--bl-switch-color-on, var(--bl-switch-color, var(--bl-color-primary)))}:host([checked]) .switch::before{transform:translateX(\n calc(var(--track-width) - var(--thumb-width) - calc(2 * var(--thumb-offset)))\n )}:host([checked][dir=\"rtl\"]) .switch::before{transform:translateX(\n calc(calc(2 * var(--thumb-offset)) - var(--track-width) + var(--thumb-width))\n )}:host([disabled]) .switch{opacity:0.5;cursor:not-allowed}:host([disabled]){cursor:not-allowed}.switch:focus-visible{position:relative;outline:none}.switch:focus-visible::after{border:2px solid var(--switch-color);border-radius:var(--bl-border-radius-pill);content:\"\";position:absolute;inset:-3px}`;\nexport default styles;\n", "import { CSSResultGroup, html, LitElement, TemplateResult } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { setDirectionProperty } from \"../../utilities/direction\";\nimport { event, EventDispatcher } from \"../../utilities/event\";\nimport style from \"./bl-switch.css\";\n\nexport const blSwitchTag = \"bl-switch\";\n\n/**\n * @tag bl-switch\n * @summary Baklava Switch component\n *\n * @cssproperty [--bl-switch-color-on=--bl-color-primary] Set the checked color\n * @cssproperty [--bl-switch-color-off=--bl-color-neutral-lighter] Set the unchecked color\n * @cssproperty [--bl-switch-animation-duration=300ms] Set the animation duration of switch toggle\n */\n@customElement(blSwitchTag)\nexport default class BlSwitch extends LitElement {\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n /**\n * Sets the checked state for switch\n */\n @property({ type: Boolean, reflect: true })\n checked = false;\n\n /**\n * Sets the disabled state for switch\n */\n @property({ type: Boolean, reflect: true })\n disabled? = false;\n\n /**\n * Fires whenever user toggles the switch\n */\n @event(\"bl-switch-toggle\") private onToggle: EventDispatcher<boolean>;\n\n toggle() {\n if (this.disabled) return;\n\n this.checked = !this.checked;\n this.onToggle(this.checked);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n setDirectionProperty(this);\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (event.code === \"Enter\" || event.code === \"Space\") {\n this.toggle();\n event.preventDefault();\n }\n }\n\n render(): TemplateResult {\n const ariaLabel =\n this.ariaLabel ?? this.attributes.getNamedItem(\"aria-label\")?.value ?? undefined;\n\n return html`\n <label @click=${this.toggle}>\n <slot class=\"label\"></slot>\n <span\n class=\"switch\"\n role=\"switch\"\n aria-checked=${this.checked}\n aria-readonly=${!!this.disabled}\n @keydown=${this.handleKeyDown}\n aria-label=${ifDefined(ariaLabel)}\n tabindex=\"0\"\n >\n </span>\n </label>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [blSwitchTag]: BlSwitch;\n }\n}\n"],
5
- "mappings": "qQACO,IAAMA,EAASC;AAAA;AAAA;AAAA;AAAA,8SAKfC,EAAQF,ECCR,IAAMG,EAAc,YAWNC,EAArB,cAAsCC,CAAW,CAAjD,kCASE,aAAU,GAMV,cAAY,GAdZ,WAAW,QAAyB,CAClC,MAAO,CAACC,CAAK,CACf,CAmBA,QAAS,CACH,KAAK,WAET,KAAK,QAAU,CAAC,KAAK,QACrB,KAAK,SAAS,KAAK,OAAO,EAC5B,CAEA,mBAA0B,CACxB,MAAM,kBAAkB,EAExBC,EAAqB,IAAI,CAC3B,CAEQ,cAAcC,EAAsB,EACtCA,EAAM,OAAS,SAAWA,EAAM,OAAS,WAC3C,KAAK,OAAO,EACZA,EAAM,eAAe,EAEzB,CAEA,QAAyB,CA5D3B,IAAAC,EAAAC,EAAAC,EA6DI,IAAMC,GACJD,GAAAD,EAAA,KAAK,YAAL,KAAAA,GAAkBD,EAAA,KAAK,WAAW,aAAa,YAAY,IAAzC,YAAAA,EAA4C,QAA9D,KAAAE,EAAuE,OAEzE,OAAOE;AAAA,sBACW,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,yBAKF,KAAK;AAAA,0BACJ,CAAC,CAAC,KAAK;AAAA,qBACZ,KAAK;AAAA,uBACHC,EAAUF,CAAS;AAAA;AAAA;AAAA;AAAA;AAAA,KAMxC,CACF,EArDEG,EAAA,CADCC,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GARvBZ,EASnB,uBAMAW,EAAA,CADCC,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GAdvBZ,EAenB,wBAKmCW,EAAA,CAAlCP,EAAM,kBAAkB,GApBNJ,EAoBgB,wBApBhBA,EAArBW,EAAA,CADCC,EAAcb,CAAW,GACLC",
6
- "names": ["styles", "i", "bl_switch_default", "blSwitchTag", "BlSwitch", "s", "bl_switch_default", "setDirectionProperty", "event", "_a", "_b", "_c", "ariaLabel", "x", "l", "__decorateClass", "e"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as u}from"./chunk-VJRVHJVZ.js";import{a as n}from"./chunk-T5EQ4OXS.js";import{a as c,b as h}from"./chunk-5MOOXA2X.js";import{a,b as d,f as b}from"./chunk-4OT5AMS5.js";import{d as l}from"./chunk-IZ2LK5GK.js";var y=a`:host{display:table-row}:host([checked]),:host([checked]) ::slotted(bl-table-cell){background-color:var(--bl-color-primary-contrast)}:host([disabled]),:host([disabled]) ::slotted(bl-table-cell){background-color:var(--bl-color-neutral-lightest);color:var(--bl-color-neutral-light)}:host(:not([checked], [disabled]).__ONLY_FOR_STORYBOOK_DEMONSTRATION_HOVER__),:host(:not([checked], [disabled]):hover) ::slotted(bl-table-cell),:host(:not([checked], [disabled]):hover),:host(:not([checked], [disabled]):hover) ::slotted(bl-table-cell){background-color:var(--bl-color-tertiary-background)}:host ::slotted(*:first-child){border-inline-start:none}:host ::slotted(*:last-child){border-inline-end:none}:host(:first-child) ::slotted(bl-table-header-cell){border-top:none;border-inline-end:none}:host(:first-child) ::slotted(bl-table-header-cell:first-child){border-top-left-radius:var(--bl-size-3xs)}:host(:first-child) ::slotted(bl-table-header-cell:last-child){border-top-right-radius:var(--bl-size-3xs);border-inline-end:1px}:host(:last-child) ::slotted(bl-table-cell){border-bottom:none}:host(:first-child) ::slotted(bl-table-cell){border-top:none}:host(:last-child) ::slotted(bl-table-cell:first-child){border-bottom-left-radius:var(--bl-size-3xs)}:host(:last-child) ::slotted(bl-table-cell:last-child){border-bottom-right-radius:var(--bl-size-3xs)}:host([sticky-first-column]) ::slotted(bl-table-header-cell:first-child),:host([sticky-first-column]) ::slotted(bl-table-cell:first-child){position:sticky;z-index:2;inset-inline-start:0}:host([sticky-last-column]) ::slotted(bl-table-header-cell:last-child),:host([sticky-last-column]) ::slotted(bl-table-cell:last-child){position:sticky;z-index:2;inset-inline-end:0}`,m=y;var f="bl-table-row",t=class extends b{constructor(){super(...arguments);this.selectionKey=""}static get styles(){return[m]}connectedCallback(){super.connectedCallback(),!this.closest(n)&&!this.closest(u)&&console.warn("bl-table-row is designed to be used inside a bl-table-header or bl-table-body",this)}updated(e){super.updated(e),this.removeAttribute("checked"),this.removeAttribute("disabled"),this.removeAttribute("sticky-first-column"),this.removeAttribute("sticky-last-column"),this.stickyFirstColumn&&this.setAttribute("sticky-first-column","true"),this.stickyLastColumn&&this.setAttribute("sticky-last-column","true"),this.checked?this.setAttribute("checked","true"):this.disabled&&this.setAttribute("disabled","true"),e.has("selectionKey")&&this.updateComplete.then(()=>{var s,r,o,i;Array.from(this.querySelectorAll("bl-table-header-cell,bl-table-cell")).map(p=>{p.requestUpdate()}),(s=this._table)!=null&&s.multiple&&((r=this._table)!=null&&r.selectable)&&((i=(o=this._table)==null?void 0:o.querySelector("bl-table-header-cell"))==null||i.requestUpdate())})}get _table(){return this.closest("bl-table")}get _firstTableCell(){return this.querySelector("bl-table-cell")}get disabled(){var e;return!!((e=this._firstTableCell)!=null&&e.disabled)}get checked(){var e;return!!((e=this._table)!=null&&e.isRowSelected(this.selectionKey))}get stickyFirstColumn(){var e;return!!((e=this._table)!=null&&e.isFirstColumnSticky())}get stickyLastColumn(){var e;return!!((e=this._table)!=null&&e.isLastColumnSticky())}render(){return d`<slot></slot>`}};l([h({type:String,reflect:!0,attribute:"selection-key"})],t.prototype,"selectionKey",2),t=l([c(f)],t);export{f as a,t as b};
2
- //# sourceMappingURL=chunk-JAZGOWKA.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/table/table-row/bl-table-row.css", "../src/components/table/table-row/bl-table-row.ts"],
4
- "sourcesContent": ["import {css} from 'lit';\nexport const styles = css`:host{display:table-row}:host([checked]),:host([checked]) ::slotted(bl-table-cell){background-color:var(--bl-color-primary-contrast)}:host([disabled]),:host([disabled]) ::slotted(bl-table-cell){background-color:var(--bl-color-neutral-lightest);color:var(--bl-color-neutral-light)}:host(:not([checked], [disabled]).__ONLY_FOR_STORYBOOK_DEMONSTRATION_HOVER__),:host(:not([checked], [disabled]):hover) ::slotted(bl-table-cell),:host(:not([checked], [disabled]):hover),:host(:not([checked], [disabled]):hover) ::slotted(bl-table-cell){background-color:var(--bl-color-tertiary-background)}:host ::slotted(*:first-child){border-inline-start:none}:host ::slotted(*:last-child){border-inline-end:none}:host(:first-child) ::slotted(bl-table-header-cell){border-top:none;border-inline-end:none}:host(:first-child) ::slotted(bl-table-header-cell:first-child){border-top-left-radius:var(--bl-size-3xs)}:host(:first-child) ::slotted(bl-table-header-cell:last-child){border-top-right-radius:var(--bl-size-3xs);border-inline-end:1px}:host(:last-child) ::slotted(bl-table-cell){border-bottom:none}:host(:first-child) ::slotted(bl-table-cell){border-top:none}:host(:last-child) ::slotted(bl-table-cell:first-child){border-bottom-left-radius:var(--bl-size-3xs)}:host(:last-child) ::slotted(bl-table-cell:last-child){border-bottom-right-radius:var(--bl-size-3xs)}:host([sticky-first-column]) ::slotted(bl-table-header-cell:first-child),:host([sticky-first-column]) ::slotted(bl-table-cell:first-child){position:sticky;z-index:2;inset-inline-start:0}:host([sticky-last-column]) ::slotted(bl-table-header-cell:last-child),:host([sticky-last-column]) ::slotted(bl-table-cell:last-child){position:sticky;z-index:2;inset-inline-end:0}`;\nexport default styles;\n", "import { html, LitElement, PropertyValues, TemplateResult } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { CSSResultGroup } from \"lit/development\";\nimport \"element-internals-polyfill\";\nimport \"../../checkbox-group/checkbox/bl-checkbox\";\nimport { blTableBodyTag } from \"../table-body/bl-table-body\";\nimport type BlTableBody from \"../table-body/bl-table-body\";\nimport BlTableCell from \"../table-cell/bl-table-cell\";\nimport BlTableHeaderCell from \"../table-header-cell/bl-table-header-cell\";\nimport { blTableHeaderTag } from \"../table-header/bl-table-header\";\nimport type BlTableHeader from \"../table-header/bl-table-header\";\nimport style from \"../table-row/bl-table-row.css\";\n\nexport const blTableRowTag = \"bl-table-row\";\n\n/**\n * @tag bl-table-row\n * @summary Baklava Table component\n */\n@customElement(blTableRowTag)\nexport default class BlTableRow extends LitElement {\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n /**\n * selection key for table row\n */\n @property({ type: String, reflect: true, attribute: \"selection-key\" })\n selectionKey: string = \"\";\n\n connectedCallback(): void {\n super.connectedCallback();\n if (\n !this.closest<BlTableHeader>(blTableHeaderTag) &&\n !this.closest<BlTableBody>(blTableBodyTag)\n ) {\n console.warn(\n \"bl-table-row is designed to be used inside a bl-table-header or bl-table-body\",\n this\n );\n }\n }\n\n updated(_changedProperties: PropertyValues) {\n super.updated(_changedProperties);\n this.removeAttribute(\"checked\");\n this.removeAttribute(\"disabled\");\n this.removeAttribute(\"sticky-first-column\");\n this.removeAttribute(\"sticky-last-column\");\n\n if (this.stickyFirstColumn) {\n this.setAttribute(\"sticky-first-column\", \"true\");\n }\n if (this.stickyLastColumn) {\n this.setAttribute(\"sticky-last-column\", \"true\");\n }\n if (this.checked) {\n this.setAttribute(\"checked\", \"true\");\n } else if (this.disabled) {\n this.setAttribute(\"disabled\", \"true\");\n }\n if (_changedProperties.has(\"selectionKey\")) {\n this.updateComplete.then(() => {\n Array.from(this.querySelectorAll(\"bl-table-header-cell,bl-table-cell\")).map(com => {\n (com as BlTableHeaderCell | BlTableCell).requestUpdate();\n });\n\n if (this._table?.multiple && this._table?.selectable) {\n this._table?.querySelector(\"bl-table-header-cell\")?.requestUpdate();\n }\n });\n }\n }\n\n private get _table() {\n return this.closest(\"bl-table\");\n }\n\n private get _firstTableCell() {\n return this.querySelector(\"bl-table-cell\");\n }\n get disabled() {\n return !!this._firstTableCell?.disabled;\n }\n\n get checked() {\n return !!this._table?.isRowSelected(this.selectionKey);\n }\n\n get stickyFirstColumn() {\n return !!this._table?.isFirstColumnSticky();\n }\n\n get stickyLastColumn() {\n return !!this._table?.isLastColumnSticky();\n }\n\n render(): TemplateResult {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [blTableRowTag]: BlTableRow;\n }\n}\n"],
5
- "mappings": "wNACO,IAAMA,EAASC,krDACfC,EAAQF,ECWR,IAAMG,EAAgB,eAORC,EAArB,cAAwCC,CAAW,CAAnD,kCASE,kBAAuB,GARvB,WAAW,QAAyB,CAClC,MAAO,CAACC,CAAK,CACf,CAQA,mBAA0B,CACxB,MAAM,kBAAkB,EAEtB,CAAC,KAAK,QAAuBC,CAAgB,GAC7C,CAAC,KAAK,QAAqBC,CAAc,GAEzC,QAAQ,KACN,gFACA,IACF,CAEJ,CAEA,QAAQC,EAAoC,CAC1C,MAAM,QAAQA,CAAkB,EAChC,KAAK,gBAAgB,SAAS,EAC9B,KAAK,gBAAgB,UAAU,EAC/B,KAAK,gBAAgB,qBAAqB,EAC1C,KAAK,gBAAgB,oBAAoB,EAErC,KAAK,mBACP,KAAK,aAAa,sBAAuB,MAAM,EAE7C,KAAK,kBACP,KAAK,aAAa,qBAAsB,MAAM,EAE5C,KAAK,QACP,KAAK,aAAa,UAAW,MAAM,EAC1B,KAAK,UACd,KAAK,aAAa,WAAY,MAAM,EAElCA,EAAmB,IAAI,cAAc,GACvC,KAAK,eAAe,KAAK,IAAM,CA/DrC,IAAAC,EAAAC,EAAAC,EAAAC,EAgEQ,MAAM,KAAK,KAAK,iBAAiB,oCAAoC,CAAC,EAAE,IAAIC,GAAO,CAChFA,EAAwC,cAAc,CACzD,CAAC,GAEGJ,EAAA,KAAK,SAAL,MAAAA,EAAa,YAAYC,EAAA,KAAK,SAAL,MAAAA,EAAa,eACxCE,GAAAD,EAAA,KAAK,SAAL,YAAAA,EAAa,cAAc,0BAA3B,MAAAC,EAAoD,gBAExD,CAAC,CAEL,CAEA,IAAY,QAAS,CACnB,OAAO,KAAK,QAAQ,UAAU,CAChC,CAEA,IAAY,iBAAkB,CAC5B,OAAO,KAAK,cAAc,eAAe,CAC3C,CACA,IAAI,UAAW,CAlFjB,IAAAH,EAmFI,MAAO,CAAC,GAACA,EAAA,KAAK,kBAAL,MAAAA,EAAsB,SACjC,CAEA,IAAI,SAAU,CAtFhB,IAAAA,EAuFI,MAAO,CAAC,GAACA,EAAA,KAAK,SAAL,MAAAA,EAAa,cAAc,KAAK,cAC3C,CAEA,IAAI,mBAAoB,CA1F1B,IAAAA,EA2FI,MAAO,CAAC,GAACA,EAAA,KAAK,SAAL,MAAAA,EAAa,sBACxB,CAEA,IAAI,kBAAmB,CA9FzB,IAAAA,EA+FI,MAAO,CAAC,GAACA,EAAA,KAAK,SAAL,MAAAA,EAAa,qBACxB,CAEA,QAAyB,CACvB,OAAOK,gBACT,CACF,EAxEEC,EAAA,CADCC,EAAS,CAAE,KAAM,OAAQ,QAAS,GAAM,UAAW,eAAgB,CAAC,GARlDb,EASnB,4BATmBA,EAArBY,EAAA,CADCC,EAAcd,CAAa,GACPC",
6
- "names": ["styles", "i", "bl_table_row_default", "blTableRowTag", "BlTableRow", "s", "bl_table_row_default", "blTableHeaderTag", "blTableBodyTag", "_changedProperties", "_a", "_b", "_c", "_d", "com", "x", "__decorateClass", "e"]
7
- }
@@ -1,37 +0,0 @@
1
- import{b as k}from"./chunk-23PSWIUF.js";import{c as $}from"./chunk-EG7U7PM3.js";import{a as z}from"./chunk-XDUIVR6I.js";import{a as w}from"./chunk-6LT7O7T2.js";import{a as s}from"./chunk-DINNT5P2.js";import{a as c}from"./chunk-GRL4DWKG.js";import{a as f,b as y,c as x}from"./chunk-7GK5LKBV.js";import{a as b,b as a,c as u,e as m}from"./chunk-5MOOXA2X.js";import{a as v,b as d,c as g,f as p}from"./chunk-4OT5AMS5.js";import{d as r}from"./chunk-IZ2LK5GK.js";var C="important",I=" !"+C,S=y(class extends x{constructor(o){var l;if(super(o),o.type!==f.ATTRIBUTE||o.name!=="style"||((l=o.strings)===null||l===void 0?void 0:l.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(o){return Object.keys(o).reduce((l,e)=>{let i=o[e];return i==null?l:l+`${e=e.includes("-")?e:e.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${i};`},"")}update(o,[l]){let{style:e}=o.element;if(this.ht===void 0){this.ht=new Set;for(let i in l)this.ht.add(i);return this.render(l)}this.ht.forEach(i=>{l[i]==null&&(this.ht.delete(i),i.includes("-")?e.removeProperty(i):e[i]="")});for(let i in l){let n=l[i];if(n!=null){this.ht.add(i);let h=typeof n=="string"&&n.endsWith(I);i.includes("-")||h?e.setProperty(i,h?n.slice(0,-11):n,h?C:""):e[i]=n}}return g}});var L=v`:host{display:inline-block;width:200px;position:relative}.wrapper{--row-count:1;--maxrow-count: ;--line-height:var(--bl-font-title-3-line-height);--scroll-height:var(--line-height);--padding-vertical:var(--bl-size-2xs);--padding-horizontal:var(--bl-size-xs);--label-padding:var(--bl-size-3xs);--border-size:1px;--default-scroll-height:calc((var(--row-count) * var(--line-height)) + var(--padding-vertical));--height:max(var(--scroll-height), var(--default-scroll-height));--input-font:var(--bl-font-body-text-2);--border-radius:var(--bl-size-3xs);--border-color:var(--bl-color-neutral-lighter);--background-color:var(--bl-color-neutral-full);display:flex;flex-direction:column;position:relative;gap:var(--bl-size-3xs)}.input-wrapper{border:solid var(--border-size) var(--border-color);border-radius:var(--border-radius);padding:0 calc(var(--padding-horizontal) - var(--label-padding) - var(--border-size));padding-top:var(--padding-vertical);display:flex;box-sizing:border-box;background-color:var(--background-color);margin:0;width:0;min-width:100%}textarea{--parent-padding:calc(var(--padding-horizontal) - var(--label-padding) - var(--border-size));width:100%;align-self:stretch;outline:none;font:var(--input-font);padding:0 calc(var(--padding-horizontal) - var(--border-size));padding-bottom:var(--padding-vertical);margin:0 calc(-1 * var(--parent-padding));border:none;border-radius:var(--border-radius);color:var(--bl-color-neutral-darker);resize:vertical;background-color:transparent;display:block}:host([size="large"]) .wrapper{--padding-vertical:var(--bl-size-xs);--padding-horizontal:var(--bl-size-m)}:host([size="small"]) .wrapper{--padding-vertical:var(--bl-size-3xs);--padding-horizontal:var(--bl-size-xs);--input-font:var(--bl-font-body-text-3);--line-height:var(--bl-font-title-4-line-height)}textarea:disabled{background-color:var(--bl-color-neutral-lightest);color:var(--bl-color-neutral-light);cursor:not-allowed}:host([disabled]) .wrapper{--background-color:var(--bl-color-neutral-lightest)}:host([expand]) textarea{overflow:hidden;resize:none;height:var(--height)}:host([expand][max-rows]) textarea{--maxrow-height:calc((var(--maxrow-count) * var(--line-height)) + var(--padding-vertical));overflow-y:scroll;height:min(var(--height), var(--maxrow-height))}.wrapper:focus-within{--border-color:var(--bl-color-primary)}.dirty.max-len-invalid,.dirty.invalid{--border-color:var(--bl-color-danger)}:host([label]) ::placeholder{color:transparent;transition:color ease-out 0.4s}.input-wrapper legend,label{padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}label{max-width:max-content;position:absolute;transition:all ease-in 0.1s;font:var(--bl-font-title-3-regular);top:var(--padding-vertical);inset-inline-start:var(--padding-horizontal);inset-inline-end:var(--padding-horizontal);pointer-events:none;color:var(--bl-color-neutral-light)}.input-wrapper legend{height:0;visibility:hidden;display:none}.input-wrapper legend span{padding:0 var(--label-padding);display:inline-block;opacity:0;visibility:visible}:where(.wrapper:focus-within, .wrapper.has-value) label{top:0;inset-inline-start:var(--padding-horizontal);transform:translateY(-50%);font:var(--bl-font-caption);color:var(--bl-color-neutral-dark);pointer-events:initial;z-index:var(--bl-index-base)}:host([label]) :where(.wrapper:focus-within, .wrapper.has-value) legend{max-width:100%;font:var(--bl-font-caption);display:block}:host ::placeholder,:host([label-fixed]) ::placeholder{color:var(--bl-color-neutral-light)}:host([label-fixed]) label{position:static;transition:none;transform:none;pointer-events:initial;font:var(--bl-font-caption);color:var(--bl-color-neutral-dark);background-color:initial;padding:0}:host([label-fixed]) legend{display:none}.hint{display:none;font:var(--bl-font-body-text-3)}:host([character-counter]) .hint,:host([help-text]) .hint,.dirty.invalid .hint{display:flex;gap:var(--bl-size-3xs)}.hint > *{margin:0;padding:0}.help-text,.invalid-text{flex:1}.counter-text{color:var(--bl-color-neutral-dark);margin-inline-start:auto}:where(.max-len-invalid, .dirty.invalid) .hint > .counter-text{color:var(--bl-color-danger)}.dirty.invalid label{color:var(--bl-color-danger)}.invalid-text{display:none;color:var(--bl-color-danger)}.help-text{color:var(--bl-color-neutral-dark)}:where(.dirty.max-len-invalid, .dirty.invalid) .hint > .invalid-text{display:inline-block}.dirty.invalid .hint > .help-text{display:none}`,E=L;var t=class extends z(p){constructor(){super(...arguments);this.name="";this.required=!1;this.disabled=!1;this.expand=!1;this.size="medium";this.labelFixed=!1;this.characterCounter=!1;this.value="";this.rows=4;this.autofocus=!1;this.spellchecker="false";this.customScrollHeight=null;this.inputId=Math.random().toString(36).substring(2);this.onError=()=>{this.onInvalid(this.internals.validity)};this.dirty=!1}static get styles(){return[E]}connectedCallback(){var e;super.connectedCallback(),(e=this.internals.form)==null||e.addEventListener("submit",()=>{this.reportValidity()})}inputHandler(e){this.autoResize();let i=e.target.value;this.value=i,this.setValue(this.value),this.onInput(i)}changeHandler(e){let i=e.target.value;this.dirty=!0,this.value=i,this.setValue(this.value),this.onChange(i)}firstUpdated(){this.setValue(this.value),this.autoResize()}async updated(e){e.has("rows")&&this.autoResize(),e.has("value")&&(this.setValue(this.value),await this.validationComplete,this.requestUpdate()),e.has("error")&&this.error&&!this.dirty&&this.reportValidity()}setCustomValidity(e){this.validationTarget.setCustomValidity(e)}reportValidity(){return this.dirty=!0,this.checkValidity()}valueChangedCallback(e){this.value=e}validityCallback(){var e;return this.customInvalidText||((e=this.validationTarget)==null?void 0:e.validationMessage)}autoResize(){if(!this.expand)return;this.validationTarget.style.height="auto";let e=this.validationTarget.scrollHeight;this.customScrollHeight=`${e}px`,this.validationTarget.style.removeProperty("height")}render(){let e=this.internals.validity.tooLong,i=this.checkValidity()?"":d`<p class="invalid-text">${this.validationMessage}</p>`,n=this.helpText?d`<p class="help-text">${this.helpText}</p>`:"",h=this.label?d`<label for="${this.inputId}">${this.label}</label>`:"",V=this.characterCounter&&this.maxlength?`${this.value.length}/${this.maxlength}`:this.characterCounter?`${this.value.length}`:"",M=this.characterCounter?d`<p class="counter-text">${V}</p>`:"",R={wrapper:!0,"has-value":this.value!==null&&this.value!=="",dirty:this.dirty,"max-len-invalid":e,invalid:!this.checkValidity()},H={"--row-count":`${this.rows}`,"--maxrow-count":this.maxRows?`${this.maxRows}`:null,"--scroll-height":this.customScrollHeight};return d`
2
- <div style=${S(H)} class=${w(R)}>
3
- ${h}
4
- <fieldset class="input-wrapper">
5
- <legend><span>${this.label}</span></legend>
6
- <textarea
7
- id="${this.inputId}"
8
- name="${s(this.name)}"
9
- .value=${$(this.value)}
10
- ?autofocus=${this.autofocus}
11
- autocomplete="${s(this.autocomplete)}"
12
- inputmode="${s(this.inputmode)}"
13
- placeholder="${s(this.placeholder)}"
14
- minlength="${s(this.minlength)}"
15
- rows="${s(this.rows)}"
16
- ?required=${this.required}
17
- ?disabled=${this.disabled}
18
- spellcheck="${this.spellchecker}"
19
- @change=${this.changeHandler}
20
- @input=${this.inputHandler}
21
- @invalid=${this.onError}
22
- >
23
- </textarea>
24
- </fieldset>
25
- <div class="hint">${i}${n}${M}</div>
26
- </div>
27
- `}};t.shadowRootOptions={...p.shadowRootOptions,delegatesFocus:!0},t.formControlValidators=k,r([m("textarea")],t.prototype,"validationTarget",2),r([a({reflect:!0,type:String})],t.prototype,"error",2),r([a({type:String,reflect:!0})],t.prototype,"name",2),r([a({type:Boolean,reflect:!0})],t.prototype,"required",2),r([a({type:Boolean,reflect:!0})],t.prototype,"disabled",2),r([a({type:Boolean,reflect:!0})],t.prototype,"expand",2),r([a({type:Number,reflect:!0,attribute:"max-rows"})],t.prototype,"maxRows",2),r([a({type:String,reflect:!0})],t.prototype,"size",2),r([a({reflect:!0})],t.prototype,"label",2),r([a({type:Boolean,attribute:"label-fixed",reflect:!0})],t.prototype,"labelFixed",2),r([a({reflect:!0})],t.prototype,"placeholder",2),r([a({type:Boolean,attribute:"character-counter",reflect:!0})],t.prototype,"characterCounter",2),r([a({type:String,attribute:"help-text",reflect:!0})],t.prototype,"helpText",2),r([a({type:String,attribute:"invalid-text",reflect:!0})],t.prototype,"customInvalidText",2),r([a({type:Number,reflect:!0})],t.prototype,"minlength",2),r([a({type:Number,reflect:!0})],t.prototype,"maxlength",2),r([a({reflect:!0})],t.prototype,"value",2),r([a({type:Number,reflect:!0})],t.prototype,"rows",2),r([a({type:String,reflect:!0})],t.prototype,"inputmode",2),r([a({type:Boolean,reflect:!0})],t.prototype,"autofocus",2),r([a({type:String,reflect:!0})],t.prototype,"autocomplete",2),r([a({type:String,reflect:!0,attribute:"spellcheck"})],t.prototype,"spellchecker",2),r([c("bl-input")],t.prototype,"onInput",2),r([c("bl-change")],t.prototype,"onChange",2),r([c("bl-invalid")],t.prototype,"onInvalid",2),r([u()],t.prototype,"customScrollHeight",2),r([u()],t.prototype,"dirty",2),t=r([b("bl-textarea")],t);export{t as a};
28
- /*! Bundled license information:
29
-
30
- lit-html/directives/style-map.js:
31
- (**
32
- * @license
33
- * Copyright 2018 Google LLC
34
- * SPDX-License-Identifier: BSD-3-Clause
35
- *)
36
- */
37
- //# sourceMappingURL=chunk-KBNVATXF.js.map
@@ -1,4 +0,0 @@
1
- import{a as s,b as a,g as d}from"./chunk-5MOOXA2X.js";import{a as e,b as i,f as c}from"./chunk-4OT5AMS5.js";import{d as t}from"./chunk-IZ2LK5GK.js";var p=e`.accordion-group{display:flex;flex-direction:column;gap:0}.accordion-group ::slotted(bl-accordion:first-child){--bl-accordion-radius-bottom-right:0;--bl-accordion-radius-bottom-left:0;--bl-accordion-border-bottom:0}.accordion-group ::slotted(bl-accordion:not(:last-child, :first-child)){--bl-accordion-radius-bottom-right:0;--bl-accordion-radius-bottom-left:0;--bl-accordion-radius-top-left:0;--bl-accordion-radius-top-right:0;--bl-accordion-border-bottom:0}.accordion-group ::slotted(bl-accordion:last-child){--bl-accordion-radius-top-right:0;--bl-accordion-radius-top-left:0}`,n=p;var o=class extends c{constructor(){super(...arguments);this.multiple=!1}static get styles(){return[n]}handleToggleAccordions(r){let m=r.target;!this.multiple&&r.detail&&this.accordions.forEach(l=>{m!==l&&l.collapse()})}render(){return i`<div class="accordion-group" @bl-toggle=${this.handleToggleAccordions}>
2
- <slot></slot>
3
- </div>`}};t([a({reflect:!0,type:Boolean})],o.prototype,"multiple",2),t([d({selector:"bl-accordion"})],o.prototype,"accordions",2),o=t([s("bl-accordion-group")],o);export{o as a};
4
- //# sourceMappingURL=chunk-NGJM4NWA.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/accordion-group/bl-accordion-group.css", "../src/components/accordion-group/bl-accordion-group.ts"],
4
- "sourcesContent": ["import {css} from 'lit';\nexport const styles = css`.accordion-group{display:flex;flex-direction:column;gap:0}.accordion-group ::slotted(bl-accordion:first-child){--bl-accordion-radius-bottom-right:0;--bl-accordion-radius-bottom-left:0;--bl-accordion-border-bottom:0}.accordion-group ::slotted(bl-accordion:not(:last-child, :first-child)){--bl-accordion-radius-bottom-right:0;--bl-accordion-radius-bottom-left:0;--bl-accordion-radius-top-left:0;--bl-accordion-radius-top-right:0;--bl-accordion-border-bottom:0}.accordion-group ::slotted(bl-accordion:last-child){--bl-accordion-radius-top-right:0;--bl-accordion-radius-top-left:0}`;\nexport default styles;\n", "import { html, LitElement, TemplateResult } from \"lit\";\nimport { customElement, property, queryAssignedElements } from \"lit/decorators.js\";\nimport { CSSResultGroup } from \"lit/development\";\nimport { BlAccordion } from \"../../baklava\";\nimport style from \"./bl-accordion-group.css\";\n\n@customElement(\"bl-accordion-group\")\nexport default class BlAccordionGroup extends LitElement {\n /**\n * Allow multiple accordions to be open at once\n */\n @property({ reflect: true, type: Boolean })\n multiple = false;\n\n @queryAssignedElements({ selector: \"bl-accordion\" })\n accordions: BlAccordion[];\n\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n handleToggleAccordions(e: CustomEvent<boolean>) {\n const target = e.target as BlAccordion;\n\n if (!this.multiple && e.detail) {\n this.accordions.forEach(a => {\n if (target !== a) {\n a.collapse();\n }\n });\n }\n }\n\n render(): TemplateResult {\n return html`<div class=\"accordion-group\" @bl-toggle=${this.handleToggleAccordions}>\n <slot></slot>\n </div>`;\n }\n}\n"],
5
- "mappings": "oJACO,IAAMA,EAASC,qkBACfC,EAAQF,ECKf,IAAqBG,EAArB,cAA8CC,CAAW,CAAzD,kCAKE,cAAW,GAKX,WAAW,QAAyB,CAClC,MAAO,CAACC,CAAK,CACf,CAEA,uBAAuBC,EAAyB,CAC9C,IAAMC,EAASD,EAAE,OAEb,CAAC,KAAK,UAAYA,EAAE,QACtB,KAAK,WAAW,QAAQE,GAAK,CACvBD,IAAWC,GACbA,EAAE,SAAS,CAEf,CAAC,CAEL,CAEA,QAAyB,CACvB,OAAOC,4CAA+C,KAAK;AAAA;AAAA,WAG7D,CACF,EA1BEC,EAAA,CADCJ,EAAS,CAAE,QAAS,GAAM,KAAM,OAAQ,CAAC,GAJvBH,EAKnB,wBAGAO,EAAA,CADCC,EAAsB,CAAE,SAAU,cAAe,CAAC,GAPhCR,EAQnB,0BARmBA,EAArBO,EAAA,CADCJ,EAAc,oBAAoB,GACdH",
6
- "names": ["styles", "i", "bl_accordion_group_default", "BlAccordionGroup", "s", "bl_accordion_group_default", "e", "target", "a", "x", "__decorateClass", "l"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/select/bl-select.css", "../src/components/select/bl-select.ts"],
4
- "sourcesContent": ["import {css} from 'lit';\nexport const styles = css`:host{width:200px;display:inline-block}.select-wrapper{width:100%;position:relative;display:grid;gap:var(--bl-size-3xs);--padding-vertical:var(--bl-size-2xs);--padding-horizontal:var(--bl-size-xs);--label-padding:var(--bl-size-3xs);--border-size:1px;--background-color:var(--bl-color-neutral-full);--border-color:var(--bl-color-neutral-lighter);--border-focus-color:var(--bl-color-primary-highlight);--icon-color:var(--bl-color-neutral-light);--text-color:var(--bl-color-neutral-darker);--label-color:var(--bl-color-neutral-dark);--placeholder-color:var(--bl-color-neutral-light);--height:var(--bl-size-2xl);--menu-padding:0 var(--bl-size-m);--menu-margin-top:var(--bl-size-2xs);--font-size:var(--bl-font-size-m);--disabled-color:var(--bl-color-neutral-lightest);--menu-height:250px;--popover-position:var(--bl-popover-position, fixed)}:host([multiple][view-select-all]) .select-wrapper{--menu-height:290px}:host([size=\"large\"]) .select-wrapper{--height:var(--bl-size-3xl);--padding-vertical:var(--bl-size-xs);--padding-horizontal:var(--bl-size-m)}:host([size=\"small\"]) .select-wrapper{--height:var(--bl-size-xl);--padding-vertical:var(--bl-size-3xs);--padding-horizontal:var(--bl-size-xs);--font-size:var(--bl-font-size-s)}:host([disabled]) .select-wrapper{--placeholder-color:var(--bl-color-neutral-light)}.dirty.invalid{--border-color:var(--bl-color-danger);--border-focus-color:var(--bl-color-danger-highlight);--label-color:var(--bl-color-danger)}.select-input{display:grid;align-items:center;justify-content:space-between;grid-template-columns:1fr max-content max-content;cursor:pointer;box-sizing:border-box;height:var(--height);border:solid 1px var(--border-color);font:var(--bl-font-title-3-regular);padding:0 calc(var(--padding-horizontal) - var(--label-padding) - var(--border-size));border-radius:var(--bl-border-radius-s);color:var(--text-color);background-color:var(--background-color);/* stylelint-disable-next-line property-no-vendor-prefix */-webkit-user-select:none;user-select:none;margin:0;width:auto;min-width:100%}.label,.placeholder{color:var(--placeholder-color);padding-inline-start:var(--label-padding);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}:host(:not([placeholder])) .placeholder,.select-wrapper.selected .placeholder,:host([label]:not([label-fixed])) .select-wrapper:not(.select-open) .placeholder{display:none}:host([label-fixed]) .label,:host(:not([label])) .label{display:none}.remove-all{display:none}.selected .remove-all{display:block}:host([disabled]) .remove-all,:host([disabled]) .remove-all::after{display:none}.dropdown-icon{font-size:var(--bl-font-size-m)}.dropdown-icon.open{display:none}.select-open .dropdown-icon.open{display:inline-block}.select-open .dropdown-icon.closed{display:none}.selected .dropdown-icon{--icon-color:var(--bl-color-neutral-darker)}:host([disabled]) .dropdown-icon{--icon-color:var(--bl-color-neutral-light)}.select-open .select-input,.select-input:focus-visible{border:solid 1px var(--border-focus-color);outline:none}:host([disabled]){cursor:not-allowed}:host([disabled]) .select-input{pointer-events:none;background-color:var(--disabled-color)}.select-input .selected-options{padding:0;padding-inline-start:var(--label-padding);margin:0;list-style:none;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host([disabled]) .select-input .selected-options{color:var(--bl-color-neutral-light)}.selected-options li{display:inline;font-size:var(--font-size);color:var(--text-color)}.selected-options li:not(:last-child)::after{content:\", \"}.select-input:not(.has-overflowed-options) .additional-selection-count{display:none}:host([disabled]) .additional-selection-count{color:var(--bl-color-neutral-light)}:host([disabled]) .selected-options li{color:var(--bl-color-neutral-light)}.select-input .actions{display:flex;align-items:center;justify-content:center;gap:var(--bl-size-4xs);margin-inline-start:var(--bl-size-2xs)}.popover{--left:0;--top:0;position:var(--popover-position);border:solid 1px var(--border-color);background-color:var(--background-color);font:var(--bl-font-title-3-regular);border-radius:var(--bl-border-radius-s);padding:var(--menu-padding);outline:none;box-sizing:border-box;max-height:var(--menu-height);overflow-y:auto;display:none;flex-direction:column;z-index:var(--bl-index-popover);width:100%;top:var(--top);left:var(--left)}:host(:empty) .popover{display:none}.popover-no-result{display:flex;flex-direction:column;gap:var(--bl-size-2xs);align-items:center;justify-content:center;height:80px}.select-open .popover{display:flex;border:solid 1px var(--border-focus-color)}bl-icon{color:var(--icon-color)}legend,label{padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}label{position:absolute;display:block;top:var(--padding-vertical);left:var(--padding-horizontal);inset-inline-end:calc(var(--bl-size-2xs) + var(--bl-size-m) + var(--bl-size-2xs));transition:all ease-in 0.1s;pointer-events:none;opacity:0;font:var(--bl-font-title-3-regular);font-size:var(--font-size);color:var(--placeholder-color)}legend{height:0;visibility:hidden;display:none}legend span{padding:0 var(--label-padding);display:inline-block;opacity:0;visibility:visible}:host([placeholder]) :where(.select-open, .selected) .label,:host(:not([placeholder])) .selected .label{display:none}:where(.select-open, .selected) label{top:0;transform:translateY(-50%);font:var(--bl-font-caption);color:var(--label-color);pointer-events:initial;right:var(--padding-horizontal);opacity:1}:host([label]) :where(.select-open, .selected) legend{max-width:100%;font:var(--bl-font-caption);display:block}:host([label-fixed]) label{position:static;padding:0;transition:none;transform:none;pointer-events:initial;font:var(--bl-font-caption);color:var(--label-color);opacity:1}:host([label-fixed]) legend{display:none}.hint{display:none;font:var(--bl-font-body-text-3)}.hint p{padding:0;margin:0}.error-icon,.invalid-text{display:none}.dirty.invalid label,.invalid-text,.error-icon{color:var(--bl-color-danger)}.help-text{color:var(--bl-color-neutral-dark)}.select-open .help-text,.select-open .invalid-text{visibility:hidden}:host([help-text]) .hint,.dirty.invalid .hint{display:block}.dirty.invalid .invalid-text{display:block}.dirty.invalid .help-text{display:none}.select-all{position:sticky;top:0;padding:var(--bl-size-xs) 0;background:var(--background-color);z-index:1;font:var(--bl-font-title-3-regular);/* Make sure option focus doesn't overflow */box-shadow:10px 0 0 var(--background-color),-10px 0 0 var(--background-color)}.select-all::after{position:absolute;content:\"\";width:100%;bottom:0;border-bottom:1px solid var(--bl-color-neutral-lighter)}.search-bar-input{font:var(--bl-font-title-3-regular);font-size:var(--font-size);color:var(--text-color);border:none;outline:none;background-color:transparent;width:100%;height:100%;padding:0;margin:0;box-sizing:border-box}.search-bar-input::placeholder{color:var(--placeholder-color)}.search-bar-input:focus-visible{outline:none}.search-spinner{padding-inline-end:var(--bl-font-size-2xs)}.action-divider{display:none}.select-wrapper .action-divider{display:block;height:1rem;width:1px;background-color:var(--bl-color-neutral-lighter)}.actions bl-icon{padding:4px}`;\nexport default styles;\n", "import { CSSResultGroup, html, LitElement, PropertyValues, TemplateResult } from \"lit\";\nimport { customElement, property, query, queryAll, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { autoUpdate, computePosition, flip, MiddlewareState, offset, size } from \"@floating-ui/dom\";\nimport { localized, msg } from \"@lit/localize\";\nimport { FormControlMixin, requiredValidator } from \"@open-wc/form-control\";\nimport { FormValue } from \"@open-wc/form-helpers\";\nimport \"element-internals-polyfill\";\nimport { LangKey } from \"../../localization\";\nimport { event, EventDispatcher } from \"../../utilities/event\";\nimport { stringBooleanConverter } from \"../../utilities/string-boolean.converter\";\nimport \"../button/bl-button\";\nimport \"../checkbox-group/checkbox/bl-checkbox\";\nimport BlCheckbox from \"../checkbox-group/checkbox/bl-checkbox\";\nimport \"../icon/bl-icon\";\nimport style from \"../select/bl-select.css\";\nimport \"../select/option/bl-select-option\";\nimport type BlSelectOption from \"./option/bl-select-option\";\n\nexport interface ISelectOption<T = string> {\n value: T;\n text: string;\n selected: boolean;\n}\n\nexport type SelectSize = \"medium\" | \"large\" | \"small\";\n\nexport type CleanUpFunction = () => void;\n\n/**\n * @tag bl-select\n * @summary Baklava Select component\n *\n * @cssproperty [--bl-popover-position=fixed] Sets the positioning strategy of select popover. You can set it as `absolute` if you need to show popover relative to its trigger element.\n */\n@customElement(\"bl-select\")\n@localized()\nexport default class BlSelect<ValueType extends FormValue = string> extends FormControlMixin(\n LitElement\n) {\n static get styles(): CSSResultGroup {\n return [style];\n }\n static shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true };\n\n static formControlValidators = [requiredValidator];\n\n /**\n * Sets name of the select field\n */\n @property()\n name: string;\n\n private _value: ValueType | ValueType[] | null;\n\n private _initialValue: ValueType | ValueType[] | null;\n\n /**\n * Sets the value of the select\n */\n @property()\n get value(): ValueType | ValueType[] | null {\n return this._value;\n }\n\n set value(val: ValueType | ValueType[] | null) {\n this._value = val;\n\n if (Array.isArray(val)) {\n const formData = new FormData();\n\n val.forEach(option => formData.append(this.name, `${option}`));\n this.setValue(formData);\n } else {\n this.setValue(val);\n }\n\n this.setOptionsSelected();\n }\n\n shouldFormValueUpdate(): boolean {\n return this.value !== null && this.value !== \"\";\n }\n\n /* Declare reactive properties */\n /**\n * Sets the label value\n */\n @property({ reflect: true })\n label?: string;\n\n /**\n * Sets the placeholder value. If left blank, the label value (if specified) is set as placeholder.\n */\n @property({ reflect: true })\n placeholder?: string;\n\n /**\n * Sets the size value. Select component's height value will be changed accordingly\n */\n @property({ type: String, reflect: true })\n size: SelectSize = \"medium\";\n\n /**\n * When option is not selected, shows component in error state\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * Shows the component in disabled state.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Sets whether the selected option is clearable\n */\n @property({ type: Boolean, reflect: true })\n clearable = false;\n\n /**\n * Allows multiple options to be selected\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * Sets input to get keyboard focus automatically\n */\n @property({ type: Boolean, reflect: true })\n autofocus = false;\n\n /**\n * Makes label as fixed positioned\n */\n @property({ type: Boolean, attribute: \"label-fixed\", reflect: true })\n labelFixed = false;\n\n /**\n * Adds help text\n */\n @property({ type: String, attribute: \"help-text\", reflect: true })\n helpText?: string;\n\n /**\n * Set custom error message\n */\n @property({ type: String, attribute: \"invalid-text\", reflect: true })\n customInvalidText?: string;\n\n /**\n * Views select all option in multiple select\n */\n @property({ type: Boolean, attribute: \"view-select-all\", converter: stringBooleanConverter() })\n viewSelectAll = false;\n\n /**\n * Sets select all text in multiple select\n */\n @property({ type: String, attribute: \"select-all-text\" })\n selectAllText?: string;\n\n /**\n * Enable search functionality for the options within the list\n */\n @property({ type: Boolean, attribute: \"search-bar\", reflect: true })\n searchBar = false;\n\n /**\n * Search for text variations such as \"search,\" \"searching,\" \"search by country,\" and so on\n */\n @property({ type: String, attribute: \"search-bar-placeholder\", reflect: true })\n searchBarPlaceholder?: string;\n\n /**\n * Display a loading icon in place of the search icon.\n */\n @property({\n type: Boolean,\n attribute: \"search-bar-loading-state\",\n converter: stringBooleanConverter(),\n })\n searchBarLoadingState = false;\n\n /**\n * Text to display when no search results are found.\n */\n @property({ type: String, attribute: \"search-not-found-text\", reflect: true })\n searchNotFoundText?: string;\n\n /**\n * Text to display on the clear search button.\n */\n @property({ type: String, attribute: \"popover-clear-search-text\", reflect: true })\n popoverClearSearchText?: string;\n\n /* Declare internal reactive properties */\n @state()\n private _isPopoverOpen = false;\n\n @state()\n private _additionalSelectedOptionCount = 0;\n\n @state()\n private _searchText = \"\";\n\n @query(\".selected-options\")\n private selectedOptionsContainer!: HTMLElement;\n\n @queryAll(\".selected-options li\")\n private selectedOptionsItems!: NodeListOf<HTMLElement>;\n\n @query(\".popover\")\n private _popover: HTMLElement;\n\n @query(\".select-input\")\n private _selectInput: HTMLElement;\n\n /**\n * Fires when selection changes\n */\n @event(\"bl-select\") private _onBlSelect: EventDispatcher<\n ISelectOption<ValueType>[] | ISelectOption<ValueType>\n >;\n\n /**\n * Fires when search text changes\n */\n @event(\"bl-search\") private _onBlSearch: EventDispatcher<string>;\n\n private userLang =\n (document.querySelector(\"html\")?.getAttribute(\"lang\") as LangKey | null) || navigator.language;\n\n private _connectedOptions: BlSelectOption<ValueType>[] = [];\n\n private _cleanUpPopover: CleanUpFunction | null = null;\n\n private setOptionsSelected() {\n this._connectedOptions.forEach(\n option =>\n (option.selected =\n this.value === option.value ||\n (Array.isArray(this.value) && this.value.includes(option.value)))\n );\n\n this._selectedOptions = [...this.options.filter(option => option.selected)];\n }\n\n get options() {\n return this._connectedOptions;\n }\n\n get opened() {\n return this._isPopoverOpen;\n }\n\n get noResultFound() {\n return this._searchText !== \"\" && this._connectedOptions.every(option => option.hidden);\n }\n\n @state()\n private _selectedOptions: BlSelectOption<ValueType>[] = [];\n\n @state()\n private dirty = false;\n\n get selectedOptions(): BlSelectOption<ValueType>[] {\n return this._selectedOptions;\n }\n\n get additionalSelectedOptionCount() {\n return this._additionalSelectedOptionCount;\n }\n\n validityCallback(): string | void {\n if (this.customInvalidText) {\n return this.customInvalidText;\n }\n const select = document.createElement(\"select\");\n\n select.required = this.required;\n\n return select.validationMessage;\n }\n\n reportValidity() {\n this.dirty = true;\n return this.checkValidity();\n }\n\n resetFormControl(): void {\n this.value = this._initialValue;\n }\n\n @query(\".select-input\")\n validationTarget: HTMLElement;\n\n open() {\n if (this.searchBar) {\n setTimeout(() => {\n document.activeElement?.shadowRoot?.querySelector(\"input\")?.focus();\n }, 100);\n }\n\n this._isPopoverOpen = true;\n this._setupPopover();\n document.addEventListener(\"click\", this._interactOutsideHandler, true);\n document.addEventListener(\"focus\", this._interactOutsideHandler, true);\n }\n\n close() {\n this._handleSearchOptions({ target: { value: \"\" } } as InputEvent & {\n target: HTMLInputElement;\n });\n\n this._isPopoverOpen = false;\n this.focusedOptionIndex = -1;\n this._cleanUpPopover && this._cleanUpPopover();\n document.removeEventListener(\"click\", this._interactOutsideHandler, true);\n document.removeEventListener(\"focus\", this._interactOutsideHandler, true);\n }\n\n private _interactOutsideHandler = (event: MouseEvent | FocusEvent) => {\n const eventPath = event.composedPath() as HTMLElement[];\n\n if (!eventPath?.find(el => el.tagName === \"BL-SELECT\")?.contains(this)) {\n this.close();\n }\n };\n\n private _setupPopover() {\n this._cleanUpPopover = autoUpdate(this._selectInput, this._popover, () => {\n computePosition(this._selectInput, this._popover, {\n placement: \"bottom\",\n strategy: \"fixed\",\n middleware: [\n flip(),\n offset(8),\n size({\n apply(args: MiddlewareState) {\n Object.assign(args.elements.floating.style, {\n width: `${args.elements.reference.getBoundingClientRect().width}px`,\n });\n },\n }),\n ],\n }).then(({ x, y }) => {\n this._popover.style.setProperty(\"--left\", `${x}px`);\n this._popover.style.setProperty(\"--top\", `${y}px`);\n });\n });\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this.form?.addEventListener(\"submit\", (e: SubmitEvent) => {\n if (!this.reportValidity()) {\n e.preventDefault();\n }\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this._cleanUpPopover && this._cleanUpPopover();\n }\n\n private inputTemplate() {\n const inputSelectedOptions = html`<ul class=\"selected-options\">\n ${this._selectedOptions.map(\n item => html`<li>${item.getAttribute(\"label\") || item.textContent}</li>`\n )}\n </ul>`;\n\n const isAllSelectedDisabled =\n this._selectedOptions.length > 0 && this._selectedOptions.every(option => option.disabled);\n const isRemoveButtonShown = !isAllSelectedDisabled && (this.clearable || this.multiple);\n const removeButton = isRemoveButtonShown\n ? html`<bl-button\n class=\"remove-all\"\n size=\"small\"\n variant=\"tertiary\"\n kind=\"neutral\"\n icon=\"close\"\n @click=${this._onClickRemove}\n ></bl-button>`\n : \"\";\n\n const isSearchBarVisible = this.searchBar && this.opened;\n const hasSelectedOptions = this._selectedOptions.length > 0;\n\n const isDividerShown = isSearchBarVisible || (hasSelectedOptions && isRemoveButtonShown);\n\n const searchbarPlaceholderText =\n this.searchBarPlaceholder ?? msg(\"Search\", { desc: \"bl-select: search placeholder text\" });\n\n const searchMagIcon = html`<bl-icon\n class=\"search-mag-icon\"\n name=\"search\"\n style=\"color: var(--bl-color-primary);font-size: var(--bl-font-size-s)\"\n ></bl-icon>`;\n\n const searchSpinner = html`<bl-spinner class=\"search-spinner\"></bl-spinner>`;\n\n const actionDivider = isDividerShown ? html`<div class=\"action-divider\"></div>` : \"\";\n\n const search = html`<fieldset\n class=${classMap({\n \"select-input\": true,\n \"has-overflowed-options\": this._additionalSelectedOptionCount > 0,\n })}\n tabindex=\"${this.disabled ? \"-1\" : 0}\"\n .autofocus=${this.autofocus}\n role=\"button\"\n aria-haspopup=\"listbox\"\n aria-expanded=\"${this.opened}\"\n aria-labelledby=\"label\"\n @click=${this.open}\n >\n <legend><span>${this.label}</span></legend>\n\n ${this._selectedOptions.length > 0 && !this.opened\n ? inputSelectedOptions\n : html`\n <input\n class=\"search-bar-input\"\n placeholder=${this.opened || this.labelFixed\n ? searchbarPlaceholderText\n : this.label || searchbarPlaceholderText}\n @input=${this._handleSearchOptions}\n @keydown=${(e: KeyboardEvent) => {\n if (e.code === \"Space\") {\n e.stopPropagation();\n }\n }}\n .value=${this._searchText}\n />\n `}\n ${!this.opened\n ? html`<span class=\"additional-selection-count\"\n >+${this._additionalSelectedOptionCount}</span\n >`\n : \"\"}\n\n <div class=\"actions\">\n ${this.opened ? (this.searchBarLoadingState ? searchSpinner : searchMagIcon) : \"\"}\n ${!this.opened ? removeButton : \"\"} ${actionDivider}\n\n <div @click=${this._togglePopover}>\n <bl-icon class=\"dropdown-icon open\" name=\"arrow_up\"></bl-icon>\n\n <bl-icon class=\"dropdown-icon closed\" name=\"arrow_down\"></bl-icon>\n </div>\n </div>\n </fieldset>`;\n\n return this.searchBar\n ? search\n : html`<fieldset\n class=${classMap({\n \"select-input\": true,\n \"has-overflowed-options\": this._additionalSelectedOptionCount > 0,\n })}\n tabindex=\"${ifDefined(this.disabled ? undefined : 0)}\"\n ?autofocus=${this.autofocus}\n @click=${this._togglePopover}\n role=\"button\"\n aria-haspopup=\"listbox\"\n aria-expanded=\"${this.opened}\"\n aria-labelledby=\"label\"\n >\n <legend><span>${this.label}</span></legend>\n <span class=\"placeholder\">${this.placeholder}</span>\n <span class=\"label\">${this.label}</span>\n ${inputSelectedOptions}\n <span class=\"additional-selection-count\">+${this._additionalSelectedOptionCount}</span>\n <div class=\"actions\">\n ${removeButton} ${actionDivider}\n <bl-icon class=\"dropdown-icon open\" name=\"arrow_up\"></bl-icon>\n\n <bl-icon class=\"dropdown-icon closed\" name=\"arrow_down\"></bl-icon>\n </div>\n </fieldset>`;\n }\n\n selectAllTemplate() {\n if (!this.multiple || !this.viewSelectAll || this.noResultFound) {\n return null;\n }\n\n const isAllRenderedOptionsSelected = this._connectedOptions\n .filter(option => !option.hidden)\n .every(option => option.selected);\n\n const isAnySelected = this._selectedOptions.filter(option => !option.hidden).length > 0;\n const selectAllText =\n this.selectAllText ?? msg(\"Select All\", { desc: \"bl-select: select all text\" });\n\n return html`<bl-checkbox\n class=\"select-all\"\n .checked=\"${isAllRenderedOptionsSelected}\"\n .indeterminate=\"${isAnySelected && !isAllRenderedOptionsSelected}\"\n role=\"option\"\n aria-selected=\"${isAllRenderedOptionsSelected}\"\n @bl-checkbox-change=\"${this._handleSelectAll}\"\n >\n ${selectAllText}\n </bl-checkbox>`;\n }\n\n render(): TemplateResult {\n const invalidMessage = !this.checkValidity()\n ? html`<p id=\"errorMessage\" aria-live=\"polite\" class=\"invalid-text\">\n ${this.validationMessage}\n </p>`\n : \"\";\n\n const helpMessage = this.helpText ? html`<p class=\"help-text\">${this.helpText}</p>` : \"\";\n\n const label = this.label ? html`<label id=\"label\">${this.label}</label>` : \"\";\n\n const noDataText =\n this.searchNotFoundText ?? msg(\"No Data Found\", { desc: \"bl-select: search no data text\" });\n\n const clearSearchText =\n this.popoverClearSearchText ??\n msg(\"Clear Search\", { desc: \"bl-select: clear search button text\" });\n\n return html`<div\n class=${classMap({\n \"select-wrapper\": true,\n \"select-open\": this.opened,\n \"selected\": this._selectedOptions.length > 0,\n \"invalid\": !this.validity.valid,\n \"dirty\": this.dirty,\n })}\n @keydown=${this.handleKeydown}\n >\n ${label} ${this.inputTemplate()}\n <div\n class=\"popover\"\n tabindex=\"${ifDefined(this._isPopoverOpen ? undefined : \"-1\")}\"\n @bl-select-option=${this._handleSelectOptionEvent}\n role=\"listbox\"\n aria-multiselectable=\"${this.multiple}\"\n aria-labelledby=\"label\"\n >\n ${this.selectAllTemplate()}\n <slot></slot>\n ${this.searchBar && this.noResultFound\n ? html`<div name=\"popover-clear-search-text\" class=\"popover-no-result\">\n <span>${noDataText}</span>\n <bl-button\n variant=\"tertiary\"\n @click=${() => {\n this._handleSearchOptions({ target: { value: \"\" } } as InputEvent & {\n target: HTMLInputElement;\n });\n }}\n >${clearSearchText}</bl-button\n >\n </div>`\n : \"\"}\n </div>\n <div class=\"hint\">${invalidMessage} ${helpMessage}</div>\n </div> `;\n }\n\n private focusedOptionIndex = -1;\n private lastKeyPressedTime = 0;\n private typedCharacters = \"\";\n private keyPressThreshold = 500;\n\n private handleFocusOptionByKey(key: string) {\n const currentTime = Date.now();\n const elapsedTimeSinceLastKeyPress = currentTime - this.lastKeyPressedTime;\n\n if (elapsedTimeSinceLastKeyPress > this.keyPressThreshold) {\n this.typedCharacters = \"\";\n }\n\n this.lastKeyPressedTime = currentTime;\n this.typedCharacters += key.toLowerCase();\n\n const matchingOptionIndex = this.options.findIndex(option => {\n if (option.disabled) {\n return false;\n }\n const optionText = option.innerText.trim().toLowerCase();\n\n return optionText.startsWith(this.typedCharacters);\n });\n\n if (matchingOptionIndex !== -1) {\n this.focusedOptionIndex = matchingOptionIndex;\n this.options[matchingOptionIndex].focus();\n }\n }\n\n private handleKeydown(event: KeyboardEvent) {\n if (this.focusedOptionIndex === -1 && [\"Enter\", \"Space\"].includes(event.code)) {\n this._togglePopover();\n event.preventDefault();\n } else if (this._isPopoverOpen === false && [\"ArrowDown\", \"ArrowUp\"].includes(event.code)) {\n this.open();\n event.preventDefault();\n } else if (event.code === \"Escape\") {\n this.close();\n event.preventDefault();\n } else if (this._isPopoverOpen && [\"ArrowDown\", \"ArrowUp\"].includes(event.code)) {\n const activeOptions = this.options.filter(option => !option.disabled);\n\n event.code === \"ArrowDown\" && this.focusedOptionIndex++;\n event.code === \"ArrowUp\" && this.focusedOptionIndex--;\n\n // Don't exceed array indexes\n this.focusedOptionIndex = Math.max(\n 0,\n Math.min(this.focusedOptionIndex, activeOptions.length - 1)\n );\n\n activeOptions[this.focusedOptionIndex].focus();\n\n event.preventDefault();\n } else if (this._isPopoverOpen && !this.searchBar) {\n this.handleFocusOptionByKey(event.key);\n }\n }\n\n private _togglePopover() {\n this._isPopoverOpen ? this.close() : this.open();\n }\n\n private _handleSelectEvent() {\n const options = this._selectedOptions.map(\n option =>\n ({\n value: option.value,\n selected: option.selected,\n text: option.textContent,\n } as ISelectOption<ValueType>)\n );\n\n if (!this.multiple) this._onBlSelect(options[0]);\n else this._onBlSelect(options);\n }\n\n private _handleSearchEvent() {\n this._onBlSearch(this._searchText);\n }\n\n private _handleSearchOptions(e: InputEvent): void {\n if (!this.searchBar) return;\n\n this._searchText = (e.target as HTMLInputElement).value;\n\n this._handleSearchEvent();\n\n this._connectedOptions.forEach(option => {\n const searchText = this._searchText.toLowerCase();\n let optionText = \"\";\n\n if (option.textContent) {\n try {\n // Try locale-specific comparison first\n optionText = option.textContent.toLocaleLowerCase(this.userLang);\n } catch {\n // Fallback to basic toLowerCase if locale is not supported\n optionText = option.textContent.toLowerCase();\n }\n }\n\n const isVisible = optionText.includes(searchText);\n\n option.hidden = !isVisible;\n });\n\n this._selectedOptions = this.options.filter(option => option.selected);\n this._handleLastVisibleSearchedOption();\n this.requestUpdate();\n }\n\n private _handleLastVisibleSearchedOption() {\n const lastVisibleOption = [...this.options].reverse().find(option => !option.hidden);\n\n if (lastVisibleOption) {\n lastVisibleOption?.shadowRoot?.querySelector(\"div\")?.classList.add(\"no-border-bottom\");\n }\n\n this.options.map(option => {\n if (!option.hidden && option !== lastVisibleOption) {\n option.shadowRoot?.querySelector(\"div\")?.classList.remove(\"no-border-bottom\");\n }\n });\n }\n\n private _handleSingleSelect(optionItem: BlSelectOption<ValueType>) {\n this.value = optionItem.value;\n\n this._searchText = \"\";\n this._handleSelectEvent();\n this.close();\n }\n\n private _handleMultipleSelect() {\n this.value = this._connectedOptions\n .filter(option => option.selected)\n .map(option => option.value);\n\n this._handleSelectEvent();\n }\n\n private _handleSelectOptionEvent(e: CustomEvent) {\n const optionItem = e.target as BlSelectOption<ValueType>;\n\n this.dirty = true;\n\n if (this.multiple) {\n this._handleMultipleSelect();\n } else {\n this._handleSingleSelect(optionItem);\n }\n }\n\n private _handleSelectAll(e: CustomEvent) {\n const selectAllEl = this.shadowRoot?.querySelector(\".select-all\") as BlCheckbox;\n\n const checked = e.detail;\n const unselectedOptions = this._connectedOptions.filter(\n option => !option.selected && !option.hidden\n );\n const isAllUnselectedDisabled = unselectedOptions.every(option => option.disabled);\n\n // If all available options are selected, instead of checking, uncheck all options\n if (checked && isAllUnselectedDisabled) {\n setTimeout(() => {\n const checkbox = selectAllEl?.shadowRoot?.querySelector(\"input\");\n\n checkbox?.click();\n }, 0);\n return;\n }\n\n this._connectedOptions.forEach(option => {\n if (option.disabled || option.hidden) {\n return;\n }\n\n option.selected = checked;\n });\n\n this._handleMultipleSelect();\n }\n\n private _onClickRemove(e: MouseEvent) {\n e.stopPropagation();\n\n this._searchText = \"\";\n\n const selectedDisabledOptions = this._selectedOptions.filter(option => option.disabled);\n\n this._connectedOptions\n .filter(option => !option.disabled && option.selected)\n .forEach(option => {\n option.selected = false;\n });\n\n this.value = selectedDisabledOptions.length\n ? selectedDisabledOptions.map(option => option.value)\n : null;\n this._handleSelectEvent();\n }\n\n private _checkAdditionalItemCount() {\n if (!this.multiple || !this.selectedOptionsItems || this.selectedOptionsItems.length < 2) {\n this._additionalSelectedOptionCount = 0;\n return;\n }\n\n const firstNonVisibleItemIndex = [...this.selectedOptionsItems].findIndex(\n item => item.offsetLeft > this.selectedOptionsContainer.offsetWidth\n );\n\n if (firstNonVisibleItemIndex > -1) {\n this._additionalSelectedOptionCount =\n this.selectedOptionsItems.length - firstNonVisibleItemIndex;\n } else {\n this._additionalSelectedOptionCount = 0;\n }\n }\n\n protected firstUpdated(): void {\n if (this.value === undefined) {\n if (this.multiple) {\n this.value = [];\n } else {\n this.value = null;\n }\n }\n\n this._initialValue = this._value;\n }\n\n protected updated(_changedProperties: PropertyValues) {\n if (\n _changedProperties.has(\"multiple\") &&\n typeof _changedProperties.get(\"multiple\") === \"boolean\"\n ) {\n this.value = null;\n }\n\n if (_changedProperties.has(\"_selectedOptions\")) {\n this._checkAdditionalItemCount();\n }\n }\n\n /**\n * This method is used by `bl-select-option` component to register itself to bl-select.\n * @param option BlSelectOption reference to be registered\n */\n registerOption(option: BlSelectOption<ValueType>) {\n this._connectedOptions.push(option);\n\n if (option.selected) {\n if (this.multiple) {\n if (!Array.isArray(this.value)) {\n this.value = [];\n }\n this.value = [...this.value, option.value];\n } else {\n this.value = option.value;\n }\n }\n\n this.setOptionsSelected();\n this.requestUpdate();\n }\n\n /**\n * This method is used by `bl-select-option` component to unregister itself from bl-select.\n * @param option BlSelectOption reference to be unregistered\n */\n unregisterOption(option: BlSelectOption<ValueType>) {\n this._connectedOptions.splice(this._connectedOptions.indexOf(option), 1);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"bl-select\": BlSelect;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["styles", "i", "bl_select_default", "_a", "BlSelect", "FormControlMixin", "s", "event", "eventPath", "el", "bl_select_default", "val", "formData", "option", "select", "_b", "_c", "autoUpdate", "computePosition", "flip", "offset", "size", "args", "x", "y", "e", "inputSelectedOptions", "item", "isRemoveButtonShown", "removeButton", "isSearchBarVisible", "hasSelectedOptions", "isDividerShown", "searchbarPlaceholderText", "msg", "searchMagIcon", "searchSpinner", "actionDivider", "search", "o", "l", "isAllRenderedOptionsSelected", "isAnySelected", "selectAllText", "invalidMessage", "helpMessage", "label", "noDataText", "clearSearchText", "key", "currentTime", "matchingOptionIndex", "activeOptions", "options", "searchText", "optionText", "isVisible", "lastVisibleOption", "optionItem", "selectAllEl", "checked", "isAllUnselectedDisabled", "checkbox", "selectedDisabledOptions", "firstNonVisibleItemIndex", "_changedProperties", "requiredValidator", "__decorateClass", "stringBooleanConverter", "t", "i", "localized"]
7
- }
@@ -1,20 +0,0 @@
1
- import{a as p}from"./chunk-BNUJWONI.js";import{a as d}from"./chunk-DINNT5P2.js";import{a}from"./chunk-GRL4DWKG.js";import{a as v,b as s,e as n}from"./chunk-5MOOXA2X.js";import{a as l,b as i,f as h}from"./chunk-4OT5AMS5.js";import{d as o}from"./chunk-IZ2LK5GK.js";var m=l`:host{display:contents}.trigger{display:var(--bl-tooltip-trigger-display, inline-flex);cursor:pointer}bl-popover{--bl-popover-background-color:var(--bl-color-info);--bl-popover-arrow-display:block;--bl-popover-border-size:0px;--bl-popover-max-width:424px}.content{color:var(--bl-color-neutral-full)}`,c=m;var t=class extends h{constructor(){super(...arguments);this.placement="top"}static get styles(){return[c]}update(e){if(e.has("target")){let r=e.get("target");r&&this._removeEvents(r),this._addEvents()}super.update(e)}_addEvents(){let e=p(this.target);e&&(e.addEventListener("focus",this.show,{capture:!0}),e.addEventListener("mouseenter",this.show),e.addEventListener("blur",this.hide,{capture:!0}),e.addEventListener("mouseleave",this.hide))}_removeEvents(e){let r=p(e);r&&(r.removeEventListener("focus",this.show,{capture:!0}),r.removeEventListener("mouseenter",this.show),r.removeEventListener("blur",this.hide,{capture:!0}),r.removeEventListener("mouseleave",this.hide))}connectedCallback(){super.connectedCallback(),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this._addEvents()}disconnectedCallback(){super.disconnectedCallback(),this._removeEvents(this.target)}show(){var e;this._popover.target=(e=this.target)!=null?e:this.trigger,this._popover.show(),this.onShow("")}hide(){this._popover.hide(),this.onHide("")}get visible(){return this._popover.visible}triggerTemplate(){return i`<slot
2
- class="trigger"
3
- name="tooltip-trigger"
4
- aria-describedby="tooltip"
5
- @focus=${{handleEvent:()=>this.show(),capture:!0}}
6
- @blur=${{handleEvent:()=>this.hide(),capture:!0}}
7
- @mouseenter=${()=>this.show()}
8
- @mouseleave=${()=>this.hide()}
9
- >
10
- </slot>`}render(){var e;return i`
11
- ${this.target?"":this.triggerTemplate()}
12
- <bl-popover
13
- .target="${(e=this.target)!=null?e:this.trigger}"
14
- placement="${d(this.placement)}"
15
- @bl-popover-hide="${()=>this.onHide("")}"
16
- >
17
- <slot class="content" id="tooltip" role="tooltip"></slot>
18
- </bl-popover>
19
- `}};o([n(".trigger")],t.prototype,"trigger",2),o([n("bl-popover")],t.prototype,"_popover",2),o([s({type:String})],t.prototype,"placement",2),o([a("bl-tooltip-show")],t.prototype,"onShow",2),o([a("bl-tooltip-hide")],t.prototype,"onHide",2),o([s()],t.prototype,"target",2),t=o([v("bl-tooltip")],t);export{t as a};
20
- //# sourceMappingURL=chunk-QMVEWMEI.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/components/tooltip/bl-tooltip.css", "../src/components/tooltip/bl-tooltip.ts"],
4
- "sourcesContent": ["import {css} from 'lit';\nexport const styles = css`:host{display:contents}.trigger{display:var(--bl-tooltip-trigger-display, inline-flex);cursor:pointer}bl-popover{--bl-popover-background-color:var(--bl-color-info);--bl-popover-arrow-display:block;--bl-popover-border-size:0px;--bl-popover-max-width:424px}.content{color:var(--bl-color-neutral-full)}`;\nexport default styles;\n", "import { CSSResultGroup, html, LitElement, PropertyValues, TemplateResult } from \"lit\";\nimport { customElement, property, query } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { ReferenceElement } from \"@floating-ui/core\";\nimport { getTarget } from \"../../utilities/elements\";\nimport { event, EventDispatcher } from \"../../utilities/event\";\nimport \"../popover/bl-popover\";\nimport BlPopover, { Placement } from \"../popover/bl-popover\";\nimport style from \"./bl-tooltip.css\";\n\n/**\n * @tag bl-tooltip\n * @summary Baklava Tooltip component\n * @dependency bl-popover\n *\n * @cssproperty [--bl-tooltip-trigger-display=inline-flex] Set the display of the tooltip trigger.\n */\n@customElement(\"bl-tooltip\")\nexport default class BlTooltip extends LitElement {\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n @query(\".trigger\") private trigger: ReferenceElement;\n @query(\"bl-popover\") private _popover: BlPopover;\n\n /**\n * Sets placement of the tooltip\n */\n @property({ type: String })\n placement: Placement = \"top\";\n\n /**\n * Fires when hovering over a trigger\n */\n @event(\"bl-tooltip-show\") private onShow: EventDispatcher<string>;\n\n /**\n * Fires when leaving over from trigger\n */\n @event(\"bl-tooltip-hide\") private onHide: EventDispatcher<string>;\n\n @property() target: string | Element;\n\n protected update(changedProperties: PropertyValues) {\n if (changedProperties.has(\"target\")) {\n const prev = changedProperties.get(\"target\");\n\n if (prev) {\n this._removeEvents(prev);\n }\n\n this._addEvents();\n }\n\n super.update(changedProperties);\n }\n\n private _addEvents() {\n const target = getTarget(this.target);\n\n if (target) {\n target.addEventListener(\"focus\", this.show, { capture: true });\n target.addEventListener(\"mouseenter\", this.show);\n target.addEventListener(\"blur\", this.hide, { capture: true });\n target.addEventListener(\"mouseleave\", this.hide);\n }\n }\n\n private _removeEvents(value: string | Element) {\n const target = getTarget(value);\n\n if (target) {\n target.removeEventListener(\"focus\", this.show, { capture: true });\n target.removeEventListener(\"mouseenter\", this.show);\n target.removeEventListener(\"blur\", this.hide, { capture: true });\n target.removeEventListener(\"mouseleave\", this.hide);\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this);\n\n this._addEvents();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this._removeEvents(this.target);\n }\n\n /**\n * Shows tooltip\n */\n show() {\n this._popover.target = this.target ?? this.trigger;\n this._popover.show();\n this.onShow(\"\");\n }\n\n /**\n * Hides tooltip\n */\n hide() {\n this._popover.hide();\n this.onHide(\"\");\n }\n\n /**\n * Gives the visibility status of the tooltip\n */\n get visible(): boolean {\n return this._popover.visible;\n }\n\n private triggerTemplate() {\n return html`<slot\n class=\"trigger\"\n name=\"tooltip-trigger\"\n aria-describedby=\"tooltip\"\n @focus=${{ handleEvent: () => this.show(), capture: true }}\n @blur=${{ handleEvent: () => this.hide(), capture: true }}\n @mouseenter=${() => this.show()}\n @mouseleave=${() => this.hide()}\n >\n </slot>`;\n }\n\n render(): TemplateResult {\n return html`\n ${this.target ? \"\" : this.triggerTemplate()}\n <bl-popover\n .target=\"${this.target ?? this.trigger}\"\n placement=\"${ifDefined(this.placement)}\"\n @bl-popover-hide=\"${() => this.onHide(\"\")}\"\n >\n <slot class=\"content\" id=\"tooltip\" role=\"tooltip\"></slot>\n </bl-popover>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"bl-tooltip\": BlTooltip;\n }\n}\n"],
5
- "mappings": "uQACO,IAAMA,EAASC,+SACfC,EAAQF,ECgBf,IAAqBG,EAArB,cAAuCC,CAAW,CAAlD,kCAYE,eAAuB,MAXvB,WAAW,QAAyB,CAClC,MAAO,CAACC,CAAK,CACf,CAuBU,OAAOC,EAAmC,CAClD,GAAIA,EAAkB,IAAI,QAAQ,EAAG,CACnC,IAAMC,EAAOD,EAAkB,IAAI,QAAQ,EAEvCC,GACF,KAAK,cAAcA,CAAI,EAGzB,KAAK,WAAW,EAGlB,MAAM,OAAOD,CAAiB,CAChC,CAEQ,YAAa,CACnB,IAAME,EAASC,EAAU,KAAK,MAAM,EAEhCD,IACFA,EAAO,iBAAiB,QAAS,KAAK,KAAM,CAAE,QAAS,EAAK,CAAC,EAC7DA,EAAO,iBAAiB,aAAc,KAAK,IAAI,EAC/CA,EAAO,iBAAiB,OAAQ,KAAK,KAAM,CAAE,QAAS,EAAK,CAAC,EAC5DA,EAAO,iBAAiB,aAAc,KAAK,IAAI,EAEnD,CAEQ,cAAcE,EAAyB,CAC7C,IAAMF,EAASC,EAAUC,CAAK,EAE1BF,IACFA,EAAO,oBAAoB,QAAS,KAAK,KAAM,CAAE,QAAS,EAAK,CAAC,EAChEA,EAAO,oBAAoB,aAAc,KAAK,IAAI,EAClDA,EAAO,oBAAoB,OAAQ,KAAK,KAAM,CAAE,QAAS,EAAK,CAAC,EAC/DA,EAAO,oBAAoB,aAAc,KAAK,IAAI,EAEtD,CAEA,mBAAoB,CAClB,MAAM,kBAAkB,EAExB,KAAK,KAAO,KAAK,KAAK,KAAK,IAAI,EAC/B,KAAK,KAAO,KAAK,KAAK,KAAK,IAAI,EAE/B,KAAK,WAAW,CAClB,CAEA,sBAAuB,CACrB,MAAM,qBAAqB,EAE3B,KAAK,cAAc,KAAK,MAAM,CAChC,CAKA,MAAO,CAlGT,IAAAG,EAmGI,KAAK,SAAS,QAASA,EAAA,KAAK,SAAL,KAAAA,EAAe,KAAK,QAC3C,KAAK,SAAS,KAAK,EACnB,KAAK,OAAO,EAAE,CAChB,CAKA,MAAO,CACL,KAAK,SAAS,KAAK,EACnB,KAAK,OAAO,EAAE,CAChB,CAKA,IAAI,SAAmB,CACrB,OAAO,KAAK,SAAS,OACvB,CAEQ,iBAAkB,CACxB,OAAOC;AAAA;AAAA;AAAA;AAAA,eAII,CAAE,YAAa,IAAM,KAAK,KAAK,EAAG,QAAS,EAAK;AAAA,cACjD,CAAE,YAAa,IAAM,KAAK,KAAK,EAAG,QAAS,EAAK;AAAA,oBAC1C,IAAM,KAAK,KAAK;AAAA,oBAChB,IAAM,KAAK,KAAK;AAAA;AAAA,YAGlC,CAEA,QAAyB,CApI3B,IAAAD,EAqII,OAAOC;AAAA,QACH,KAAK,OAAS,GAAK,KAAK,gBAAgB;AAAA;AAAA,oBAE7BD,EAAA,KAAK,SAAL,KAAAA,EAAe,KAAK;AAAA,qBAClBE,EAAU,KAAK,SAAS;AAAA,4BACjB,IAAM,KAAK,OAAO,EAAE;AAAA;AAAA;AAAA;AAAA,KAK9C,CACF,EAzH6BC,EAAA,CAA1BC,EAAM,UAAU,GALEZ,EAKQ,uBACEW,EAAA,CAA5BC,EAAM,YAAY,GANAZ,EAMU,wBAM7BW,EAAA,CADCE,EAAS,CAAE,KAAM,MAAO,CAAC,GAXPb,EAYnB,yBAKkCW,EAAA,CAAjCG,EAAM,iBAAiB,GAjBLd,EAiBe,sBAKAW,EAAA,CAAjCG,EAAM,iBAAiB,GAtBLd,EAsBe,sBAEtBW,EAAA,CAAXE,EAAS,GAxBSb,EAwBP,sBAxBOA,EAArBW,EAAA,CADCE,EAAc,YAAY,GACNb",
6
- "names": ["styles", "i", "bl_tooltip_default", "BlTooltip", "s", "bl_tooltip_default", "changedProperties", "prev", "target", "getTarget", "value", "_a", "x", "l", "__decorateClass", "i", "e", "event"]
7
- }
@@ -1,84 +0,0 @@
1
- import{a as V}from"./chunk-IPYZIIRV.js";import{a as Y,b as k}from"./chunk-WEEGH2F4.js";import{a as M}from"./chunk-6LT7O7T2.js";import{a as A}from"./chunk-HBPBDC7T.js";import{a as T}from"./chunk-GRL4DWKG.js";import{a as S,b as y,c as f}from"./chunk-5MOOXA2X.js";import{a as x,b as h,f as C}from"./chunk-4OT5AMS5.js";import{d as s}from"./chunk-IZ2LK5GK.js";function v(u){let D=[],e=u.split(",");return e==null||e.forEach(t=>{let a=new Date(t.trim());isNaN(a.getTime())||D.push(a)}),D}var d=class extends C{constructor(){super(...arguments);this.startOfWeek=0;this.locale=document.documentElement.lang||"en-EN";this._disabledDates=[];this._value=[]}get disabledDates(){return this._disabledDates}set disabledDates(e){let t=[];typeof e=="string"?t=v(e):Array.isArray(e)&&(t=e.filter(a=>!isNaN(a.getTime()))),this.requestUpdate("disabledDates",t),this._disabledDates=t}get maxDate(){return this._maxDate}set maxDate(e){if(e&&isNaN(new Date(e).getTime())){console.warn("Invalid maxDate value.");return}this._minDate&&this._minDate>=e?console.warn("maxDate cannot be smaller than minDate."):(this._maxDate=new Date(e),this.requestUpdate("maxDate",e))}get minDate(){return this._minDate}set minDate(e){if(e&&isNaN(new Date(e).getTime())){console.warn("Invalid minDate value.");return}this._maxDate&&this._maxDate<=e?console.warn("minDate cannot be greater than maxDate."):(this._minDate=new Date(e),this.requestUpdate("minDate",e))}set value(e){let t=this._value;this._value=e,this.requestUpdate("value",t)}get value(){return this._value}};s([y()],d.prototype,"type",2),s([y({type:Number,attribute:"start-of-week",reflect:!0})],d.prototype,"startOfWeek",2),s([y()],d.prototype,"locale",2),s([y({attribute:"disabled-dates",reflect:!0})],d.prototype,"disabledDates",1),s([y({type:Date,attribute:"max-date",reflect:!0})],d.prototype,"maxDate",1),s([y({type:Date,attribute:"min-date",reflect:!0})],d.prototype,"minDate",1),s([y({attribute:"value",reflect:!0})],d.prototype,"value",1);function E(u){return typeof u=="string"?v(u):u instanceof Date?[u]:u}var N=x`.calendar{display:flex;flex-direction:column}.calendar-content{display:flex;padding:var(--bl-size-m);flex-direction:column;align-items:center;gap:var(--bl-size-m);border-radius:var(--bl-border-radius-s);width:fit-content;background:var(--bl-color-neutral-full)}.calendar-header{display:flex;justify-content:space-between;width:100%;align-items:center;padding-bottom:var(--bl-size-s)}.arrow{flex:1}:host([dir="rtl"]) .arrow{transform:scale(-1)}.header-text{flex:3}.header-text-hover{background:var(--bl-color-neutral-lightest);border-radius:var(--bl-border-radius-s)}.days-wrapper{display:flex;flex-direction:column}.day-wrapper{display:flex;align-items:center;justify-content:center}.week-row{display:flex;align-items:center;flex-direction:row;padding-bottom:var(--bl-size-2xs)}.day{display:flex;align-items:center;width:40px;--bl-button-focus-border-color:#000;--bl-font-title-4-medium:var(--bl-font-weight-regular) var(--bl-font-size-m);--bl-size-xl:40px;--bl-border-radius-m:50%;--bl-border-radius-l:50%}.day.today-day{--bl-color-neutral-darker:var(--bl-color-primary);--bl-color-neutral-darkest:var(--bl-color-primary)}.day.other-month-day{--bl-color-neutral-darker:var(--bl-color-neutral-dark)}.day.other-month-day.selected-day{--bl-color-neutral-darker:var(--bl-color-neutral-full)}.day.selected-day{background:var(--bl-color-primary);border-radius:50%;--bl-button-focus-border-color:var(--bl-color-primary);--bl-color-neutral-darker:var(--bl-color-neutral-full)}.range-day{background:var(--bl-color-primary-contrast);--bl-color-neutral-lightest:var(--bl-color-primary-contrast)}.range-end-day,.range-start-day,.selected-day{--bl-color-neutral-lightest:var(--bl-color-primary);--bl-color-neutral-darker:var(--bl-color-neutral-full);--bl-color-neutral-darkest:var(--bl-color-neutral-full) !important}.range-start-day{background:var(--bl-color-primary-contrast);border-start-start-radius:50%;border-end-start-radius:50%}.range-end-day{background:var(--bl-color-primary-contrast);border-start-end-radius:50%;border-end-end-radius:50%}.weekday-text{color:var(--bl-color-neutral-dark);text-align:center;padding:var(--bl-size-2xs) 0;width:40px}.grid-content{display:grid;grid-template-columns:auto auto auto;text-align:center}.grid-item{width:93.33px;--bl-size-3xs:15px}.grid-item:not(:nth-last-child(-n + 3)){padding-bottom:var(--bl-size-2xs)}.calendar-text{font:var(--bl-font-title-3-regular)}`,$=N;var o=class extends d{constructor(){super(...arguments);this.today=new Date;this._calendarMonth=this.today.getMonth();this._calendarYear=this.today.getFullYear();this._calendarView="days";this._calendarYears=[];this._calendarDays=[];this._dates=[];this.handleClearSelectedDates=()=>{this._dates=[],this._onBlCalendarChange([]),this.clearRangePickerStyles()}}static get styles(){return[$]}connectedCallback(){super.connectedCallback(),V(this)}get months(){return[...Array(12).keys()].map(e=>({name:new Date(0,e+1,0).toLocaleString(this.locale,{month:"long"}),value:e}))}get days(){return[...Array(7).keys()].map(e=>({name:new Date(0,0,e).toLocaleString(this.locale,{weekday:"short"}),value:e}))}getDayNumInAMonth(e,t){return new Date(e,t+1,0).getDate()}getWeekDayOfDate(e,t){return new Date(e,t,1).getDay()}setPreviousCalendarView(){if(this.clearRangePickerStyles(),this._calendarView==="days")this._calendarMonth===0?(this._calendarMonth=11,this._calendarYear-=1):this._calendarMonth-=1;else if(this._calendarView==="months")this._calendarYear-=1;else if(this._calendarView==="years"){let e=this._calendarYears[0];this._calendarYears=Array.from({length:12},(t,a)=>e-(a+1))}this.type==="range"&&this.setHoverClass()}setNextCalendarView(){if(this.clearRangePickerStyles(),this._calendarView==="days")this._calendarMonth===11?(this._calendarMonth=0,this._calendarYear+=1):this._calendarMonth+=1;else if(this._calendarView==="months")this._calendarYear+=1;else if(this._calendarView==="years"){let e=this._calendarYears[11];this._calendarYears=Array.from({length:12},(t,a)=>e+(a+1))}this.setHoverClass()}setCurrentCalendarView(e){this._calendarView=this._calendarView!==e?e:"days",this.setHoverClass()}setMonthAndCalendarView(e){this._calendarMonth=e,this._calendarView="days",this.type==="range"&&this.setHoverClass()}setYearAndCalendarView(e){this._calendarYear=e,this._calendarView="days",this.type==="range"&&this.setHoverClass()}generateSurroundingYears(){this._calendarYears.length||(this._calendarYears=Array.from({length:12},(e,t)=>this._calendarYear-4+t))}clearRangePickerStyles(){var e;(e=this.shadowRoot)==null||e.querySelectorAll(".range-day, .range-start-day, .range-end-day").forEach(t=>t.classList.remove("range-day","range-start-day","range-end-day"))}handleDate(e){if(this.type!=="range"){let t=e.getFullYear()<this._calendarYear||e.getFullYear()===this._calendarYear&&e.getMonth()<this._calendarMonth,a=e.getFullYear()>this._calendarYear||e.getFullYear()===this._calendarYear&&e.getMonth()>this._calendarMonth;t?this.setPreviousCalendarView():a&&this.setNextCalendarView()}switch(this.type){case"single":this.handleSingleSelectCalendar(e);break;case"multiple":this.handleMultipleSelectCalendar(e);break;case"range":this.handleRangeSelectCalendar(e);break}this._onBlCalendarChange(this._dates),this.requestUpdate()}handleSingleSelectCalendar(e){this._dates=[e]}handleMultipleSelectCalendar(e){var a,l,r;((a=this._dates)==null?void 0:a.some(n=>n.getTime()===e.getTime()))?(r=this._dates)==null||r.splice((l=this._dates)==null?void 0:l.findIndex(n=>n.getTime()===e.getTime()),1):this._dates.push(e)}handleRangeSelectCalendar(e){if(!this._dates[0])this._dates[0]=e;else if(this._dates[1])this._dates=[],this._dates[0]=e;else if(e.getTime()>this._dates[0].getTime())this._dates[1]=e;else{let t=this._dates[0];this._dates[0]=e,this._dates[1]=t}this.setHoverClass()}checkIfSelectedDate(e){var t;return(t=this._dates)==null?void 0:t.some(a=>a.getFullYear()===e.getFullYear()&&a.getMonth()===e.getMonth()&&a.getDate()===e.getDate())}checkIfDateIsToday(e){let t=this.today;return t.getDate()===e.getDate()&&t.getMonth()===e.getMonth()&&t.getFullYear()===e.getFullYear()}checkIfDateIsDisabled(e){var t,a,l;return e.getTime()<((t=this.minDate)==null?void 0:t.getTime())||e.getTime()>((a=this.maxDate)==null?void 0:a.getTime())?!0:this.disabledDates.length>0?(l=this.disabledDates)==null?void 0:l.some(r=>e.getDate()===r.getDate()&&e.getMonth()===r.getMonth()&&e.getFullYear()===r.getFullYear()):!1}setHoverClass(){this.clearRangePickerStyles(),this._dates[0]&&this._dates[1]&&setTimeout(()=>{var l,r,n,b,m,_,i,c,g;let e=(n=(r=this.shadowRoot)==null?void 0:r.getElementById(`${(l=this._dates[0])==null?void 0:l.getTime()}`))==null?void 0:n.parentElement;e==null||e.classList.add("range-start-day");let t=(_=(m=this.shadowRoot)==null?void 0:m.getElementById(`${(b=this._dates[1])==null?void 0:b.getTime()}`))==null?void 0:_.parentElement;t==null||t.classList.add("range-end-day");let a=[...this.createCalendarDays().values()].flat().filter(p=>p.getTime()>this._dates[0].getTime()&&p.getTime()<this._dates[1].getTime());for(let p=0;p<a.length;p++){let w=(c=(i=this.shadowRoot)==null?void 0:i.getElementById(`${a[p].getTime()}`))==null?void 0:c.parentElement;(g=w==null?void 0:w.classList)==null||g.add("range-day")}})}createCalendarDays(){var m,_;let e=new Map;this._calendarDays=this.days.slice(this.startOfWeek).concat(this.days.slice(0,this.startOfWeek));let t=this.getWeekDayOfDate(this._calendarYear,this._calendarMonth),a=t<this.startOfWeek?7-(this.startOfWeek-t):t-this.startOfWeek,l=this.getDayNumInAMonth(this._calendarYear,this._calendarMonth-1),r=this.getDayNumInAMonth(this._calendarYear,this._calendarMonth),n=this.startOfWeek;for(let i=a;i>0;i--){let c=n%7,g=new Date(this._calendarYear,this._calendarMonth-1,l-i+1);e.set(this.days[c].name,[g]),n+=1}for(let i=1;i<=r;i++){let c=n%7,g=new Date(this._calendarYear,this._calendarMonth,i);e.get(this.days[c].name)?(m=e.get(this.days[c].name))==null||m.push(g):e.set(this.days[c].name,[g]),n+=1}let b=this._calendarDays.findIndex(i=>i.value===n%7);if(b!==0)for(let i=1;i<=this._calendarDays.length-b;i++){let c=n%7,g=new Date(this._calendarYear,this._calendarMonth+1,i);(_=e.get(this.days[c].name))==null||_.push(g),n+=1}return e}updated(e){if(e.has("value")){let t=E(this._value);t.length?t==null||t.forEach(a=>{this.handleDate(a)}):(this._dates=[],this._onBlCalendarChange([]))}}renderCalendarHeader(){let e=this._calendarView==="months"?"header-text-hover":"",t=this._calendarView==="years"?"header-text-hover":"";return h`
2
- <div class="calendar-header">
3
- <bl-button
4
- class="arrow"
5
- icon="arrow_left"
6
- variant="tertiary"
7
- kind="neutral"
8
- @click="${()=>this.setPreviousCalendarView()}"
9
- ></bl-button>
10
- <bl-button
11
- variant="tertiary"
12
- kind="neutral"
13
- class="header-text ${e}"
14
- @click="${()=>this.setCurrentCalendarView("months")}"
15
- >${this.months[this._calendarMonth].name}
16
- </bl-button>
17
- <bl-button
18
- variant="tertiary"
19
- kind="neutral"
20
- class="header-text ${t}"
21
- @click="${()=>this.setCurrentCalendarView("years")}"
22
- >${this._calendarYear}
23
- </bl-button>
24
- <bl-button
25
- class="arrow"
26
- icon="arrow_right"
27
- variant="tertiary"
28
- kind="neutral"
29
- @click="${()=>this.setNextCalendarView()}"
30
- ></bl-button>
31
- </div>
32
- `}renderCalendarDays(){let e=this.createCalendarDays(),t=Array.from(e.values());return h`
33
- <div class="week-row">
34
- ${[...e.keys()].map(a=>h` <div class="calendar-text weekday-text">${a}</div> `)}
35
- </div>
36
- <div class="days-wrapper">
37
- ${[...Array(t[0].length).keys()].map(a=>h` <div class="week-row">
38
- ${t.map(l=>{let r=l[a],n=this.checkIfSelectedDate(r),b=this.checkIfDateIsToday(r),m=this.checkIfDateIsDisabled(r),_=M({day:!0,"calendar-text":!0,"today-day":b,"selected-day":n,"other-month-day":l[a].getMonth()!==this._calendarMonth,"disabled-day":m});return h`
39
- <div class="day-wrapper">
40
- <bl-button
41
- id=${r.getTime()}
42
- variant="tertiary"
43
- kind="neutral"
44
- size="small"
45
- class=${_}
46
- ?disabled=${m}
47
- @click="${()=>!m&&this.handleDate(r)}"
48
- >
49
- ${r.getDate()}
50
- </bl-button>
51
- </div>
52
- `})}
53
- </div>`)}
54
- </div>
55
- </div>`}renderCalendarMonths(){return h` <div class="grid-content">
56
- ${this.months.map((e,t)=>{let a=e.value===this._calendarMonth?"primary":"tertiary",l=e.value===this._calendarMonth?"default":"neutral";return h` <bl-button
57
- variant=${a}
58
- kind=${l}
59
- class="grid-item"
60
- size="small"
61
- @click="${()=>this.setMonthAndCalendarView(t)}"
62
- ><span class="calendar-text">${e.name}</span></bl-button
63
- >`})}
64
- </div>`}renderCalendarYears(){return this.generateSurroundingYears(),h` <div class="grid-content">
65
- ${this._calendarYears.map(e=>{let t=e===this._calendarYear?"primary":"tertiary",a=e===this._calendarYear?"default":"neutral";return h` <bl-button
66
- variant=${t}
67
- kind=${a}
68
- class="grid-item"
69
- @click="${()=>this.setYearAndCalendarView(e)}"
70
- ><span class="calendar-text">${e}</span></bl-button
71
- >`})}
72
- </div>`}render(){return h`
73
- <div>
74
- <div class="calendar-content">
75
- <div class="calendar">
76
- ${this.renderCalendarHeader()}
77
- ${this._calendarView==="days"?this.renderCalendarDays():""}
78
- ${this._calendarView==="months"?this.renderCalendarMonths():""}
79
- ${this._calendarView==="years"?this.renderCalendarYears():""}
80
- </div>
81
- </div>
82
- </div>
83
- `}};s([f()],o.prototype,"today",2),s([f()],o.prototype,"_calendarMonth",2),s([f()],o.prototype,"_calendarYear",2),s([f()],o.prototype,"_calendarView",2),s([f()],o.prototype,"_calendarYears",2),s([f()],o.prototype,"_calendarDays",2),s([f()],o.prototype,"_dates",2),s([T("bl-calendar-change")],o.prototype,"_onBlCalendarChange",2),o=s([S("bl-calendar"),A()],o);export{d as a,o as b};
84
- //# sourceMappingURL=chunk-S6HEBXIR.js.map