@empathyco/x-components 6.0.0-alpha.24 → 6.0.0-alpha.26

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 (160) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/core/index.js +1 -1
  3. package/design-system/deprecated-full-theme.css +2000 -2001
  4. package/docs/API-reference/api/x-components.md +0 -1
  5. package/js/components/animations/fade-and-slide.vue.js +1 -2
  6. package/js/components/animations/fade-and-slide.vue.js.map +1 -1
  7. package/js/components/base-dropdown.vue.js +1 -3
  8. package/js/components/base-dropdown.vue.js.map +1 -1
  9. package/js/components/base-event-button.vue.js +1 -2
  10. package/js/components/base-event-button.vue.js.map +1 -1
  11. package/js/components/base-grid.vue.js +11 -18
  12. package/js/components/base-grid.vue.js.map +1 -1
  13. package/js/components/base-keyboard-navigation.vue.js +1 -2
  14. package/js/components/base-keyboard-navigation.vue.js.map +1 -1
  15. package/js/components/base-rating.vue.js +1 -3
  16. package/js/components/base-rating.vue.js.map +1 -1
  17. package/js/components/base-slider.vue.js +1 -2
  18. package/js/components/base-slider.vue.js.map +1 -1
  19. package/js/components/base-variable-column-grid.vue.js +1 -2
  20. package/js/components/base-variable-column-grid.vue.js.map +1 -1
  21. package/js/components/column-picker/base-column-picker-dropdown.vue.js +1 -3
  22. package/js/components/column-picker/base-column-picker-dropdown.vue.js.map +1 -1
  23. package/js/components/column-picker/base-column-picker-list.vue.js +1 -3
  24. package/js/components/column-picker/base-column-picker-list.vue.js.map +1 -1
  25. package/js/components/filters/labels/base-rating-filter-label.vue.js +1 -3
  26. package/js/components/filters/labels/base-rating-filter-label.vue.js.map +1 -1
  27. package/js/components/items-list.vue.js +1 -2
  28. package/js/components/items-list.vue.js.map +1 -1
  29. package/js/components/layouts/fixed-header-and-asides-layout.vue.js +1 -7
  30. package/js/components/layouts/fixed-header-and-asides-layout.vue.js.map +1 -1
  31. package/js/components/layouts/multi-column-max-width-layout.vue.js +1 -9
  32. package/js/components/layouts/multi-column-max-width-layout.vue.js.map +1 -1
  33. package/js/components/layouts/single-column-layout.vue.js +1 -9
  34. package/js/components/layouts/single-column-layout.vue.js.map +1 -1
  35. package/js/components/modals/base-events-modal-close.vue.js +1 -2
  36. package/js/components/modals/base-events-modal-close.vue.js.map +1 -1
  37. package/js/components/modals/base-events-modal-open.vue.js +1 -2
  38. package/js/components/modals/base-events-modal-open.vue.js.map +1 -1
  39. package/js/components/modals/base-id-modal-close.vue.js +1 -2
  40. package/js/components/modals/base-id-modal-close.vue.js.map +1 -1
  41. package/js/components/modals/base-id-modal-open.vue.js +1 -2
  42. package/js/components/modals/base-id-modal-open.vue.js.map +1 -1
  43. package/js/components/modals/base-modal.vue.js +1 -2
  44. package/js/components/modals/base-modal.vue.js.map +1 -1
  45. package/js/components/page-loader-button.vue.js +1 -4
  46. package/js/components/page-loader-button.vue.js.map +1 -1
  47. package/js/components/panels/base-header-toggle-panel.vue.js +1 -5
  48. package/js/components/panels/base-header-toggle-panel.vue.js.map +1 -1
  49. package/js/components/panels/base-id-toggle-panel-button.vue.js +1 -2
  50. package/js/components/panels/base-id-toggle-panel-button.vue.js.map +1 -1
  51. package/js/components/panels/base-id-toggle-panel.vue.js +1 -2
  52. package/js/components/panels/base-id-toggle-panel.vue.js.map +1 -1
  53. package/js/components/panels/base-tabs-panel.vue.js +1 -4
  54. package/js/components/panels/base-tabs-panel.vue.js.map +1 -1
  55. package/js/components/panels/base-toggle-panel.vue.js +1 -2
  56. package/js/components/panels/base-toggle-panel.vue.js.map +1 -1
  57. package/js/components/result/base-result-add-to-cart.vue.js +1 -2
  58. package/js/components/result/base-result-add-to-cart.vue.js.map +1 -1
  59. package/js/components/result/base-result-current-price.vue.js +1 -2
  60. package/js/components/result/base-result-current-price.vue.js.map +1 -1
  61. package/js/components/result/base-result-image.vue.js +39 -59
  62. package/js/components/result/base-result-image.vue.js.map +1 -1
  63. package/js/components/result/base-result-link.vue.js +1 -2
  64. package/js/components/result/base-result-link.vue.js.map +1 -1
  65. package/js/components/result/base-result-previous-price.vue.js +1 -2
  66. package/js/components/result/base-result-previous-price.vue.js.map +1 -1
  67. package/js/components/result/base-result-rating.vue.js +1 -4
  68. package/js/components/result/base-result-rating.vue.js.map +1 -1
  69. package/js/components/result/result-variant-selector.vue.js +1 -3
  70. package/js/components/result/result-variant-selector.vue.js.map +1 -1
  71. package/js/components/sliding-panel.vue.js +1 -4
  72. package/js/components/sliding-panel.vue.js.map +1 -1
  73. package/js/components/suggestions/base-suggestion.vue.js +1 -2
  74. package/js/components/suggestions/base-suggestion.vue.js.map +1 -1
  75. package/js/components/suggestions/base-suggestions.vue.js +1 -2
  76. package/js/components/suggestions/base-suggestions.vue.js.map +1 -1
  77. package/js/composables/use-alias-api.js +1 -1
  78. package/js/composables/use-getter.js +1 -1
  79. package/js/composables/use-state.js +1 -1
  80. package/js/index.js +1 -1
  81. package/js/x-modules/empathize/components/empathize.vue.js +1 -2
  82. package/js/x-modules/empathize/components/empathize.vue.js.map +1 -1
  83. package/js/x-modules/facets/components/facets/facets.vue.js +20 -33
  84. package/js/x-modules/facets/components/facets/facets.vue.js.map +1 -1
  85. package/js/x-modules/facets/components/filters/all-filter.vue.js +1 -2
  86. package/js/x-modules/facets/components/filters/all-filter.vue.js.map +1 -1
  87. package/js/x-modules/facets/components/filters/editable-number-range-filter.vue.js +1 -6
  88. package/js/x-modules/facets/components/filters/editable-number-range-filter.vue.js.map +1 -1
  89. package/js/x-modules/facets/components/filters/hierarchical-filter.vue.js +1 -3
  90. package/js/x-modules/facets/components/filters/hierarchical-filter.vue.js.map +1 -1
  91. package/js/x-modules/facets/components/filters/number-range-filter.vue.js +1 -3
  92. package/js/x-modules/facets/components/filters/number-range-filter.vue.js.map +1 -1
  93. package/js/x-modules/facets/components/filters/simple-filter.vue.js +1 -3
  94. package/js/x-modules/facets/components/filters/simple-filter.vue.js.map +1 -1
  95. package/js/x-modules/facets/components/lists/filters-list.vue.js +1 -2
  96. package/js/x-modules/facets/components/lists/filters-list.vue.js.map +1 -1
  97. package/js/x-modules/facets/components/lists/filters-search.vue.js +1 -3
  98. package/js/x-modules/facets/components/lists/filters-search.vue.js.map +1 -1
  99. package/js/x-modules/facets/components/lists/selected-filters-list.vue.js +11 -18
  100. package/js/x-modules/facets/components/lists/selected-filters-list.vue.js.map +1 -1
  101. package/js/x-modules/facets/components/lists/sliced-filters.vue.js +1 -4
  102. package/js/x-modules/facets/components/lists/sliced-filters.vue.js.map +1 -1
  103. package/js/x-modules/history-queries/components/clear-history-queries.vue.js +1 -2
  104. package/js/x-modules/history-queries/components/clear-history-queries.vue.js.map +1 -1
  105. package/js/x-modules/history-queries/components/history-queries.vue.js +1 -10
  106. package/js/x-modules/history-queries/components/history-queries.vue.js.map +1 -1
  107. package/js/x-modules/history-queries/components/history-query.vue.js +1 -6
  108. package/js/x-modules/history-queries/components/history-query.vue.js.map +1 -1
  109. package/js/x-modules/history-queries/components/my-history.vue.js +1 -4
  110. package/js/x-modules/history-queries/components/my-history.vue.js.map +1 -1
  111. package/js/x-modules/history-queries/components/remove-history-query.vue.js +1 -2
  112. package/js/x-modules/history-queries/components/remove-history-query.vue.js.map +1 -1
  113. package/js/x-modules/identifier-results/components/identifier-results.vue.js +1 -2
  114. package/js/x-modules/identifier-results/components/identifier-results.vue.js.map +1 -1
  115. package/js/x-modules/next-queries/components/next-queries.vue.js +1 -7
  116. package/js/x-modules/next-queries/components/next-queries.vue.js.map +1 -1
  117. package/js/x-modules/next-queries/components/next-query-preview.vue.js +1 -3
  118. package/js/x-modules/next-queries/components/next-query-preview.vue.js.map +1 -1
  119. package/js/x-modules/next-queries/components/next-query.vue.js +1 -4
  120. package/js/x-modules/next-queries/components/next-query.vue.js.map +1 -1
  121. package/js/x-modules/popular-searches/components/popular-search.vue.js +1 -4
  122. package/js/x-modules/popular-searches/components/popular-search.vue.js.map +1 -1
  123. package/js/x-modules/popular-searches/components/popular-searches.vue.js +1 -7
  124. package/js/x-modules/popular-searches/components/popular-searches.vue.js.map +1 -1
  125. package/js/x-modules/queries-preview/components/query-preview-button.vue.js +1 -2
  126. package/js/x-modules/queries-preview/components/query-preview-button.vue.js.map +1 -1
  127. package/js/x-modules/queries-preview/components/query-preview.vue.js +1 -2
  128. package/js/x-modules/queries-preview/components/query-preview.vue.js.map +1 -1
  129. package/js/x-modules/query-suggestions/components/query-suggestion.vue.js +1 -4
  130. package/js/x-modules/query-suggestions/components/query-suggestion.vue.js.map +1 -1
  131. package/js/x-modules/query-suggestions/components/query-suggestions.vue.js +1 -7
  132. package/js/x-modules/query-suggestions/components/query-suggestions.vue.js.map +1 -1
  133. package/js/x-modules/recommendations/components/recommendations.vue.js +1 -2
  134. package/js/x-modules/recommendations/components/recommendations.vue.js.map +1 -1
  135. package/js/x-modules/related-tags/components/related-tag.vue.js +1 -2
  136. package/js/x-modules/related-tags/components/related-tag.vue.js.map +1 -1
  137. package/js/x-modules/related-tags/components/related-tags.vue.js +1 -4
  138. package/js/x-modules/related-tags/components/related-tags.vue.js.map +1 -1
  139. package/js/x-modules/scroll/components/scroll-to-top.vue.js +1 -2
  140. package/js/x-modules/scroll/components/scroll-to-top.vue.js.map +1 -1
  141. package/js/x-modules/search/components/partial-results-list.vue.js +1 -2
  142. package/js/x-modules/search/components/partial-results-list.vue.js.map +1 -1
  143. package/js/x-modules/search/components/sort-dropdown.vue.js +1 -3
  144. package/js/x-modules/search/components/sort-dropdown.vue.js.map +1 -1
  145. package/js/x-modules/search-box/components/clear-search-input.vue.js +1 -2
  146. package/js/x-modules/search-box/components/clear-search-input.vue.js.map +1 -1
  147. package/js/x-modules/search-box/components/search-button.vue.js +1 -2
  148. package/js/x-modules/search-box/components/search-button.vue.js.map +1 -1
  149. package/js/x-modules/semantic-queries/components/semantic-queries.vue.js +1 -3
  150. package/js/x-modules/semantic-queries/components/semantic-queries.vue.js.map +1 -1
  151. package/js/x-modules/semantic-queries/components/semantic-query.vue.js +1 -4
  152. package/js/x-modules/semantic-queries/components/semantic-query.vue.js.map +1 -1
  153. package/package.json +2 -2
  154. package/report/x-components.api.json +0 -33
  155. package/report/x-components.api.md +2 -2
  156. package/types/composables/use-store.d.ts +2 -2
  157. package/types/composables/use-store.d.ts.map +1 -1
  158. package/docs/API-reference/api/x-components.usestore.md +0 -19
  159. package/js/composables/use-store.js +0 -15
  160. package/js/composables/use-store.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"base-column-picker-dropdown.vue.js","sources":["../../../../src/components/column-picker/base-column-picker-dropdown.vue"],"sourcesContent":["<template>\n <BaseDropdown\n @update:modelValue=\"emitEvents\"\n :modelValue=\"selectedColumns\"\n :items=\"columns\"\n :animation=\"animation\"\n aria-label=\"Select number of columns\"\n >\n <template v-if=\"hasToggleSlot\" #toggle=\"{ item, isOpen }\">\n <!--\n @slot From `BaseDropdown` component: Used to render the contents of the dropdown toggle\n button. If not provided, it uses the `item` slot as fallback.\n @binding {string|number|Identifiable} item - The item data to render.\n @binding {boolean} isOpen - True if the dropdown is opened, and false if it is\n closed.\n -->\n <slot name=\"toggle\" v-bind=\"{ item, isOpen }\" />\n </template>\n <template #item=\"{ item, isSelected, isHighlighted }\">\n <!--\n @slot (required) From `BaseDropdown` component: Used to render each one of the items\n content, and as fallback for the toggle button content slot if it is not provided.\n @binding {string|number|Identifiable} item - Item to render\n @binding {boolean} isHighlighted - True when the item has the focus.\n @binding {boolean} isSelected - True when the item is selected.\n -->\n <slot name=\"item\" v-bind=\"{ item, isSelected, isHighlighted }\" />\n </template>\n </BaseDropdown>\n</template>\n\n<script lang=\"ts\">\n import Vue, { computed, defineComponent, onBeforeMount, PropType, ref, watch } from 'vue';\n import { use$x } from '../../composables/use-$x';\n import BaseDropdown from '../base-dropdown.vue';\n\n /**\n * Column picker dropdown component renders {@link BaseDropdown} component which\n * options are the different columns you can set for a grid.\n *\n * It emits {@link XEventsTypes.UserClickedColumnPicker} on dropdown\n * input.\n *\n * @public\n */\n export default defineComponent({\n name: 'BaseColumnPickerDropdown',\n components: { BaseDropdown },\n props: {\n /** An array of numbers that represents the number of columns to render. */\n columns: {\n type: Array as PropType<number[]>,\n required: true\n },\n /** The value of the selected columns number. */\n modelValue: Number,\n /** The transition to use for opening and closing the dropdown. */\n animation: [String, Object] as PropType<string | typeof Vue>\n },\n emits: ['update:modelValue'],\n setup(props, { emit, slots }) {\n const $x = use$x();\n\n const providedSelectedColumns = computed(() => props.modelValue ?? props.columns[0]);\n const selectedColumns = ref(providedSelectedColumns.value);\n\n /**\n * Assigns `selectedColumns` value and emits `ColumnsNumberProvided`.\n *\n * @param column - Column number provided.\n */\n function emitColumnsNumberProvided(column: number) {\n selectedColumns.value = column;\n $x.emit('ColumnsNumberProvided', column);\n }\n\n /**\n * Emits `update:modelValue` with the column selected.\n *\n * @param column - Column number selected.\n */\n function emitUpdateModelValue(column: number) {\n if (props.modelValue !== column) {\n emit('update:modelValue', column);\n }\n }\n\n watch(providedSelectedColumns, emitColumnsNumberProvided);\n watch(selectedColumns, emitUpdateModelValue);\n\n $x.on('ColumnsNumberProvided', false).subscribe(column => (selectedColumns.value = column));\n\n /**\n * Synchronizes the columns number before mounting the component. If the real number of selected\n * columns equals the provided columns, it emits the event to sync it with every other component.\n * If it is not equal it means that the user has already selected a number of columns, so we emit\n * a `update:modelValue` event so developers can sync the provided value.\n */\n onBeforeMount(() => {\n if (selectedColumns.value === providedSelectedColumns.value) {\n emitColumnsNumberProvided(selectedColumns.value);\n } else {\n emitUpdateModelValue(selectedColumns.value);\n }\n });\n\n /**\n * Emits a {@link XEventsTypes.UserClickedColumnPicker} and\n * {@link XEventsTypes.ColumnsNumberProvided} events.\n *\n * @param column - Column number payload.\n */\n function emitEvents(column: number) {\n $x.emit('UserClickedColumnPicker', column);\n $x.emit('ColumnsNumberProvided', column);\n }\n\n return {\n emitEvents,\n hasToggleSlot: !!slots.toggle,\n selectedColumns\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nAn event that the component will emit:\n\n- [`UserClickedColumnPicker`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks an item in the dropdown. The event payload is the\n number of columns that the clicked item represents.\n- [`ColumnsNumberProvided`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted on component mount, and whenever the value changes. The event payload is the\n current `selectedColumns` value.\n\n## Example\n\nColumn picker dropdown component renders a dropdown component which options are the different\ncolumns you can set for a grid.\n\n### Usage\n\nNotice that the slots provided match with the `BaseDropdown` component. The `item` slot is required\nunlike the `toggle`, which renders the same `item` slot defined by default.\n\n#### Default usage\n\n```vue live\n<template>\n <BaseColumnPickerDropdown v-model=\"selectedColumns\" :columns=\"[2, 4, 6]\">\n <template #item=\"{ item, isSelected, isHighlighted }\">\n <span v-if=\"isHighlighted\">🟢</span>\n <span v-if=\"isSelected\">✅</span>\n <span>{{ item }}</span>\n </template>\n </BaseColumnPickerDropdown>\n</template>\n\n<script>\n import { BaseColumnPickerDropdown } from '@empathyco/x-components';\n\n export default {\n name: 'BaseColumnPickerDropdownTest',\n components: {\n BaseColumnPickerDropdown\n },\n data() {\n return {\n selectedColumns: 2\n };\n }\n };\n</script>\n```\n\n#### Customizing toggle button\n\n```vue live\n<template>\n <BaseColumnPickerDropdown v-model=\"selectedColumns\" :columns=\"[2, 4, 6]\">\n <template #toggle=\"{ item, isOpen }\">Selected: {{ item }} {{ isOpen ? '🔼' : '🔽' }}️</template>\n <template #item=\"{ item, isSelected, isHighlighted }\">\n <span v-if=\"isHighlighted\">🟢</span>\n <span v-if=\"isSelected\">✅</span>\n <span>{{ item }}</span>\n </template>\n </BaseColumnPickerDropdown>\n</template>\n\n<script>\n import { BaseColumnPickerDropdown } from '@empathyco/x-components';\n\n export default {\n name: 'BaseColumnPickerDropdownTest',\n components: {\n BaseColumnPickerDropdown\n },\n data() {\n return {\n selectedColumns: 2\n };\n }\n };\n</script>\n```\n\n#### Using it without v-model / value\n\nThe component emits an X Event, `UserClickedColumnPicker`, on column change and it also listens to\nthat event from outside, so you don't need to store the current column value to keep it synchronized\nwith other column pickers.\n\n```vue live\n<template>\n <BaseColumnPickerDropdown :columns=\"[2, 4, 6]\">\n <template #toggle=\"{ item, isOpen }\">Selected: {{ item }} {{ isOpen ? '🔼' : '🔽' }}️</template>\n <template #item=\"{ item, isSelected, isHighlighted }\">\n <span v-if=\"isHighlighted\">🟢</span>\n <span v-if=\"isSelected\">✅</span>\n <span>{{ item }}</span>\n </template>\n </BaseColumnPickerDropdown>\n</template>\n\n<script>\n import { BaseColumnPickerDropdown } from '@empathyco/x-components';\n\n export default {\n name: 'BaseColumnPickerDropdownTest',\n components: {\n BaseColumnPickerDropdown\n }\n };\n</script>\n```\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createBlock","animation","_createSlots","_withCtx","_createCommentVNode","_renderSlot","_normalizeProps","_guardReactiveProps","hasToggleSlot"],"mappings":";;;;;kCACEA,gBA2Be,CAAA,cAAA,CAAA,CAAA;AAzBZ,EAAA,OAAAC,SAAA,EAA2B,EAAAC,WAAA,CAAA,uBAAA,EAAA;AAAA,IAC3B,qBAAc,EAAA,IAAA,CAAA,UAAA;AAAA,IACd,UAAWC,EAAAA,IAAAA,CAAAA,eAAAA;AAAAA,IACZ,KAAU,EAAA,IAAA,CAAA,OAAA;AAAA,IANd,SAAA,EAAA,IAAA,CAAA,SAAA;AAAA,IAkBe,YAAI,EAAA,0BAAA;AAAA,GACb,EAAAC,WAAA,CAAA;AAAA,IAAA,IAAA,EAOAC,QAAiE,CA1BvE,EAAA,IAAA,EAAA,UAAA,EAAA,aAAA,EAAA,KAAA;AAAA,MAAAC,kBAAA,CAAA,2ZAAA,CAAA;AAAA,MAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,MAAA,EAAAC,cAAA,CAAAC,kBAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;AAAA,KAAA,CAAA;AAQoBC,IAAAA,CAAAA,EAAAA,CAAAA;AAAAA;AAAAA,GAAAA,EAAAA;AARpB,IAAA,IAAA,CAAA,aAAA,GAAA;AASM,MAAA,IAAA,EAAA,QAAA;AAAA,MAAA,EAAA,EAOAL,OAAgD,CAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA;AAAA,QAAAC,kBAAA,CAAA,qWAAA,CAAA;AAhBtD,QAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAAC,cAAA,CAAAC,kBAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;AAAA,OAAA,CAAA;AAAA,MAAA,GAAA,EAAA,GAAA;AAAA,KAAA,GAAA,KAAA,CAAA;;;;;;;"}
1
+ {"version":3,"file":"base-column-picker-dropdown.vue.js","sources":["../../../../src/components/column-picker/base-column-picker-dropdown.vue"],"sourcesContent":["<template>\n <BaseDropdown\n @update:modelValue=\"emitEvents\"\n :modelValue=\"selectedColumns\"\n :items=\"columns\"\n :animation=\"animation\"\n aria-label=\"Select number of columns\"\n >\n <template v-if=\"hasToggleSlot\" #toggle=\"{ item, isOpen }\">\n <!--\n @slot From `BaseDropdown` component: Used to render the contents of the dropdown toggle\n button. If not provided, it uses the `item` slot as fallback.\n @binding {string|number|Identifiable} item - The item data to render.\n @binding {boolean} isOpen - True if the dropdown is opened, and false if it is\n closed.\n -->\n <slot name=\"toggle\" v-bind=\"{ item, isOpen }\" />\n </template>\n <template #item=\"{ item, isSelected, isHighlighted }\">\n <!--\n @slot (required) From `BaseDropdown` component: Used to render each one of the items\n content, and as fallback for the toggle button content slot if it is not provided.\n @binding {string|number|Identifiable} item - Item to render\n @binding {boolean} isHighlighted - True when the item has the focus.\n @binding {boolean} isSelected - True when the item is selected.\n -->\n <slot name=\"item\" v-bind=\"{ item, isSelected, isHighlighted }\" />\n </template>\n </BaseDropdown>\n</template>\n\n<script lang=\"ts\">\n import Vue, { computed, defineComponent, onBeforeMount, PropType, ref, watch } from 'vue';\n import { use$x } from '../../composables/use-$x';\n import BaseDropdown from '../base-dropdown.vue';\n\n /**\n * Column picker dropdown component renders {@link BaseDropdown} component which\n * options are the different columns you can set for a grid.\n *\n * It emits {@link XEventsTypes.UserClickedColumnPicker} on dropdown\n * input.\n *\n * @public\n */\n export default defineComponent({\n name: 'BaseColumnPickerDropdown',\n components: { BaseDropdown },\n props: {\n /** An array of numbers that represents the number of columns to render. */\n columns: {\n type: Array as PropType<number[]>,\n required: true\n },\n /** The value of the selected columns number. */\n modelValue: Number,\n /** The transition to use for opening and closing the dropdown. */\n animation: [String, Object] as PropType<string | typeof Vue>\n },\n emits: ['update:modelValue'],\n setup(props, { emit, slots }) {\n const $x = use$x();\n\n const providedSelectedColumns = computed(() => props.modelValue ?? props.columns[0]);\n const selectedColumns = ref(providedSelectedColumns.value);\n\n /**\n * Assigns `selectedColumns` value and emits `ColumnsNumberProvided`.\n *\n * @param column - Column number provided.\n */\n function emitColumnsNumberProvided(column: number) {\n selectedColumns.value = column;\n $x.emit('ColumnsNumberProvided', column);\n }\n\n /**\n * Emits `update:modelValue` with the column selected.\n *\n * @param column - Column number selected.\n */\n function emitUpdateModelValue(column: number) {\n if (props.modelValue !== column) {\n emit('update:modelValue', column);\n }\n }\n\n watch(providedSelectedColumns, emitColumnsNumberProvided);\n watch(selectedColumns, emitUpdateModelValue);\n\n $x.on('ColumnsNumberProvided', false).subscribe(column => (selectedColumns.value = column));\n\n /**\n * Synchronizes the columns number before mounting the component. If the real number of selected\n * columns equals the provided columns, it emits the event to sync it with every other component.\n * If it is not equal it means that the user has already selected a number of columns, so we emit\n * a `update:modelValue` event so developers can sync the provided value.\n */\n onBeforeMount(() => {\n if (selectedColumns.value === providedSelectedColumns.value) {\n emitColumnsNumberProvided(selectedColumns.value);\n } else {\n emitUpdateModelValue(selectedColumns.value);\n }\n });\n\n /**\n * Emits a {@link XEventsTypes.UserClickedColumnPicker} and\n * {@link XEventsTypes.ColumnsNumberProvided} events.\n *\n * @param column - Column number payload.\n */\n function emitEvents(column: number) {\n $x.emit('UserClickedColumnPicker', column);\n $x.emit('ColumnsNumberProvided', column);\n }\n\n return {\n emitEvents,\n hasToggleSlot: !!slots.toggle,\n selectedColumns\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Events\n\nAn event that the component will emit:\n\n- [`UserClickedColumnPicker`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks an item in the dropdown. The event payload is the\n number of columns that the clicked item represents.\n- [`ColumnsNumberProvided`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted on component mount, and whenever the value changes. The event payload is the\n current `selectedColumns` value.\n\n## Example\n\nColumn picker dropdown component renders a dropdown component which options are the different\ncolumns you can set for a grid.\n\n### Usage\n\nNotice that the slots provided match with the `BaseDropdown` component. The `item` slot is required\nunlike the `toggle`, which renders the same `item` slot defined by default.\n\n#### Default usage\n\n```vue live\n<template>\n <BaseColumnPickerDropdown v-model=\"selectedColumns\" :columns=\"[2, 4, 6]\">\n <template #item=\"{ item, isSelected, isHighlighted }\">\n <span v-if=\"isHighlighted\">🟢</span>\n <span v-if=\"isSelected\">✅</span>\n <span>{{ item }}</span>\n </template>\n </BaseColumnPickerDropdown>\n</template>\n\n<script>\n import { BaseColumnPickerDropdown } from '@empathyco/x-components';\n\n export default {\n name: 'BaseColumnPickerDropdownTest',\n components: {\n BaseColumnPickerDropdown\n },\n data() {\n return {\n selectedColumns: 2\n };\n }\n };\n</script>\n```\n\n#### Customizing toggle button\n\n```vue live\n<template>\n <BaseColumnPickerDropdown v-model=\"selectedColumns\" :columns=\"[2, 4, 6]\">\n <template #toggle=\"{ item, isOpen }\">Selected: {{ item }} {{ isOpen ? '🔼' : '🔽' }}️</template>\n <template #item=\"{ item, isSelected, isHighlighted }\">\n <span v-if=\"isHighlighted\">🟢</span>\n <span v-if=\"isSelected\">✅</span>\n <span>{{ item }}</span>\n </template>\n </BaseColumnPickerDropdown>\n</template>\n\n<script>\n import { BaseColumnPickerDropdown } from '@empathyco/x-components';\n\n export default {\n name: 'BaseColumnPickerDropdownTest',\n components: {\n BaseColumnPickerDropdown\n },\n data() {\n return {\n selectedColumns: 2\n };\n }\n };\n</script>\n```\n\n#### Using it without v-model / value\n\nThe component emits an X Event, `UserClickedColumnPicker`, on column change and it also listens to\nthat event from outside, so you don't need to store the current column value to keep it synchronized\nwith other column pickers.\n\n```vue live\n<template>\n <BaseColumnPickerDropdown :columns=\"[2, 4, 6]\">\n <template #toggle=\"{ item, isOpen }\">Selected: {{ item }} {{ isOpen ? '🔼' : '🔽' }}️</template>\n <template #item=\"{ item, isSelected, isHighlighted }\">\n <span v-if=\"isHighlighted\">🟢</span>\n <span v-if=\"isSelected\">✅</span>\n <span>{{ item }}</span>\n </template>\n </BaseColumnPickerDropdown>\n</template>\n\n<script>\n import { BaseColumnPickerDropdown } from '@empathyco/x-components';\n\n export default {\n name: 'BaseColumnPickerDropdownTest',\n components: {\n BaseColumnPickerDropdown\n }\n };\n</script>\n```\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createBlock","animation","_createSlots","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps","hasToggleSlot"],"mappings":";;;;;kCACEA,gBA2Be,CAAA,cAAA,CAAA,CAAA;AAzBZ,EAAA,OAAAC,SAAA,EAA2B,EAAAC,WAAA,CAAA,uBAAA,EAAA;AAAA,IAC3B,qBAAc,EAAA,IAAA,CAAA,UAAA;AAAA,IACd,UAAWC,EAAAA,IAAAA,CAAAA,eAAAA;AAAAA,IACZ,KAAU,EAAA,IAAA,CAAA,OAAA;AAAA,IANd,SAAA,EAAA,IAAA,CAAA,SAAA;AAAA,IAkBe,YAAI,EAAA,0BAAA;AAAA,GAQoD,EAAAC,WAAA,CAAA;AAAA,IAAA,IAAA,EAAAC,OAAA,CAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,aAAA,EAAA,KAAA;AA1BvE,MAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,MAAA,EAAAC,cAAA,CAAAC,kBAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;AAAA,KAAA,CAAA;AAQoBC,IAAAA,CAAAA,EAAAA,CAAAA;AAAAA;AAAAA,GAAAA,EAAAA;AARpB,IAAA,IAAA,CAAA,aAAA,GAAA;AAgBM,MAAA,IAAA,EAAA,QAAA;AAAA,MAAA,EAAA,EAAAJ,OAAA,CAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA;AAhBN,QAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAAC,cAAA,CAAAC,kBAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;AAAA,OAAA,CAAA;AAAA,MAAA,GAAA,EAAA,GAAA;AAAA,KAAA,GAAA,KAAA,CAAA;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './base-column-picker-list.vue2.js';
2
- import { resolveComponent, openBlock, createElementBlock, Fragment, renderList, createVNode, normalizeClass, withCtx, createCommentVNode, renderSlot, mergeProps, createTextVNode, toDisplayString } from 'vue';
2
+ import { resolveComponent, openBlock, createElementBlock, Fragment, renderList, createVNode, normalizeClass, withCtx, renderSlot, mergeProps, createTextVNode, toDisplayString, createCommentVNode } from 'vue';
3
3
  import _export_sfc from '../../_virtual/_plugin-vue_export-helper.js';
4
4
 
5
5
  const _hoisted_1 = {
@@ -27,7 +27,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
27
27
  role: "listitem"
28
28
  }, {
29
29
  default: withCtx(() => [
30
- createCommentVNode("\n @slot Customized Column Picker Button content. Specifying a slot with the column value\n will result in the column using that slot composition to render.\n @binding {number} column - Columns Number to pick.\n @binding {boolean} isSelected - True if the columns number are the chosen value.\n "),
31
30
  renderSlot(_ctx.$slots, "default", mergeProps({ ref_for: true }, { column, isSelected }), () => [
32
31
  createTextVNode(
33
32
  toDisplayString(column),
@@ -39,7 +38,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
39
38
  _: 2
40
39
  /* DYNAMIC */
41
40
  }, 1032, ["class", "aria-pressed", "events", "aria-label"]),
42
- createCommentVNode("\n @slot Customized Column Picker divider. Specify an element to act as divider for\n the items in the column picker. Empty by default.\n "),
43
41
  index !== _ctx.columnsWithCssClasses.length - 1 ? renderSlot(_ctx.$slots, "divider", { key: 0 }) : createCommentVNode("v-if", true)
44
42
  ],
45
43
  64
@@ -1 +1 @@
1
- {"version":3,"file":"base-column-picker-list.vue.js","sources":["../../../../src/components/column-picker/base-column-picker-list.vue"],"sourcesContent":["<template>\n <div class=\"x-column-picker-list x-button-group\" data-test=\"column-picker-list\" role=\"list\">\n <template\n v-for=\"({ column, cssClasses, events, isSelected }, index) in columnsWithCssClasses\"\n :key=\"column\"\n >\n <BaseEventButton\n class=\"x-column-picker-list__button x-button\"\n :class=\"[buttonClass, cssClasses]\"\n data-test=\"column-picker-button\"\n :aria-pressed=\"isSelected.toString()\"\n :events=\"events\"\n :aria-label=\"`${column} columns`\"\n role=\"listitem\"\n >\n <!--\n @slot Customized Column Picker Button content. Specifying a slot with the column value\n will result in the column using that slot composition to render.\n @binding {number} column - Columns Number to pick.\n @binding {boolean} isSelected - True if the columns number are the chosen value.\n -->\n <slot v-bind=\"{ column, isSelected }\">\n {{ column }}\n </slot>\n </BaseEventButton>\n\n <!--\n @slot Customized Column Picker divider. Specify an element to act as divider for\n the items in the column picker. Empty by default.\n -->\n <slot v-if=\"index !== columnsWithCssClasses.length - 1\" name=\"divider\"></slot>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, onBeforeMount, PropType, ref, watch } from 'vue';\n import { use$x } from '../../composables/use-$x';\n import { VueCSSClasses } from '../../utils/types';\n import { XEventsTypes } from '../../wiring';\n import BaseEventButton from '../base-event-button.vue';\n\n interface ColumnPickerItem {\n column: number;\n cssClasses: VueCSSClasses;\n events: Partial<XEventsTypes>;\n isSelected: boolean;\n }\n\n /**\n * Column picker list component renders a list of buttons to choose the columns number.\n *\n * Additionally, this component exposes the following props to modify the classes of the\n * elements: `buttonClass`.\n *\n * @public\n */\n export default defineComponent({\n name: 'BaseColumnPickerList',\n components: { BaseEventButton },\n props: {\n /** An array of numbers that represents the number of columns to render. */\n columns: {\n type: Array as PropType<number[]>,\n required: true\n },\n /** The value of the selected columns number. */\n modelValue: Number,\n /** Class inherited by each button. */\n buttonClass: String\n },\n emits: ['update:modelValue'],\n setup(props, { emit }) {\n const $x = use$x();\n\n const providedSelectedColumns = computed(() => props.modelValue ?? props.columns[0]);\n const selectedColumns = ref(providedSelectedColumns.value);\n\n /**\n * Assigns `selectedColumns` value and emits `ColumnsNumberProvided`.\n *\n * @param column - Column number provided.\n */\n function emitColumnsNumberProvided(column: number) {\n selectedColumns.value = column;\n $x.emit('ColumnsNumberProvided', column);\n }\n\n /**\n * Emits `update:modelValue` with the column selected.\n *\n * @param column - Column number selected.\n */\n function emitUpdateModelValue(column: number) {\n if (props.modelValue !== column) {\n emit('update:modelValue', column);\n }\n }\n\n watch(providedSelectedColumns, emitColumnsNumberProvided);\n watch(selectedColumns, emitUpdateModelValue);\n\n $x.on('ColumnsNumberProvided', false).subscribe(column => (selectedColumns.value = column));\n\n /**\n * Synchronizes the columns number before mounting the component. If the real number of selected\n * columns equals the provided columns, it emits the event to sync it with every other component.\n * If it is not equal it means that the user has already selected a number of columns, so we emit\n * a `update:modelValue` event so developers can sync the provided value.\n */\n onBeforeMount(() => {\n if (selectedColumns.value === providedSelectedColumns.value) {\n emitColumnsNumberProvided(selectedColumns.value);\n } else {\n emitUpdateModelValue(selectedColumns.value);\n }\n });\n\n /**\n * Maps the column to an object containing: the `column` and `CSS classes`.\n *\n * @returns An array of objects containing the column number and CSS classes.\n */\n const columnsWithCssClasses = computed<ColumnPickerItem[]>(() =>\n props.columns.map(column => ({\n column,\n cssClasses: [\n `x-column-picker-list__button--${column}-cols`,\n { 'x-selected': selectedColumns.value === column }\n ],\n isSelected: selectedColumns.value === column,\n events: {\n UserClickedColumnPicker: column,\n ColumnsNumberProvided: column\n }\n }))\n );\n\n return { columnsWithCssClasses };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Examples\n\nThis component renders a list of elements in different slots depending on the columns prop. Each\nelement will emit the needed events to sync other instances of columns pickers, or grids with the\nnumber of columns that it is being selected when it is clicked.\n\n### Default usage\n\nIt is required to send the columns prop.\n\n```vue live\n<template>\n <BaseColumnPickerList :columns=\"columns\" />\n</template>\n<script>\n import { BaseColumnPickerList } from '@empathyco/x-components';\n\n export default {\n components: {\n BaseColumnPickerList\n },\n data() {\n return { columns: [2, 4, 6] };\n }\n };\n</script>\n```\n\n#### Using v-model\n\nIt is possible to do two way binding in order to synchronize the value with the parents. It will be\nupdated if it changed the value or if the parent changes it.\n\n```vue live\n<template>\n <BaseColumnPickerList :columns=\"columns\" v-model=\"selectedColumns\" />\n</template>\n<script>\n import { BaseColumnPickerList } from '@empathyco/x-components';\n\n export default {\n components: {\n BaseColumnPickerList\n },\n data() {\n return { columns: [2, 4, 6], selectedColumns: 4 };\n }\n };\n</script>\n```\n\n### Customized usage\n\n#### Overriding the slots\n\nIt is possible to override the column picker button content.\n\n```vue live\n<template>\n <BaseColumnPickerList :columns=\"columns\" #default=\"{ column, isSelected }\">\n <span>{{ column }} {{ isSelected ? '🟢' : '' }}</span>\n </BaseColumnPickerList>\n</template>\n<script>\n import { BaseColumnPickerList } from '@empathyco/x-components';\n\n export default {\n components: {\n BaseColumnPickerList\n },\n data() {\n return { columns: [2, 4, 6] };\n }\n };\n</script>\n```\n\nIt is also possible to add a divider element between the column picker buttons by overriding the\n`divider` slot.\n\n```vue live\n<template>\n <BaseColumnPickerList :columns=\"columns\">\n <template #divider>\n <ChevronRightIcon aria-hidden=\"true\" />\n </template>\n </BaseColumnPickerList>\n</template>\n<script>\n import { BaseColumnPickerList, ChevronRightIcon } from '@empathyco/x-components';\n\n export default {\n components: {\n BaseColumnPickerList,\n ChevronRightIcon\n },\n data() {\n return { columns: [2, 4, 6] };\n }\n };\n</script>\n```\n\n#### Customizing the buttons with classes\n\nThe `buttonClass` prop can be used to add classes to the buttons.\n\n```vue live\n<template>\n <BaseColumnPickerList :columns=\"columns\" buttonClass=\"x-button--round\" />\n</template>\n<script>\n import { BaseColumnPickerList } from '@empathyco/x-components';\n\n export default {\n components: {\n BaseColumnPickerList\n },\n data() {\n return { columns: [2, 4, 6] };\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- [`UserClickedColumnPicker`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks an item. The event payload is the number of columns\n that the clicked item represents.\n- [`ColumnsNumberProvided`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted on component mount. The event payload is the current `selectedColumns` value.\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createElementBlock","_Fragment","_renderList","buttonClass","_withCtx","_createCommentVNode","_renderSlot","_mergeProps","columnsWithCssClasses"],"mappings":";;;;MACmD,UAAU,GAAA;AAAA,EAAqB,KAAK,EAAA,qCAAA;AAAA,EAAA,WAAA,EAAA,oBAAA;;;;qCAArFA,gBA+BM,CAAA,iBAAA,CAAA,CAAA;AAhCR,EAAA,OAAAC,SAAA,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,KAAAD,SAAA,CAMM,IAkBkB,CAAA,EAAAC,kBAAA;AAAA,MAAAC,QAAA;AAAA,MAAA,IAAA;AAAA,MAAAC,UAAA,CAAA,IAAA,CAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,KAAA,KAAA;eAjBhBH,SAPR,EAAA,EAAAC,kBAAA;AAAA,UAOcC,QAAA;AAAA,UAAuC,EAAA,GAAA,EAAA,MAAA,EAAA;AAAA,UACpCE;AAAAA,YAAAA,WAAAA,CACA,0BAAuB,EAAA;AAAA,cAC/B,sBAAc,CAAmB,uCAAA,EAAA,CAAA,IAAA,CAAA,WAAA,EAAA,UAAA,CAAA,CAAA,CAAA;AAAA,cACjC,WAAQ,EAAA,sBAAA;AAAA,cACR,gBAAU,UAAW,CAAA,QAAA,EAAA;AAAA,cACtB,MAAA;AAAA,cAAA,YAAA,EAAA,CAAA,EAAA,MAAA,CAAA,QAAA,CAAA;AAbR,cAAA,IAAA,EAAA,UAAA;AAAA,aAAA,EAAA;uBAqBQC,OAEO,CAAA,MAAA;AAAA,gBAAAC,kBAAA,CAvBf,wVAsBmB,CAAA;AAAA,gBAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,EAAAC,UAAA,CAAA,EAAA,OAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,MAAA;;;;;;AAtBnB,iBAAA,CAAA;AAAA,eAAA,CAAA;AA0BM,cAAA,CAAA,EAAA,CAAA;AAAA;AAAA,aAIY,EAAA,IAAA,EAAUC,CAAqB,OAAO,EAAA,cAAA,EAAA,QAAA,EAAA,YAAA,CAAA,CAAA;AAAA,YAAAH,kBAAA,CAA4B,qKA9BpF,CAAA;AAAA,YAAA,KAAA,KAAA,IAAA,CAAA,qBAAA,CAAA,MAAA,GAAA,CAAA,GAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAA,GAAAD,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"base-column-picker-list.vue.js","sources":["../../../../src/components/column-picker/base-column-picker-list.vue"],"sourcesContent":["<template>\n <div class=\"x-column-picker-list x-button-group\" data-test=\"column-picker-list\" role=\"list\">\n <template\n v-for=\"({ column, cssClasses, events, isSelected }, index) in columnsWithCssClasses\"\n :key=\"column\"\n >\n <BaseEventButton\n class=\"x-column-picker-list__button x-button\"\n :class=\"[buttonClass, cssClasses]\"\n data-test=\"column-picker-button\"\n :aria-pressed=\"isSelected.toString()\"\n :events=\"events\"\n :aria-label=\"`${column} columns`\"\n role=\"listitem\"\n >\n <!--\n @slot Customized Column Picker Button content. Specifying a slot with the column value\n will result in the column using that slot composition to render.\n @binding {number} column - Columns Number to pick.\n @binding {boolean} isSelected - True if the columns number are the chosen value.\n -->\n <slot v-bind=\"{ column, isSelected }\">\n {{ column }}\n </slot>\n </BaseEventButton>\n\n <!--\n @slot Customized Column Picker divider. Specify an element to act as divider for\n the items in the column picker. Empty by default.\n -->\n <slot v-if=\"index !== columnsWithCssClasses.length - 1\" name=\"divider\"></slot>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, onBeforeMount, PropType, ref, watch } from 'vue';\n import { use$x } from '../../composables/use-$x';\n import { VueCSSClasses } from '../../utils/types';\n import { XEventsTypes } from '../../wiring';\n import BaseEventButton from '../base-event-button.vue';\n\n interface ColumnPickerItem {\n column: number;\n cssClasses: VueCSSClasses;\n events: Partial<XEventsTypes>;\n isSelected: boolean;\n }\n\n /**\n * Column picker list component renders a list of buttons to choose the columns number.\n *\n * Additionally, this component exposes the following props to modify the classes of the\n * elements: `buttonClass`.\n *\n * @public\n */\n export default defineComponent({\n name: 'BaseColumnPickerList',\n components: { BaseEventButton },\n props: {\n /** An array of numbers that represents the number of columns to render. */\n columns: {\n type: Array as PropType<number[]>,\n required: true\n },\n /** The value of the selected columns number. */\n modelValue: Number,\n /** Class inherited by each button. */\n buttonClass: String\n },\n emits: ['update:modelValue'],\n setup(props, { emit }) {\n const $x = use$x();\n\n const providedSelectedColumns = computed(() => props.modelValue ?? props.columns[0]);\n const selectedColumns = ref(providedSelectedColumns.value);\n\n /**\n * Assigns `selectedColumns` value and emits `ColumnsNumberProvided`.\n *\n * @param column - Column number provided.\n */\n function emitColumnsNumberProvided(column: number) {\n selectedColumns.value = column;\n $x.emit('ColumnsNumberProvided', column);\n }\n\n /**\n * Emits `update:modelValue` with the column selected.\n *\n * @param column - Column number selected.\n */\n function emitUpdateModelValue(column: number) {\n if (props.modelValue !== column) {\n emit('update:modelValue', column);\n }\n }\n\n watch(providedSelectedColumns, emitColumnsNumberProvided);\n watch(selectedColumns, emitUpdateModelValue);\n\n $x.on('ColumnsNumberProvided', false).subscribe(column => (selectedColumns.value = column));\n\n /**\n * Synchronizes the columns number before mounting the component. If the real number of selected\n * columns equals the provided columns, it emits the event to sync it with every other component.\n * If it is not equal it means that the user has already selected a number of columns, so we emit\n * a `update:modelValue` event so developers can sync the provided value.\n */\n onBeforeMount(() => {\n if (selectedColumns.value === providedSelectedColumns.value) {\n emitColumnsNumberProvided(selectedColumns.value);\n } else {\n emitUpdateModelValue(selectedColumns.value);\n }\n });\n\n /**\n * Maps the column to an object containing: the `column` and `CSS classes`.\n *\n * @returns An array of objects containing the column number and CSS classes.\n */\n const columnsWithCssClasses = computed<ColumnPickerItem[]>(() =>\n props.columns.map(column => ({\n column,\n cssClasses: [\n `x-column-picker-list__button--${column}-cols`,\n { 'x-selected': selectedColumns.value === column }\n ],\n isSelected: selectedColumns.value === column,\n events: {\n UserClickedColumnPicker: column,\n ColumnsNumberProvided: column\n }\n }))\n );\n\n return { columnsWithCssClasses };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Examples\n\nThis component renders a list of elements in different slots depending on the columns prop. Each\nelement will emit the needed events to sync other instances of columns pickers, or grids with the\nnumber of columns that it is being selected when it is clicked.\n\n### Default usage\n\nIt is required to send the columns prop.\n\n```vue live\n<template>\n <BaseColumnPickerList :columns=\"columns\" />\n</template>\n<script>\n import { BaseColumnPickerList } from '@empathyco/x-components';\n\n export default {\n components: {\n BaseColumnPickerList\n },\n data() {\n return { columns: [2, 4, 6] };\n }\n };\n</script>\n```\n\n#### Using v-model\n\nIt is possible to do two way binding in order to synchronize the value with the parents. It will be\nupdated if it changed the value or if the parent changes it.\n\n```vue live\n<template>\n <BaseColumnPickerList :columns=\"columns\" v-model=\"selectedColumns\" />\n</template>\n<script>\n import { BaseColumnPickerList } from '@empathyco/x-components';\n\n export default {\n components: {\n BaseColumnPickerList\n },\n data() {\n return { columns: [2, 4, 6], selectedColumns: 4 };\n }\n };\n</script>\n```\n\n### Customized usage\n\n#### Overriding the slots\n\nIt is possible to override the column picker button content.\n\n```vue live\n<template>\n <BaseColumnPickerList :columns=\"columns\" #default=\"{ column, isSelected }\">\n <span>{{ column }} {{ isSelected ? '🟢' : '' }}</span>\n </BaseColumnPickerList>\n</template>\n<script>\n import { BaseColumnPickerList } from '@empathyco/x-components';\n\n export default {\n components: {\n BaseColumnPickerList\n },\n data() {\n return { columns: [2, 4, 6] };\n }\n };\n</script>\n```\n\nIt is also possible to add a divider element between the column picker buttons by overriding the\n`divider` slot.\n\n```vue live\n<template>\n <BaseColumnPickerList :columns=\"columns\">\n <template #divider>\n <ChevronRightIcon aria-hidden=\"true\" />\n </template>\n </BaseColumnPickerList>\n</template>\n<script>\n import { BaseColumnPickerList, ChevronRightIcon } from '@empathyco/x-components';\n\n export default {\n components: {\n BaseColumnPickerList,\n ChevronRightIcon\n },\n data() {\n return { columns: [2, 4, 6] };\n }\n };\n</script>\n```\n\n#### Customizing the buttons with classes\n\nThe `buttonClass` prop can be used to add classes to the buttons.\n\n```vue live\n<template>\n <BaseColumnPickerList :columns=\"columns\" buttonClass=\"x-button--round\" />\n</template>\n<script>\n import { BaseColumnPickerList } from '@empathyco/x-components';\n\n export default {\n components: {\n BaseColumnPickerList\n },\n data() {\n return { columns: [2, 4, 6] };\n }\n };\n</script>\n```\n\n## Events\n\nA list of events that the component will emit:\n\n- [`UserClickedColumnPicker`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted after the user clicks an item. The event payload is the number of columns\n that the clicked item represents.\n- [`ColumnsNumberProvided`](https://github.com/empathyco/x/blob/main/packages/x-components/src/wiring/events.types.ts):\n the event is emitted on component mount. The event payload is the current `selectedColumns` value.\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createElementBlock","_Fragment","_renderList","buttonClass","_withCtx","_renderSlot","_mergeProps","_createCommentVNode"],"mappings":";;;;MACmD,UAAU,GAAA;AAAA,EAAqB,KAAK,EAAA,qCAAA;AAAA,EAAA,WAAA,EAAA,oBAAA;;;;qCAArFA,gBA+BM,CAAA,iBAAA,CAAA,CAAA;AAhCR,EAAA,OAAAC,SAAA,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,KAAAD,SAAA,CAMM,IAkBkB,CAAA,EAAAC,kBAAA;AAAA,MAAAC,QAAA;AAAA,MAAA,IAAA;AAAA,MAAAC,UAAA,CAAA,IAAA,CAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,KAAA,KAAA;eAjBhBH,SAPR,EAAA,EAAAC,kBAAA;AAAA,UAOcC,QAAA;AAAA,UAAuC,EAAA,GAAA,EAAA,MAAA,EAAA;AAAA,UACpCE;AAAAA,YAAAA,WAAAA,CACA,0BAAuB,EAAA;AAAA,cAC/B,sBAAc,CAAmB,uCAAA,EAAA,CAAA,IAAA,CAAA,WAAA,EAAA,UAAA,CAAA,CAAA,CAAA;AAAA,cACjC,WAAQ,EAAA,sBAAA;AAAA,cACR,gBAAU,UAAW,CAAA,QAAA,EAAA;AAAA,cACtB,MAAA;AAAA,cAAA,YAAA,EAAA,CAAA,EAAA,MAAA,CAAA,QAAA,CAAA;AAbR,cAAA,IAAA,EAAA,UAAA;AAAA,aAAA,EAAA;AAAA,cAAA,OAAA,EAAAC,OAAA,CAAA,MAAA;AAAA,gBAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,EAAAC,UAAA,CAAA,EAAA,OAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,MAAA;;;;;;AAAA,iBAAA,CAAA;AAAA,eAAA,CAAA;AA8BkB,cAAA,CAAA,EAAA,CAAA;AAAA;AAAA,aAAA,EAAA,IAAA,EAAkE,CA9BpF,OAAA,EAAA,cAAA,EAAA,QAAA,EAAA,YAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA,IAAA,CAAA,qBAAA,CAAA,MAAA,GAAA,CAAA,GAAAD,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAA,GAAAE,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './base-rating-filter-label.vue2.js';
2
- import { resolveComponent, openBlock, createBlock, withCtx, createCommentVNode, renderSlot } from 'vue';
2
+ import { resolveComponent, openBlock, createBlock, withCtx, renderSlot } from 'vue';
3
3
  import _export_sfc from '../../../_virtual/_plugin-vue_export-helper.js';
4
4
 
5
5
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -11,11 +11,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
11
11
  max: _ctx.max
12
12
  }, {
13
13
  "filled-icon": withCtx(() => [
14
- createCommentVNode("\n @slot Filled icon content\n "),
15
14
  renderSlot(_ctx.$slots, "rating-icon-filled")
16
15
  ]),
17
16
  "empty-icon": withCtx(() => [
18
- createCommentVNode("\n @slot Empty icon content\n "),
19
17
  renderSlot(_ctx.$slots, "rating-icon-empty")
20
18
  ]),
21
19
  _: 3
@@ -1 +1 @@
1
- {"version":3,"file":"base-rating-filter-label.vue.js","sources":["../../../../../src/components/filters/labels/base-rating-filter-label.vue"],"sourcesContent":["<template>\n <BaseRating class=\"x-rating-filter-label\" data-test=\"rating-label\" :value=\"value\" :max=\"max\">\n <template #filled-icon>\n <!--\n @slot Filled icon content\n -->\n <slot name=\"rating-icon-filled\" />\n </template>\n <template #empty-icon>\n <!--\n @slot Empty icon content\n -->\n <slot name=\"rating-icon-empty\" />\n </template>\n </BaseRating>\n</template>\n\n<script lang=\"ts\">\n import { BooleanFilter } from '@empathyco/x-types';\n import { computed, defineComponent, PropType } from 'vue';\n import BaseRating from '../../base-rating.vue';\n\n /**\n * Renders a label for a rating filter, allowing to override the elements used to paint\n * the rating.\n *\n * @public\n */\n export default defineComponent({\n components: {\n BaseRating\n },\n props: {\n /**\n * The filter data to render.\n *\n * @public\n */\n filter: {\n type: Object as PropType<BooleanFilter>,\n required: true\n },\n /**\n * Maximum number of elements to paint.\n *\n * @public\n */\n max: {\n type: Number,\n default: 5\n }\n },\n setup(props) {\n /**\n * Converts the label string into a number.\n *\n * @returns The label as number or 0 if it is not a valid number.\n *\n * @internal\n */\n const value = computed<number>(() => {\n const x = parseFloat(props.filter.label) ?? 0;\n return Number.isNaN(x) ? 0 : x;\n });\n\n return {\n value\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Example\n\nRenders a label for a rating filter, allowing to override the elements used to paint the rating. The\nfilter label must be a valid number string. For example: '3', '2.5', '0.25'\n\n### Basic usage\n\n```vue\n<BaseRatingFilterLabel :filter=\"filter\" />\n```\n\n### Customizing color\n\nIts possible to change the default color directly with color CSS attribute. For more elaborated\nstyles it's possible to style the inner svg icons.\n\n```vue\n<BaseRatingFilterLabel :filter=\"filter\" style=\"color: gold\" />\n```\n\n### Customizing its contents\n\nThe `max` prop can be used to set the max rating number. It will render as many icons as the this\n`max` value.\n\n```vue\n<BaseRatingFilterLabel :filter=\"filter\" :max=\"max\" />\n```\n\nThe default icons can be changed using the `rating-icon-filled` and `rating-icon-empty` icons, to\nrepresent the filled empty and empty icon in the rating component.\n\n```vue\n<BaseRatingFilterLabel :filter=\"filter\" :max=\"max\">\n <template #rating-icon-filled>♥</template>\n <template #rating-icon-empty>♡</template>\n</BaseRatingFilterLabel>\n```\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createBlock","value","_withCtx","_createCommentVNode","_renderSlot"],"mappings":";;;;;gCACEA,gBAaa,CAAA,YAAA,CAAA,CAAA;AAb6B,EAAA,OAAAC,SAAA,EAAwB,EAAAC,WAAA,CAAA,qBAAA,EAAA;AAAA,IAAE,KAAOC,EAAAA,uBAAAA;AAAAA,IAAQ,WAAQ,EAAA,cAAA;AAAA,IAAA,KAAA,EAAA,IAAA,CAAA,KAAA;AAC9E,IAAA,GAAA,EAAA,IAAA,CAAA,GAAA;AAAA,GAAA,EAAA;AAIyB,IAAA,aAAA,EAAAC,OAAA,CAAA,MAAA;AAAA,MAAAC,kBAAA,CAAA,2CAAA,CAAA;AAEzB,MAAAC,UAAA,CAAU,IAGjB,CAAA,MAAA,EAAA,oBAAA,CAAA;AAAA,KAAA,CAAA;AAC+B,IAAA,YAAA,EAAAF,OAAA,CAAA,MAAA;AAAA,MAAAC,kBAAA,CAAA,0CAAA,CAAA;AAZvC,MAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,mBAAA,CAAA;AAAA,KAAA,CAAA;;;;;;;;;"}
1
+ {"version":3,"file":"base-rating-filter-label.vue.js","sources":["../../../../../src/components/filters/labels/base-rating-filter-label.vue"],"sourcesContent":["<template>\n <BaseRating class=\"x-rating-filter-label\" data-test=\"rating-label\" :value=\"value\" :max=\"max\">\n <template #filled-icon>\n <!--\n @slot Filled icon content\n -->\n <slot name=\"rating-icon-filled\" />\n </template>\n <template #empty-icon>\n <!--\n @slot Empty icon content\n -->\n <slot name=\"rating-icon-empty\" />\n </template>\n </BaseRating>\n</template>\n\n<script lang=\"ts\">\n import { BooleanFilter } from '@empathyco/x-types';\n import { computed, defineComponent, PropType } from 'vue';\n import BaseRating from '../../base-rating.vue';\n\n /**\n * Renders a label for a rating filter, allowing to override the elements used to paint\n * the rating.\n *\n * @public\n */\n export default defineComponent({\n components: {\n BaseRating\n },\n props: {\n /**\n * The filter data to render.\n *\n * @public\n */\n filter: {\n type: Object as PropType<BooleanFilter>,\n required: true\n },\n /**\n * Maximum number of elements to paint.\n *\n * @public\n */\n max: {\n type: Number,\n default: 5\n }\n },\n setup(props) {\n /**\n * Converts the label string into a number.\n *\n * @returns The label as number or 0 if it is not a valid number.\n *\n * @internal\n */\n const value = computed<number>(() => {\n const x = parseFloat(props.filter.label) ?? 0;\n return Number.isNaN(x) ? 0 : x;\n });\n\n return {\n value\n };\n }\n });\n</script>\n\n<docs lang=\"mdx\">\n## Example\n\nRenders a label for a rating filter, allowing to override the elements used to paint the rating. The\nfilter label must be a valid number string. For example: '3', '2.5', '0.25'\n\n### Basic usage\n\n```vue\n<BaseRatingFilterLabel :filter=\"filter\" />\n```\n\n### Customizing color\n\nIts possible to change the default color directly with color CSS attribute. For more elaborated\nstyles it's possible to style the inner svg icons.\n\n```vue\n<BaseRatingFilterLabel :filter=\"filter\" style=\"color: gold\" />\n```\n\n### Customizing its contents\n\nThe `max` prop can be used to set the max rating number. It will render as many icons as the this\n`max` value.\n\n```vue\n<BaseRatingFilterLabel :filter=\"filter\" :max=\"max\" />\n```\n\nThe default icons can be changed using the `rating-icon-filled` and `rating-icon-empty` icons, to\nrepresent the filled empty and empty icon in the rating component.\n\n```vue\n<BaseRatingFilterLabel :filter=\"filter\" :max=\"max\">\n <template #rating-icon-filled>♥</template>\n <template #rating-icon-empty>♡</template>\n</BaseRatingFilterLabel>\n```\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createBlock","value","_renderSlot"],"mappings":";;;;;gCACEA,gBAaa,CAAA,YAAA,CAAA,CAAA;AAb6B,EAAA,OAAAC,SAAA,EAAwB,EAAAC,WAAA,CAAA,qBAAA,EAAA;AAAA,IAAE,KAAOC,EAAAA,uBAAAA;AAAAA,IAAQ,WAAQ,EAAA,cAAA;AAAA,IAAA,KAAA,EAAA,IAAA,CAAA,KAAA;AAC9E,IAAA,GAAA,EAAA,IAAA,CAAA,GAAA;AAAA,GAAA,EAAA;;AAMA,MAAAC,UAAA,CAAU,IAIc,CAAA,MAAA,EAAA,oBAAA,CAAA;AAAA,KAAA,CAAA;;AAZvC,MAAAA,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,mBAAA,CAAA;AAAA,KAAA,CAAA;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './items-list.vue2.js';
2
- import { openBlock, createBlock, resolveDynamicComponent, withCtx, createElementBlock, Fragment, renderList, normalizeClass, createCommentVNode, renderSlot, createTextVNode, toDisplayString } from 'vue';
2
+ import { openBlock, createBlock, resolveDynamicComponent, withCtx, createElementBlock, Fragment, renderList, normalizeClass, renderSlot, createTextVNode, toDisplayString, createCommentVNode } from 'vue';
3
3
  import _export_sfc from '../_virtual/_plugin-vue_export-helper.js';
4
4
 
5
5
  const _hoisted_1 = ["data-test"];
@@ -20,7 +20,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
20
20
  class: normalizeClass(["x-items-list__item", item.class]),
21
21
  "data-test": item.dataTest
22
22
  }, [
23
- createCommentVNode("\n @slot Custom item to render.\n @binding {ListItem} item - Item data.\n "),
24
23
  renderSlot(_ctx.$slots, item.slotName, { item }, () => [
25
24
  createTextVNode(
26
25
  toDisplayString(item.id),
@@ -1 +1 @@
1
- {"version":3,"file":"items-list.vue.js","sources":["../../../src/components/items-list.vue"],"sourcesContent":["<template>\n <component\n :is=\"animation\"\n v-if=\"items.length\"\n tag=\"ul\"\n class=\"x-items-list\"\n data-test=\"items-list\"\n >\n <li\n v-for=\"item in computedItems\"\n :key=\"item.id\"\n class=\"x-items-list__item\"\n :class=\"item.class\"\n :data-test=\"item.dataTest\"\n >\n <!--\n @slot Custom item to render.\n @binding {ListItem} item - Item data.\n -->\n <slot :item=\"item\" :name=\"item.slotName\">{{ item.id }}</slot>\n </li>\n </component>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType } from 'vue';\n import { ListItem } from '../utils/types';\n import { toKebabCase } from '../utils/string';\n import { AnimationProp } from '../types';\n\n /**\n * It renders a list of {@link ListItem} providing a slot for each `slotName` which depends on\n * the `modelName`of the item.\n *\n * @public\n */\n export default defineComponent({\n name: 'ItemsList',\n props: {\n /** Animation component that will be used to animate the list. */\n animation: {\n type: AnimationProp,\n default: 'ul'\n },\n /** List of items. */\n items: {\n type: Array as PropType<ListItem[]>,\n required: true\n },\n /** Item's classes. */\n itemClass: String\n },\n setup(props) {\n /**\n * The list of the items with additional properties.\n *\n * @returns A list of items with `dataTest`, `class` and the `slotName` for each item.\n */\n const computedItems = computed(() =>\n props.items.map(item => {\n const modelName = toKebabCase(item.modelName);\n return {\n ...item,\n dataTest: `${modelName}s-list-item`,\n class: [`x-${modelName}s-list-item`, props.itemClass],\n slotName: modelName\n };\n })\n );\n\n return { computedItems };\n }\n });\n</script>\n"],"names":["animation","_openBlock","_createBlock","_resolveDynamicComponent","_createElementBlock","_Fragment","_renderList","_normalizeClass","_createCommentVNode","_renderSlot","_toDisplayString"],"mappings":";;;;;AACE,SAAA,WAAA,CAAA,IAAA,EAAA,MAAA,EADF,MAESA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA;SAFT,IAIY,CAAA,KAAA,CAAA,MAAA,IAAAC,SAAA,EAAA,EAAAC,WAAA,CAAAC,uBAAA,CAAA,IAAA,CAAA,SAAA,CAAA,EAAA;AAAA,IACR,GAAK,EAAA,CAAA;AAAA,IACL,GAAA,EAAA,IAAA;AAAA,IAAA,KAAA,EAAA,cAAA;AANJ,IAAA,WAAA,EAAA,YAAA;AAAA,GAAA,EAAA;;iBAUY,IAAO,CAAA,EAAAC,kBAAA;AAAA,QAAAC,QAAA;AAAA,QAAA,IAAA;AAAA,QAAAC,UAAA,CAAA,IAAA,CAAA,aAAA,EAAA,CAAA,IAAA,KAAA;AACR,UAAA,OAAAL,SAAA,uBAAC,IACE,EAAA;AAAA,YACP,GAAA,EAAA,IAAA,CAAA,EAAA;AAAA,YAAA,KAAA,EAAAM,cAAA,CAAA,CAAA,oBAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAA;AAED,YAAA,WAAA,EAAA,IAAA,CAAA,QAAA;AAAA,WAIA,EAAA;AAAA,YAAAC,kBAAA,CAnBN,iGAmByD,CAAA;AAAA,YAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,IAAA,CAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,MAAA;;AAnBzD,gBAAAC,eAAA,CAAA,IAAA,CAAA,EAAA,CAAA;AAAA,gBAAA,CAAA;AAAA;AAAA,eAAA;AAAA,aAAA,CAAA;;AAAA,SAAA,CAAA;AAAA,QAAA,GAAA;AAAA;AAAA,OAAA;AAAA,KAAA,CAAA;AAAA,IAAA,CAAA,EAAA,CAAA;AAAA;AAAA,GAAA,CAAA,IAAAF,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"items-list.vue.js","sources":["../../../src/components/items-list.vue"],"sourcesContent":["<template>\n <component\n :is=\"animation\"\n v-if=\"items.length\"\n tag=\"ul\"\n class=\"x-items-list\"\n data-test=\"items-list\"\n >\n <li\n v-for=\"item in computedItems\"\n :key=\"item.id\"\n class=\"x-items-list__item\"\n :class=\"item.class\"\n :data-test=\"item.dataTest\"\n >\n <!--\n @slot Custom item to render.\n @binding {ListItem} item - Item data.\n -->\n <slot :item=\"item\" :name=\"item.slotName\">{{ item.id }}</slot>\n </li>\n </component>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType } from 'vue';\n import { ListItem } from '../utils/types';\n import { toKebabCase } from '../utils/string';\n import { AnimationProp } from '../types';\n\n /**\n * It renders a list of {@link ListItem} providing a slot for each `slotName` which depends on\n * the `modelName`of the item.\n *\n * @public\n */\n export default defineComponent({\n name: 'ItemsList',\n props: {\n /** Animation component that will be used to animate the list. */\n animation: {\n type: AnimationProp,\n default: 'ul'\n },\n /** List of items. */\n items: {\n type: Array as PropType<ListItem[]>,\n required: true\n },\n /** Item's classes. */\n itemClass: String\n },\n setup(props) {\n /**\n * The list of the items with additional properties.\n *\n * @returns A list of items with `dataTest`, `class` and the `slotName` for each item.\n */\n const computedItems = computed(() =>\n props.items.map(item => {\n const modelName = toKebabCase(item.modelName);\n return {\n ...item,\n dataTest: `${modelName}s-list-item`,\n class: [`x-${modelName}s-list-item`, props.itemClass],\n slotName: modelName\n };\n })\n );\n\n return { computedItems };\n }\n });\n</script>\n"],"names":["animation","_openBlock","_createBlock","_resolveDynamicComponent","_createElementBlock","_Fragment","_renderList","_normalizeClass","_toDisplayString","_createCommentVNode"],"mappings":";;;;;AACE,SAAA,WAAA,CAAA,IAAA,EAAA,MAAA,EADF,MAESA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,QAAAA,EAAAA;SAFT,IAIY,CAAA,KAAA,CAAA,MAAA,IAAAC,SAAA,EAAA,EAAAC,WAAA,CAAAC,uBAAA,CAAA,IAAA,CAAA,SAAA,CAAA,EAAA;AAAA,IACR,GAAK,EAAA,CAAA;AAAA,IACL,GAAA,EAAA,IAAA;AAAA,IAAA,KAAA,EAAA,cAAA;AANJ,IAAA,WAAA,EAAA,YAAA;AAAA,GAAA,EAAA;;iBAUY,IAAO,CAAA,EAAAC,kBAAA;AAAA,QAAAC,QAAA;AAAA,QAAA,IAAA;AAAA,QAAAC,UAAA,CAAA,IAAA,CAAA,aAAA,EAAA,CAAA,IAAA,KAAA;AACR,UAAA,OAAAL,SAAA,uBAAC,IACE,EAAA;AAAA,YACP,GAAA,EAAA,IAAA,CAAA,EAAA;AAAA,YAAA,KAAA,EAAAM,cAAA,CAAA,CAAA,oBAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAA;YAMD,WAA6D,EAAA,IAAA,CAAA,QAAA;AAAA,WAAA,EAAA;;;AAnBnE,gBAAAC,eAAA,CAAA,IAAA,CAAA,EAAA,CAAA;AAAA,gBAAA,CAAA;AAAA;AAAA,eAAA;AAAA,aAAA,CAAA;;AAAA,SAAA,CAAA;AAAA,QAAA,GAAA;AAAA;AAAA,OAAA;AAAA,KAAA,CAAA;AAAA,IAAA,CAAA,EAAA,CAAA;AAAA;AAAA,GAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA,CAAA;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './fixed-header-and-asides-layout.vue2.js';
2
- import { resolveComponent, openBlock, createBlock, withCtx, createVNode, normalizeClass, createElementVNode, createElementBlock, createCommentVNode, renderSlot } from 'vue';
2
+ import { resolveComponent, openBlock, createBlock, withCtx, createVNode, normalizeClass, createElementVNode, createElementBlock, renderSlot, createCommentVNode } from 'vue';
3
3
  import './fixed-header-and-asides-layout.vue3.js';
4
4
  import _export_sfc from '../../_virtual/_plugin-vue_export-helper.js';
5
5
 
@@ -79,14 +79,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
79
79
  /* CLASS */
80
80
  ),
81
81
  _ctx.devMode || _ctx.$slots["header"] ? (openBlock(), createElementBlock("header", _hoisted_1, [
82
- createCommentVNode(" @slot Slot that is be used for insert content into the Header. "),
83
82
  renderSlot(_ctx.$slots, "header", {}, () => [
84
83
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_2, "HEADER")) : createCommentVNode("v-if", true)
85
84
  ], true)
86
85
  ])) : createCommentVNode("v-if", true),
87
86
  _ctx.devMode || _ctx.$slots["sub-header"] ? (openBlock(), createElementBlock("div", _hoisted_3, [
88
87
  createElementVNode("div", _hoisted_4, [
89
- createCommentVNode(" @slot Slot that can be used to insert content into below the header. "),
90
88
  renderSlot(_ctx.$slots, "sub-header", {}, () => [
91
89
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_5, "SUB HEADER")) : createCommentVNode("v-if", true)
92
90
  ], true)
@@ -94,12 +92,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
94
92
  ])) : createCommentVNode("v-if", true),
95
93
  _ctx.devMode || _ctx.$slots["toolbar"] ? (openBlock(), createElementBlock("section", _hoisted_6, [
96
94
  renderSlot(_ctx.$slots, "toolbar", {}, () => [
97
- createCommentVNode(" @slot Slot that can be used to insert content above the main. "),
98
95
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_7, "TOOLBAR")) : createCommentVNode("v-if", true)
99
96
  ], true)
100
97
  ])) : createCommentVNode("v-if", true),
101
98
  _ctx.devMode || _ctx.$slots["main"] ? (openBlock(), createElementBlock("main", _hoisted_8, [
102
- createCommentVNode(" @slot Slot that is be used for insert content into the Main. "),
103
99
  renderSlot(_ctx.$slots, "main", {}, () => [
104
100
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_9, "MAIN")) : createCommentVNode("v-if", true)
105
101
  ], true)
@@ -111,7 +107,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
111
107
  class: "x-layout__aside x-layout__aside--left"
112
108
  }, {
113
109
  default: withCtx(() => [
114
- createCommentVNode(" @slot Slot that is be used for insert content into the left aside. "),
115
110
  renderSlot(_ctx.$slots, "left-aside", {}, () => [
116
111
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_10, "LEFT ASIDE")) : createCommentVNode("v-if", true)
117
112
  ], true)
@@ -126,7 +121,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
126
121
  class: "x-layout__aside x-layout__aside--right"
127
122
  }, {
128
123
  default: withCtx(() => [
129
- createCommentVNode(" @slot Slot that is be used for insert content into the right aside. "),
130
124
  renderSlot(_ctx.$slots, "right-aside", {}, () => [
131
125
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_11, "RIGHT ASIDE")) : createCommentVNode("v-if", true)
132
126
  ], true)
@@ -1 +1 @@
1
- {"version":3,"file":"fixed-header-and-asides-layout.vue.js","sources":["../../../../src/components/layouts/fixed-header-and-asides-layout.vue"],"sourcesContent":["<template>\n <MainScroll>\n <Scroll\n @scroll=\"setPosition\"\n id=\"main-scroll\"\n class=\"x-layout x-layout--fixed-header-and-asides\"\n :class=\"{ 'dev-mode': devMode }\"\n >\n <div\n key=\"header-backdrop\"\n class=\"x-layout__header-backdrop\"\n :class=\"{ 'x-layout__header-backdrop--is-visible': isBackdropVisible }\"\n />\n\n <header\n v-if=\"devMode || $slots['header']\"\n key=\"header\"\n class=\"x-layout__header x-list x-list--horizontal\"\n >\n <!-- @slot Slot that is be used for insert content into the Header. -->\n <slot name=\"header\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER</span>\n </slot>\n </header>\n\n <div v-if=\"devMode || $slots['sub-header']\" key=\"sub-header\" class=\"x-layout__sub-header\">\n <div class=\"x-layout__sub-header-content\">\n <!-- @slot Slot that can be used to insert content into below the header. -->\n <slot name=\"sub-header\">\n <span v-if=\"devMode\" class=\"slot-helper\">SUB HEADER</span>\n </slot>\n </div>\n </div>\n\n <section v-if=\"devMode || $slots['toolbar']\" key=\"toolbar\" class=\"x-layout__toolbar\">\n <slot name=\"toolbar\">\n <!-- @slot Slot that can be used to insert content above the main. -->\n <span v-if=\"devMode\" class=\"slot-helper\">TOOLBAR</span>\n </slot>\n </section>\n\n <main\n v-if=\"devMode || $slots['main']\"\n key=\"main\"\n class=\"x-layout__main x-list x-list--vertical\"\n >\n <!-- @slot Slot that is be used for insert content into the Main. -->\n <slot name=\"main\">\n <span v-if=\"devMode\" class=\"slot-helper\">MAIN</span>\n </slot>\n </main>\n\n <BaseIdModal\n v-if=\"devMode || $slots['left-aside']\"\n key=\"left-aside\"\n :animation=\"leftAsideAnimation\"\n modalId=\"left-aside\"\n class=\"x-layout__aside x-layout__aside--left\"\n >\n <!-- @slot Slot that is be used for insert content into the left aside. -->\n <slot name=\"left-aside\">\n <span v-if=\"devMode\" class=\"slot-helper\">LEFT ASIDE</span>\n </slot>\n </BaseIdModal>\n\n <BaseIdModal\n v-if=\"devMode || $slots['right-aside']\"\n key=\"right-aside\"\n :animation=\"rightAsideAnimation\"\n modalId=\"right-aside\"\n class=\"x-layout__aside x-layout__aside--right\"\n >\n <!-- @slot Slot that is be used for insert content into the right aside. -->\n <slot name=\"right-aside\">\n <span v-if=\"devMode\" class=\"slot-helper\">RIGHT ASIDE</span>\n </slot>\n </BaseIdModal>\n\n <slot name=\"extra-aside\">\n <span v-if=\"devMode\" class=\"slot-helper\">EXTRA ASIDE</span>\n </slot>\n\n <div\n v-if=\"devMode || $slots['scroll-to-top']\"\n key=\"scroll-to-top\"\n class=\"x-layout__scroll-to-top\"\n >\n <slot name=\"scroll-to-top\">\n <span v-if=\"devMode\" class=\"slot-helper\">SCROLL TO TOP</span>\n </slot>\n </div>\n </Scroll>\n </MainScroll>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, ref } from 'vue';\n import { animateTranslate } from '../animations/animate-translate/animate-translate.factory';\n import Scroll from '../../x-modules/scroll/components/scroll.vue';\n import BaseIdModal from '../modals/base-id-modal.vue';\n import MainScroll from '../../x-modules/scroll/components/main-scroll.vue';\n\n /**\n * Component for use as Layout to be filled with the rest of the components.\n *\n * @deprecated - The layout has been deprecated in favor of using new XDS layout.\n *\n * @public\n */\n export default defineComponent({\n name: 'FixedHeaderAndAsidesLayout',\n components: { BaseIdModal, MainScroll, Scroll },\n props: {\n /** Enables the devMode, which shows the available slots to use with its names. */\n devMode: Boolean\n },\n setup() {\n const scrollPosition = ref(0);\n\n const rightAsideAnimation = animateTranslate('right');\n const leftAsideAnimation = animateTranslate('left');\n\n const setPosition = (position: number) => {\n scrollPosition.value = position;\n };\n const isBackdropVisible = computed(() => scrollPosition.value > 0);\n\n return {\n rightAsideAnimation,\n leftAsideAnimation,\n setPosition,\n isBackdropVisible\n };\n }\n });\n</script>\n\n<style lang=\"css\" scoped>\n @import url('../../design-system-deprecated/utilities/dev-mode.css');\n\n .x-layout {\n /* custom properties */\n display: grid;\n align-content: stretch;\n min-height: 100%;\n\n /* layout */\n max-height: 100%;\n --x-size-margin-max-width: calc((100vw - var(--x-size-max-width-layout, 1440px)) / 2);\n --x-size-margin-layout: max(\n var(--x-size-min-margin-layout, 20px),\n var(--x-size-margin-max-width)\n );\n\n grid-template-rows:\n [page-start header-start]\n auto\n [header-end sub-header-start]\n auto\n [sub-header-end toolbar-start]\n auto\n [toolbar-end main-start]\n 1fr\n [main-end page-end];\n\n grid-template-columns:\n [page-start]\n var(--x-size-margin-layout)\n [max-width-start]\n 1fr\n [max-width-end]\n var(--x-size-margin-layout)\n [page-end];\n }\n\n .x-layout__header {\n /* layout */\n position: sticky;\n top: -0.5px;\n z-index: 2;\n grid-row: header;\n grid-column: page;\n max-height: var(--x-size-max-height-layout-header, auto);\n padding: 0 var(--x-size-margin-layout);\n\n /* color */\n background: var(--x-color-background-layout-header, transparent);\n border-color: var(--x-size-border-color-layout-header, transparent);\n\n /* border */\n border-width: var(--x-size-border-width-layout-header, 0);\n border-style: solid;\n }\n\n .x-layout__sub-header {\n /* layout */\n grid-row: sub-header;\n grid-column: page;\n padding: 0 var(--x-size-margin-layout);\n\n /* color */\n background: var(--x-color-background-layout-sub-header, transparent);\n border-color: var(--x-size-border-color-layout-sub-header, transparent);\n\n /* border */\n border-width: var(--x-size-border-width-layout-sub-header, 0);\n border-style: solid;\n }\n\n .x-layout__toolbar {\n /* layout */\n grid-row: toolbar;\n grid-column: max-width;\n }\n\n .x-layout__main {\n /* layout */\n grid-row: main;\n grid-column: max-width;\n }\n\n /* layout */\n .x-layout :deep(.x-layout__aside.x-modal) {\n z-index: 3;\n flex-flow: row nowrap;\n }\n\n /* layout */\n .x-layout :deep(.x-layout__aside--right.x-modal) {\n justify-content: flex-end;\n }\n\n /* others */\n .x-layout :deep(.x-layout__aside) {\n pointer-events: none;\n }\n .x-layout :deep(.x-layout__aside > *:not(.slot-helper)) {\n pointer-events: all;\n }\n\n .x-layout__scroll-to-top {\n position: fixed;\n z-index: 1;\n bottom: var(--x-size-margin-bottom-layout-scroll-to-top, 16px);\n right: var(--x-size-margin-right-layout-scroll-to-top, 16px);\n }\n\n .x-layout__header-backdrop {\n /* layout */\n grid-row: page;\n grid-column: page;\n position: sticky;\n top: -0.5px;\n z-index: 1;\n height: var(--x-size-height-layout-backdrop, 40vh);\n width: 100%;\n pointer-events: none;\n\n /* color */\n background-color: var(\n --x-color-background-layout-header-backdrop,\n var(--x-color-base-neutral-100, white)\n );\n mask: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n\n /* transition */\n opacity: 0;\n transition: opacity 0.2s ease-out;\n }\n .x-layout__header-backdrop--is-visible {\n opacity: 1;\n }\n\n .x-layout :deep(.x-layout__aside .x-modal__content) {\n background-color: transparent;\n height: 100%;\n width: var(--x-size-width-layout-aside, 300px);\n }\n</style>\n\n<docs lang=\"mdx\">\n## Layout\n\nThis component has the following layout with fixed headers and collapsible fixed asides:\n\n| | header | |\n| :--------: | :--------: | :-----------: |\n| left-aside | sub-header | right-aside |\n| | toolbar | |\n| | main | |\n| | | scroll-to-top |\n\nAdditionally it provides an empty slot `extra-aside` to be customized by the user.\n\n## Design Tokens\n\nThe component has also the following `Design Tokens` to configure it:\n\n| token | default value |\n| :-----------------------------------------: | :-----------: |\n| --x-size-height-layout-backdrop | 40vh |\n| --x-size-width-layout-aside | 300px |\n| --x-size-min-margin-layout | 20px |\n| --x-size-max-height-layout-header | auto |\n| --x-size-max-width-layout | 1440px |\n| --x-color-background-layout-header-backdrop | white |\n| --x-color-background-layout-header | transparent |\n| --x-size-border-color-layout-header | transparent |\n| --x-size-border-width-layout-header | 0px |\n| --x-color-background-layout-sub-header | transparent |\n| --x-size-border-color-layout-sub-header | transparent |\n| --x-size-border-width-layout-sub-header | 0px |\n\n| token | use |\n| :-----------------------------------------: | :---------------------------------------: |\n| --x-size-height-layout-backdrop | The height for header gradient backdrop |\n| --x-size-width-layout-aside | The width of the asides |\n| --x-size-min-margin-layout | The min horizontal margin for the Layout |\n| --x-size-max-height-layout-header | The max height for the Layout Header |\n| --x-size-max-width-layout | The max width for the Layout |\n| --x-color-background-layout-header-backdrop | The background color of the head backdrop |\n| --x-color-background-layout-header | The background color of the header |\n| --x-size-border-color-layout-header | The border color of the header |\n| --x-size-border-width-layout-header | The border with of the header |\n| --x-color-background-layout-sub-header | The background color of the sub header |\n| --x-size-border-color-layout-sub-header | The border color of the sub header |\n| --x-size-border-width-layout-sub-header | The border with of the sub header |\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createBlock","_withCtx","setPosition","_normalizeClass","_createElementVNode","devMode","$slots","_createElementBlock","_createCommentVNode","_renderSlot","leftAsideAnimation","rightAsideAnimation"],"mappings":";;;;;MAiBQ,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,QAAA;;;MAIiB,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAI8B,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,YAAA;;;AAzBzE,MAAA,UAAA,GAAA,EAAA,KAAA,EAAA,8BAAA,EAAA,CAAA;MA6BiC,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAK0B,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,SAAA;;;MAGxC,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAO7B,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,MAAA;;;MAIiB,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAaN,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAaN,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAKR,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAM3B,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,eAAA;;;MAGiB,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;;;;gCAvFnCA,gBA2Fa,CAAA,YAAA,CAAA,CAAA;SA1FXC,SAyFS,EAAA,EAAAC,WAAA,CAAA,qBAAA,EAAA,IAAA,EAAA;AAAA,IAAA,OAAA,EAxFNC,OAAQC,CAAAA,MAAAA;AAAAA,MAAAA,WAAAA,CACN,iBAAa,EAAA;AAAA,QAChB,QALN,EAAA,IAAA,CAAA,WAAA;AAAA,QAAA,EAAA,EAAA,aAAA;QAAA,KAYQ,EAAAC,cAAA,CAAA,CAAA,4CAAA,EAAA,EAAA,UAAA,EAAA,IAAA,CAAA,OAAA,EAAA,CAAA,CAAA;AAAA,OAAA,EAAA;AAHI,QAAA,OAAA,EAAAF,OAAA,CAAA,MAAA;AAAA,UAAAG,kBAAA;AATZ,YAAA,KAAA;AAAA,YAUc;AAAA,cAAA,GAAA,EAAA,iBAAA;AAKAC,cAAAA,KAAAA,EAAAA,cAAAA,CAAWC,CAAM,2BAAA,EAAA,EAAA,uCAAA,EAAA,IAAA,CAAA,iBAAA,EAAA,CAAA,CAAA;AAAA,aAAA;;;;AADzB,WAAA;AAAA,UAAA,IAAA,CAKE,+CAGO,EAAAC,kBAAA,CAAA,QAAA,EAAA,UAAA,EAAA;AAAA,YADcC,kBAAA,CAAA,kEAAA,CAAA;AAAA,YAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,QAAsD,EAAA,EAAA,EAAA,MAAA;AAAA,cArBhE,IAAA,CAAA,OAAA,IAAAV,SAAA,EAAA,EAAAQ,kBAAA,CAAA,MAAA,EAAA,UAAA,EAAA,QAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,aAAA,EAAA,IAAA,CAAA;AAAA,WAyBM,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,UACE,IAAA,CAAA,OAAA,IAAA,IAAA,CAAA,MAAA,CAKM,YALN,CACE,IAAAT,SAAA,EAAA,EAAAQ,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,YAGOH,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,cADcI,kBAAA,CAAA,wEAAA,CAAA;AAAA,cAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,kBAA0D,MAA1D;AAAA,gBA7BZ,IAAA,CAAA,OAAA,IAAAV,SAAA,EAAA,EAAAQ,kBAAA,CAAA,MAAA,EAAA,UAAA,EAAA,YAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;;AAAA,aAAA,CAAA;AAAA,WAkCM,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,UAAA,IAAA,CACE,gBAGO,MAFL,CAAA,SAAA,CAAA,IAAAT,SAAA,EAAA,EAAAQ,kBAAA,CAAA,SAAA,EAAA,UAAA,EAAA;AAAA,YAAAE,UAAA,CACYJ,IAAO,CAAA,MAAA,EAAA,SAAA,EAAA,EAAA,EAAA,MAAA;AAAA,cAAAG,kBAAA,CAAnB,iEAAgD,CAAA;AAAA,cArC1D,IAAA,CAAA,OAAA,IAAAT,SAAA,EAAA,EAAAQ,kBAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,aAAA,EAAA,IAAA,CAAA;AAAA,WAyCM,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,UAAA,IAAA,CAKE,6CAGO,EAAAD,kBAAA,CAAA,MAAA,EAAA,UAAA,EAAA;AAAA,YADcC,kBAAA,CAAA,gEAAA,CAAA;AAAA,YAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,MAAoD,EAAA,EAAA,EAAA,MAAA;AAAA,cAhD9D,IAAA,CAAA,OAAA,IAAAV,SAAA,EAAA,EAAAQ,kBAAA,CAAA,MAAA,EAAA,UAAA,EAAA,MAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,aAAA,EAAA,IAAA,CAAA;AAAA,mCAoDM,MAWc,EAAA,IAAA,CAAA;AAAA,UAAA,IAAA,CATZ,OAAI,IAAA,IAAA,CAAA,MAAA,CAAY,YACN,CAAA,IAAAT,SAAA,EAAA,EAAEW,WAAkB,CAAA,sBAAA,EAAA;AAAA,YAC9B,GAAA,EAAA,YAAA;AAAA,YACA,SAAM,EAAA,IAAA,CAAA,kBAAA;AAAA,YAAA,OAAA,EAAA,YAAA;AAzDd,YAAA,KAAA,EAAA,uCAAA;AAAA,WAAA,EAAA;qBA4DQT,OAEO,CAAA,MAAA;AAAA,cADcO,kBAAA,CAAA,sEAAA,CAAA;AAAA,cAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,kBAA0D,MAA1D;AAAA,gBA7DV,IAAA,CAAA,OAAA,IAAAV,SAAA,EAAA,EAAAQ,kBAAA,CAAA,MAAA,EAAA,WAAA,EAAA,YAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,eAAA,EAAA,IAAA,CAAA;AAAA,aAAA,CAAA;AAAA,YAAA,CAAA,EAAA,CAAA;AAAA;AAAA,WAkEcH,EAAAA,CAAAA,EAAWC,CAAM,WAAA,CAAA,CAAA,IAAAE,kBAAA,CADzB,MAWc,EAAA,IAAA,CAAA;AAAA,UAAA,IAAA,CATZ,OAAI,IAAA,IAAA,CAAA,MAAA,CAAa,aACP,CAAA,IAAAT,SAAA,EAAA,EAAEY,WAAmB,CAAA,sBAAA,EAAA;AAAA,YAC/B,GAAA,EAAA,aAAA;AAAA,YACA,SAAM,EAAA,IAAA,CAAA,mBAAA;AAAA,YAAA,OAAA,EAAA,aAAA;AAtEd,YAAA,KAAA,EAAA,wCAAA;AAAA,WAAA,EAAA;qBAyEQV,OAEO,CAAA,MAAA;AAAA,cADcO,kBAAA,CAAA,uEAAA,CAAA;AAAA,cAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,iBAAA,EAAA,MAAA;AAAA,gBA1EV,IAAA,CAAA,OAAA,IAAAV,SAAA,EAAA,EAAAQ,kBAAA,CAAA,MAAA,EAAA,WAAA,EAAA,aAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,eAAA,EAAA,IAAA,CAAA;AAAA,aAAA,CAAA;AAAA,YAAA,CAAA,EAAA,CAAA;AAAA;AAAA,WA8EM,EAAA,CAAA,EAEO,kBADOH,kBAAO,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,UAAAI,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,iBAAA,EAAA,MAAA;AAAA,YA/ER,IAAA,CAAA,OAAA,IAAAV,SAAA,EAAA,EAAAQ,kBAAA,CAAA,MAAA,EAAA,WAAA,EAAA,aAAA,CAAA,IAmFcF,mBAAWC,MAAM,EAAA,IAAA,CAAA;AAAA,WAAA,EAAA,IAAA,CAAA;AAIvB,UAAA,IAAA,CAAA,OAAA,IAAA,IAAA,CAEO,sCADc,EAAAC,kBAAA,CAAA,KAAA,EAAA,WAAA,EAAA;AAAA,YAAAE,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,iBAA6D,EAA7D,EAAA,MAAA;AAAA,cAxFV,IAAA,CAAA,OAAA,IAAAV,SAAA,EAAA,EAAAQ,kBAAA,CAAA,MAAA,EAAA,WAAA,EAAA,eAAA,CAAA,IAAAC,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,aAAA,EAAA,IAAA,CAAA;AAAA,WAAA,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,SAAA,CAAA;;;AAAA,OAAA,EAAA,CAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,CAAA;AAAA,KAAA,CAAA;;;;;;;;;"}
1
+ {"version":3,"file":"fixed-header-and-asides-layout.vue.js","sources":["../../../../src/components/layouts/fixed-header-and-asides-layout.vue"],"sourcesContent":["<template>\n <MainScroll>\n <Scroll\n @scroll=\"setPosition\"\n id=\"main-scroll\"\n class=\"x-layout x-layout--fixed-header-and-asides\"\n :class=\"{ 'dev-mode': devMode }\"\n >\n <div\n key=\"header-backdrop\"\n class=\"x-layout__header-backdrop\"\n :class=\"{ 'x-layout__header-backdrop--is-visible': isBackdropVisible }\"\n />\n\n <header\n v-if=\"devMode || $slots['header']\"\n key=\"header\"\n class=\"x-layout__header x-list x-list--horizontal\"\n >\n <!-- @slot Slot that is be used for insert content into the Header. -->\n <slot name=\"header\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER</span>\n </slot>\n </header>\n\n <div v-if=\"devMode || $slots['sub-header']\" key=\"sub-header\" class=\"x-layout__sub-header\">\n <div class=\"x-layout__sub-header-content\">\n <!-- @slot Slot that can be used to insert content into below the header. -->\n <slot name=\"sub-header\">\n <span v-if=\"devMode\" class=\"slot-helper\">SUB HEADER</span>\n </slot>\n </div>\n </div>\n\n <section v-if=\"devMode || $slots['toolbar']\" key=\"toolbar\" class=\"x-layout__toolbar\">\n <slot name=\"toolbar\">\n <!-- @slot Slot that can be used to insert content above the main. -->\n <span v-if=\"devMode\" class=\"slot-helper\">TOOLBAR</span>\n </slot>\n </section>\n\n <main\n v-if=\"devMode || $slots['main']\"\n key=\"main\"\n class=\"x-layout__main x-list x-list--vertical\"\n >\n <!-- @slot Slot that is be used for insert content into the Main. -->\n <slot name=\"main\">\n <span v-if=\"devMode\" class=\"slot-helper\">MAIN</span>\n </slot>\n </main>\n\n <BaseIdModal\n v-if=\"devMode || $slots['left-aside']\"\n key=\"left-aside\"\n :animation=\"leftAsideAnimation\"\n modalId=\"left-aside\"\n class=\"x-layout__aside x-layout__aside--left\"\n >\n <!-- @slot Slot that is be used for insert content into the left aside. -->\n <slot name=\"left-aside\">\n <span v-if=\"devMode\" class=\"slot-helper\">LEFT ASIDE</span>\n </slot>\n </BaseIdModal>\n\n <BaseIdModal\n v-if=\"devMode || $slots['right-aside']\"\n key=\"right-aside\"\n :animation=\"rightAsideAnimation\"\n modalId=\"right-aside\"\n class=\"x-layout__aside x-layout__aside--right\"\n >\n <!-- @slot Slot that is be used for insert content into the right aside. -->\n <slot name=\"right-aside\">\n <span v-if=\"devMode\" class=\"slot-helper\">RIGHT ASIDE</span>\n </slot>\n </BaseIdModal>\n\n <slot name=\"extra-aside\">\n <span v-if=\"devMode\" class=\"slot-helper\">EXTRA ASIDE</span>\n </slot>\n\n <div\n v-if=\"devMode || $slots['scroll-to-top']\"\n key=\"scroll-to-top\"\n class=\"x-layout__scroll-to-top\"\n >\n <slot name=\"scroll-to-top\">\n <span v-if=\"devMode\" class=\"slot-helper\">SCROLL TO TOP</span>\n </slot>\n </div>\n </Scroll>\n </MainScroll>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, ref } from 'vue';\n import { animateTranslate } from '../animations/animate-translate/animate-translate.factory';\n import Scroll from '../../x-modules/scroll/components/scroll.vue';\n import BaseIdModal from '../modals/base-id-modal.vue';\n import MainScroll from '../../x-modules/scroll/components/main-scroll.vue';\n\n /**\n * Component for use as Layout to be filled with the rest of the components.\n *\n * @deprecated - The layout has been deprecated in favor of using new XDS layout.\n *\n * @public\n */\n export default defineComponent({\n name: 'FixedHeaderAndAsidesLayout',\n components: { BaseIdModal, MainScroll, Scroll },\n props: {\n /** Enables the devMode, which shows the available slots to use with its names. */\n devMode: Boolean\n },\n setup() {\n const scrollPosition = ref(0);\n\n const rightAsideAnimation = animateTranslate('right');\n const leftAsideAnimation = animateTranslate('left');\n\n const setPosition = (position: number) => {\n scrollPosition.value = position;\n };\n const isBackdropVisible = computed(() => scrollPosition.value > 0);\n\n return {\n rightAsideAnimation,\n leftAsideAnimation,\n setPosition,\n isBackdropVisible\n };\n }\n });\n</script>\n\n<style lang=\"css\" scoped>\n @import url('../../design-system-deprecated/utilities/dev-mode.css');\n\n .x-layout {\n /* custom properties */\n display: grid;\n align-content: stretch;\n min-height: 100%;\n\n /* layout */\n max-height: 100%;\n --x-size-margin-max-width: calc((100vw - var(--x-size-max-width-layout, 1440px)) / 2);\n --x-size-margin-layout: max(\n var(--x-size-min-margin-layout, 20px),\n var(--x-size-margin-max-width)\n );\n\n grid-template-rows:\n [page-start header-start]\n auto\n [header-end sub-header-start]\n auto\n [sub-header-end toolbar-start]\n auto\n [toolbar-end main-start]\n 1fr\n [main-end page-end];\n\n grid-template-columns:\n [page-start]\n var(--x-size-margin-layout)\n [max-width-start]\n 1fr\n [max-width-end]\n var(--x-size-margin-layout)\n [page-end];\n }\n\n .x-layout__header {\n /* layout */\n position: sticky;\n top: -0.5px;\n z-index: 2;\n grid-row: header;\n grid-column: page;\n max-height: var(--x-size-max-height-layout-header, auto);\n padding: 0 var(--x-size-margin-layout);\n\n /* color */\n background: var(--x-color-background-layout-header, transparent);\n border-color: var(--x-size-border-color-layout-header, transparent);\n\n /* border */\n border-width: var(--x-size-border-width-layout-header, 0);\n border-style: solid;\n }\n\n .x-layout__sub-header {\n /* layout */\n grid-row: sub-header;\n grid-column: page;\n padding: 0 var(--x-size-margin-layout);\n\n /* color */\n background: var(--x-color-background-layout-sub-header, transparent);\n border-color: var(--x-size-border-color-layout-sub-header, transparent);\n\n /* border */\n border-width: var(--x-size-border-width-layout-sub-header, 0);\n border-style: solid;\n }\n\n .x-layout__toolbar {\n /* layout */\n grid-row: toolbar;\n grid-column: max-width;\n }\n\n .x-layout__main {\n /* layout */\n grid-row: main;\n grid-column: max-width;\n }\n\n /* layout */\n .x-layout :deep(.x-layout__aside.x-modal) {\n z-index: 3;\n flex-flow: row nowrap;\n }\n\n /* layout */\n .x-layout :deep(.x-layout__aside--right.x-modal) {\n justify-content: flex-end;\n }\n\n /* others */\n .x-layout :deep(.x-layout__aside) {\n pointer-events: none;\n }\n .x-layout :deep(.x-layout__aside > *:not(.slot-helper)) {\n pointer-events: all;\n }\n\n .x-layout__scroll-to-top {\n position: fixed;\n z-index: 1;\n bottom: var(--x-size-margin-bottom-layout-scroll-to-top, 16px);\n right: var(--x-size-margin-right-layout-scroll-to-top, 16px);\n }\n\n .x-layout__header-backdrop {\n /* layout */\n grid-row: page;\n grid-column: page;\n position: sticky;\n top: -0.5px;\n z-index: 1;\n height: var(--x-size-height-layout-backdrop, 40vh);\n width: 100%;\n pointer-events: none;\n\n /* color */\n background-color: var(\n --x-color-background-layout-header-backdrop,\n var(--x-color-base-neutral-100, white)\n );\n mask: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0));\n\n /* transition */\n opacity: 0;\n transition: opacity 0.2s ease-out;\n }\n .x-layout__header-backdrop--is-visible {\n opacity: 1;\n }\n\n .x-layout :deep(.x-layout__aside .x-modal__content) {\n background-color: transparent;\n height: 100%;\n width: var(--x-size-width-layout-aside, 300px);\n }\n</style>\n\n<docs lang=\"mdx\">\n## Layout\n\nThis component has the following layout with fixed headers and collapsible fixed asides:\n\n| | header | |\n| :--------: | :--------: | :-----------: |\n| left-aside | sub-header | right-aside |\n| | toolbar | |\n| | main | |\n| | | scroll-to-top |\n\nAdditionally it provides an empty slot `extra-aside` to be customized by the user.\n\n## Design Tokens\n\nThe component has also the following `Design Tokens` to configure it:\n\n| token | default value |\n| :-----------------------------------------: | :-----------: |\n| --x-size-height-layout-backdrop | 40vh |\n| --x-size-width-layout-aside | 300px |\n| --x-size-min-margin-layout | 20px |\n| --x-size-max-height-layout-header | auto |\n| --x-size-max-width-layout | 1440px |\n| --x-color-background-layout-header-backdrop | white |\n| --x-color-background-layout-header | transparent |\n| --x-size-border-color-layout-header | transparent |\n| --x-size-border-width-layout-header | 0px |\n| --x-color-background-layout-sub-header | transparent |\n| --x-size-border-color-layout-sub-header | transparent |\n| --x-size-border-width-layout-sub-header | 0px |\n\n| token | use |\n| :-----------------------------------------: | :---------------------------------------: |\n| --x-size-height-layout-backdrop | The height for header gradient backdrop |\n| --x-size-width-layout-aside | The width of the asides |\n| --x-size-min-margin-layout | The min horizontal margin for the Layout |\n| --x-size-max-height-layout-header | The max height for the Layout Header |\n| --x-size-max-width-layout | The max width for the Layout |\n| --x-color-background-layout-header-backdrop | The background color of the head backdrop |\n| --x-color-background-layout-header | The background color of the header |\n| --x-size-border-color-layout-header | The border color of the header |\n| --x-size-border-width-layout-header | The border with of the header |\n| --x-color-background-layout-sub-header | The background color of the sub header |\n| --x-size-border-color-layout-sub-header | The border color of the sub header |\n| --x-size-border-width-layout-sub-header | The border with of the sub header |\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createBlock","_withCtx","setPosition","_normalizeClass","_createElementVNode","devMode","$slots","_createElementBlock","_renderSlot","_createCommentVNode","leftAsideAnimation","rightAsideAnimation"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import _sfc_main from './multi-column-max-width-layout.vue2.js';
2
- import { resolveComponent, openBlock, createElementBlock, normalizeClass, normalizeStyle, createElementVNode, createCommentVNode, renderSlot, createBlock, withCtx, createVNode } from 'vue';
2
+ import { resolveComponent, openBlock, createElementBlock, normalizeClass, normalizeStyle, createElementVNode, renderSlot, createCommentVNode, createBlock, withCtx, createVNode } from 'vue';
3
3
  import './multi-column-max-width-layout.vue3.js';
4
4
  import './multi-column-max-width-layout.vue4.js';
5
5
  import _export_sfc from '../../_virtual/_plugin-vue_export-helper.js';
@@ -88,19 +88,16 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
88
88
  [
89
89
  createElementVNode("header", _hoisted_1, [
90
90
  _ctx.devMode || _ctx.$slots["header-start"] ? (openBlock(), createElementBlock("div", _hoisted_2, [
91
- createCommentVNode(" @slot Slot that can be used to insert content into the left part of the header. "),
92
91
  renderSlot(_ctx.$slots, "header-start", {}, () => [
93
92
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_3, "HEADER START")) : createCommentVNode("v-if", true)
94
93
  ], true)
95
94
  ])) : createCommentVNode("v-if", true),
96
95
  _ctx.devMode || _ctx.$slots["header-middle"] ? (openBlock(), createElementBlock("div", _hoisted_4, [
97
- createCommentVNode(" @slot Slot that can be used to insert content into the center part of the header. "),
98
96
  renderSlot(_ctx.$slots, "header-middle", {}, () => [
99
97
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_5, "HEADER MIDDLE")) : createCommentVNode("v-if", true)
100
98
  ], true)
101
99
  ])) : createCommentVNode("v-if", true),
102
100
  _ctx.devMode || _ctx.$slots["header-end"] ? (openBlock(), createElementBlock("div", _hoisted_6, [
103
- createCommentVNode(" @slot Slot that can be used to insert content into the right part of the header. "),
104
101
  renderSlot(_ctx.$slots, "header-end", {}, () => [
105
102
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_7, "HEADER END")) : createCommentVNode("v-if", true)
106
103
  ], true)
@@ -108,7 +105,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
108
105
  ]),
109
106
  _ctx.devMode || _ctx.$slots["sub-header"] ? (openBlock(), createElementBlock("div", _hoisted_8, [
110
107
  createElementVNode("div", _hoisted_9, [
111
- createCommentVNode(" @slot Slot that can be used to insert content into below the header. "),
112
108
  renderSlot(_ctx.$slots, "sub-header", {}, () => [
113
109
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_10, "SUB HEADER")) : createCommentVNode("v-if", true)
114
110
  ], true)
@@ -117,12 +113,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
117
113
  _ctx.devMode || _ctx.$slots["toolbar-aside"] || _ctx.$slots["toolbar-body"] ? (openBlock(), createElementBlock("section", _hoisted_11, [
118
114
  createElementVNode("aside", _hoisted_12, [
119
115
  renderSlot(_ctx.$slots, "toolbar-aside", {}, () => [
120
- createCommentVNode(" @slot Slot that can be used to insert content above the left aside. "),
121
116
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_13, "TOOLBAR ASIDE")) : createCommentVNode("v-if", true)
122
117
  ], true)
123
118
  ]),
124
119
  createElementVNode("div", _hoisted_14, [
125
- createCommentVNode(" @slot Slot that can be used to insert content above the body. "),
126
120
  renderSlot(_ctx.$slots, "toolbar-body", {}, () => [
127
121
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_15, "TOOLBAR BODY")) : createCommentVNode("v-if", true)
128
122
  ], true)
@@ -142,7 +136,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
142
136
  }, {
143
137
  default: withCtx(() => [
144
138
  createElementVNode("div", _hoisted_17, [
145
- createCommentVNode(" @slot Slot that can be used to insert content into the left side bar. "),
146
139
  renderSlot(_ctx.$slots, "main-aside", {}, () => [
147
140
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_18, "MAIN ASIDE")) : createCommentVNode("v-if", true)
148
141
  ], true)
@@ -164,7 +157,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
164
157
  }, {
165
158
  default: withCtx(() => [
166
159
  createElementVNode("section", _hoisted_19, [
167
- createCommentVNode(" @slot Slot that can be used to insert the body content. "),
168
160
  renderSlot(_ctx.$slots, "main-body", {}, () => [
169
161
  _ctx.devMode ? (openBlock(), createElementBlock("span", _hoisted_20, "MAIN BODY")) : createCommentVNode("v-if", true)
170
162
  ], true)
@@ -1 +1 @@
1
- {"version":3,"file":"multi-column-max-width-layout.vue.js","sources":["../../../../src/components/layouts/multi-column-max-width-layout.vue"],"sourcesContent":["<template>\n <div\n class=\"x-layout x-layout--columns\"\n :class=\"{ 'dev-mode': devMode }\"\n :style=\"{ height: devMode || $slots['main-body'] ? '100%' : 'auto' }\"\n >\n <header class=\"x-layout__header\">\n <div v-if=\"devMode || $slots['header-start']\" class=\"x-list x-layout__header-start\">\n <!-- @slot Slot that can be used to insert content into the left part of the header. -->\n <slot name=\"header-start\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER START</span>\n </slot>\n </div>\n\n <div v-if=\"devMode || $slots['header-middle']\" class=\"x-list x-layout__header-middle\">\n <!-- @slot Slot that can be used to insert content into the center part of the header. -->\n <slot name=\"header-middle\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER MIDDLE</span>\n </slot>\n </div>\n\n <div v-if=\"devMode || $slots['header-end']\" class=\"x-list x-layout__header-end\">\n <!-- @slot Slot that can be used to insert content into the right part of the header. -->\n <slot name=\"header-end\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER END</span>\n </slot>\n </div>\n </header>\n\n <div v-if=\"devMode || $slots['sub-header']\" class=\"x-layout__sub-header\">\n <div class=\"x-layout__sub-header-content\">\n <!-- @slot Slot that can be used to insert content into below the header. -->\n <slot name=\"sub-header\">\n <span v-if=\"devMode\" class=\"slot-helper\">SUB HEADER</span>\n </slot>\n </div>\n </div>\n\n <section\n v-if=\"devMode || $slots['toolbar-aside'] || $slots['toolbar-body']\"\n class=\"x-layout__toolbar\"\n >\n <aside class=\"x-list x-layout__toolbar-aside\">\n <slot name=\"toolbar-aside\">\n <!-- @slot Slot that can be used to insert content above the left aside. -->\n <span v-if=\"devMode\" class=\"slot-helper\">TOOLBAR ASIDE</span>\n </slot>\n </aside>\n\n <div class=\"x-list x-layout__toolbar-body\">\n <!-- @slot Slot that can be used to insert content above the body. -->\n <slot name=\"toolbar-body\">\n <span v-if=\"devMode\" class=\"slot-helper\">TOOLBAR BODY</span>\n </slot>\n </div>\n </section>\n\n <main class=\"x-layout__main\">\n <BaseIdTogglePanel\n v-if=\"devMode || $slots['main-aside']\"\n panelId=\"aside-panel\"\n :animation=\"asideAnimation\"\n class=\"x-layout__collapse-aside\"\n >\n <Scroll id=\"aside-scroll\" class=\"x-layout__aside-scroll\">\n <div class=\"x-layout__main-aside x-list x-list--vertical\">\n <!-- @slot Slot that can be used to insert content into the left side bar. -->\n <slot name=\"main-aside\">\n <span v-if=\"devMode\" class=\"slot-helper\" style=\"height: 110vh\">MAIN ASIDE</span>\n </slot>\n </div>\n </Scroll>\n </BaseIdTogglePanel>\n\n <MainScroll class=\"x-flex x-flex-auto\">\n <Scroll\n v-if=\"devMode || $slots['main-body']\"\n id=\"main-scroll\"\n class=\"x-layout__body-scroll\"\n >\n <section class=\"x-layout__main-body x-list x-list--vertical\">\n <!-- @slot Slot that can be used to insert the body content. -->\n <slot name=\"main-body\">\n <span v-if=\"devMode\" class=\"slot-helper\" style=\"height: 110vh\">MAIN BODY</span>\n </slot>\n </section>\n </Scroll>\n </MainScroll>\n </main>\n\n <div v-if=\"devMode || $slots['scroll-to-top']\" class=\"x-layout__scroll-to-top\">\n <div class=\"x-layout__scroll-to-top-content\">\n <slot name=\"scroll-to-top\">\n <span v-if=\"devMode\" class=\"slot-helper\" style=\"height: 50px\">SCROLL TO TOP</span>\n </slot>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent } from 'vue';\n import Scroll from '../../x-modules/scroll/components/scroll.vue';\n import MainScroll from '../../x-modules/scroll/components/main-scroll.vue';\n import AnimateWidth from '../animations/animate-width.vue';\n import BaseIdTogglePanel from '../panels/base-id-toggle-panel.vue';\n import { AnimationProp } from '../../types';\n\n /**\n * Component for use as Layout to be filled with the rest of the Components.\n *\n * @deprecated - The layout has been deprecated in favor of using new XDS layout.\n *\n * @public\n */\n export default defineComponent({\n name: 'MultiColumnMaxWidthLayout',\n components: { BaseIdTogglePanel, MainScroll, Scroll },\n props: {\n /** The animation used for the Main Aside. */\n asideAnimation: {\n type: AnimationProp,\n default: () => AnimateWidth\n },\n /** Enables the devMode, which shows the available slots to use with its names. */\n devMode: Boolean\n }\n });\n</script>\n\n<style lang=\"css\">\n :root {\n /* layout */\n --x-size-min-margin-layout-columns: var(--x-size-base-06);\n --x-size-column-gap-layout-columns: var(--x-size-base-06);\n\n /* spacing */\n\n /* size - header */\n --x-size-padding-top-layout-columns-header: var(--x-size-base-07);\n --x-size-padding-bottom-layout-columns-header: var(--x-size-base-05);\n\n /* size - toolbar */\n --x-size-padding-top-layout-columns-toolbar: var(--x-size-base-05);\n --x-size-padding-bottom-layout-columns-toolbar: var(--x-size-base-03);\n\n /* size- scroll-to-top */\n --x-size-margin-bottom-layout-columns-scroll-to-top: var(--x-size-base-03);\n --x-size-margin-left-layout-columns-scroll-to-top: var(--x-size-base-03);\n\n /* color */\n --x-color-background-layout-columns: var(--x-color-base-neutral-100);\n --x-color-border-layout-columns: var(--x-color-base-neutral-70);\n --x-color-border-layout-columns-header: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-sub-header: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-toolbar: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-main: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-main-aside: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-main-body: var(--x-color-border-layout-columns);\n\n /* border */\n --x-size-border-width-layout-columns-header: 0;\n --x-size-border-width-layout-columns-toolbar: 1px 0 0;\n }\n</style>\n\n<style lang=\"css\" scoped>\n @import url('../../design-system-deprecated/utilities/dev-mode.css');\n\n .x-layout {\n /* custom properties */\n --x-size-gap-default: var(--x-size-column-gap-layout-columns, 20px);\n --x-size-margin-max-width: calc((100vw - var(--x-size-max-width-layout-columns, 1440px)) / 2);\n --x-size-margin-layout-columns: max(\n var(--x-size-min-margin-layout-columns, 20px),\n var(--x-size-margin-max-width)\n );\n --x-number-columns-header-middle: calc(var(--x-number-columns-layout-columns, 5) - 2);\n --x-number-columns-sub-header-content: var(--x-number-columns-header-middle);\n --x-number-columns-toolbar-body: calc(var(--x-number-columns-layout-columns, 5) - 1);\n\n /* layout */\n display: grid;\n align-content: stretch;\n max-height: 100%;\n\n grid-template-columns:\n [page-start]\n 1fr\n [scroll-to-top-start]\n calc(var(--x-size-margin-layout-columns) + var(--x-size-gap-default))\n [scroll-to-top-end page-end];\n\n grid-template-rows:\n [page-start header-start]\n auto\n [header-end sub-header-start]\n auto\n [sub-header-end toolbar-start]\n auto\n [toolbar-end main-start]\n 1fr\n [scroll-to-top-start]\n auto\n [main-end scroll-to-top-end page-end];\n }\n\n .x-layout__header {\n /* layout */\n grid-column: page;\n grid-row: header;\n display: grid;\n column-gap: var(--x-size-gap-default);\n\n grid-template-columns:\n [header-start]\n var(--x-size-margin-layout-columns)\n [start-content-start]\n 1fr\n [start-content-end middle-content-start]\n repeat(var(--x-number-columns-header-middle), 1fr)\n [middle-content-end end-content-start]\n 1fr\n [end-content-end]\n var(--x-size-margin-layout-columns)\n [header-end];\n\n /* size */\n padding-block-start: var(--x-size-padding-top-layout-columns-header, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-header, 0);\n margin-block-start: var(--x-size-margin-top-layout-columns-header, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-header, 0);\n\n /* color */\n background-color: var(--x-color-background-layout-columns-header, transparent);\n border-color: var(--x-color-border-layout-columns-header, transparent);\n\n /* border */\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-header, 0);\n }\n\n .x-layout__header-start {\n /* layout */\n grid-column: start-content;\n }\n .x-layout__header-start.x-list {\n /* space */\n flex-flow: var(--x-flow-layout-columns-header-start, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-header-start, flex start);\n align-items: var(--x-size-align-layout-columns-header-start, flex start);\n }\n\n .x-layout__header-middle {\n /* layout */\n grid-column: middle-content;\n }\n .x-layout__header-middle.x-list {\n /* space */\n flex-flow: var(--x-flow-layout-columns-header-middle, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-header-middle, center);\n align-items: var(--x-size-align-layout-columns-header-middle, flex start);\n }\n\n .x-layout__header-end {\n /* layout */\n grid-column: end-content;\n }\n .x-layout__header-end.x-list {\n flex-flow: var(--x-flow-layout-columns-header-end, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-header-end, flex-end);\n align-items: var(--x-size-align-layout-columns-header-end, flex-start);\n }\n\n .x-layout__sub-header {\n /* layout */\n grid-column: page;\n grid-row: sub-header;\n display: grid;\n column-gap: var(--x-size-gap-default);\n\n grid-template-columns:\n [sub-header-start]\n var(--x-size-margin-layout-columns)\n 1fr\n [sub-header-content-start]\n repeat(var(--x-number-columns-sub-header-content), 1fr)\n [sub-header-content-end]\n 1fr\n var(--x-size-margin-layout-columns)\n [sub-header-end];\n\n /* size */\n padding-block-start: var(--x-size-padding-top-layout-columns-sub-header, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-sub-header), 0;\n margin-block-start: var(--x-size-margin-top-layout-columns-sub-header, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-sub-header, 0);\n\n /* color */\n background-color: var(--x-color-background-layout-columns-sub-header, transparent);\n border-color: var(--x-color-border-layout-columns-sub-header, transparent);\n\n /* border */\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-sub-header, 0);\n }\n\n .x-layout__sub-header-content {\n /* layout */\n grid-column: sub-header-content;\n }\n .x-layout__sub-header-content.x-list {\n flex-flow: var(--x-flow-layout-columns-sub-header, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-sub-header, flex-start);\n align-items: var(--x-size-align-layout-columns-sub-header, flex-start);\n }\n\n .x-layout__toolbar {\n /* layout */\n grid-column: page;\n grid-row: toolbar;\n display: grid;\n column-gap: var(--x-size-gap-default);\n\n grid-template-columns:\n [toolbar-start]\n var(--x-size-margin-layout-columns)\n [toolbar-aside-start]\n 1fr\n [toolbar-aside-end toolbar-body-start]\n repeat(var(--x-number-columns-toolbar-body), 1fr)\n [toolbar-body-end]\n var(--x-size-margin-layout-columns)\n [toolbar-end];\n\n /* size */\n padding-block-start: var(--x-size-padding-top-layout-columns-toolbar, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-toolbar, 0);\n margin-block-start: var(--x-size-margin-top-layout-columns-toolbar, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-toolbar, 0);\n\n /* color */\n background-color: var(--x-color-background-layout-columns-toolbar, transparent);\n border-color: var(--x-color-border-layout-columns-toolbar, transparent);\n\n /* border */\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-toolbar, 0);\n }\n\n .x-layout__toolbar-aside {\n /* layout */\n grid-column: toolbar-aside;\n }\n .x-layout__toolbar-aside.x-list {\n flex-flow: var(--x-flow-layout-columns-toolbar-aside, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-toolbar-aside, flex-start);\n align-items: var(--x-size-align-layout-columns-toolbar-aside, center);\n }\n\n .x-layout__toolbar-body {\n /* layout */\n grid-column: toolbar-body;\n }\n .x-layout__toolbar-body.x-list {\n flex-flow: var(--x-flow-layout-columns-toolbar-body, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-toolbar-body, flex-end);\n align-items: var(--x-size-align-layout-columns-toolbar-body, center);\n }\n\n .x-layout__main {\n /* layout */\n grid-column: page;\n grid-row: main;\n min-height: 0;\n display: flex;\n flex-flow: row nowrap;\n justify-content: stretch;\n padding-left: calc(var(--x-size-margin-layout-columns) + var(--x-size-gap-default));\n\n /* size */\n padding-block-start: var(--x-size-padding-top-layout-columns-main, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-main, 0);\n margin-block-start: var(--x-size-margin-top-layout-columns-main, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-main, 0);\n\n /* color */\n background-color: var(--x-color-background-layout-columns-main, transparent);\n border-color: var(--x-color-border-layout-columns-main, transparent);\n\n /* border */\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-main, 0);\n }\n\n .x-layout__collapse-aside {\n width: calc(\n (\n 100% - var(--x-size-gap-default) * (var(--x-number-columns-layout-columns, 5)) -\n var(--x-size-margin-layout-columns)\n ) / var(--x-number-columns-layout-columns, 5) + var(--x-size-gap-default)\n );\n }\n\n .x-layout__aside-scroll {\n height: 100%;\n margin-right: var(--x-size-gap-default);\n }\n\n .x-layout__body-scroll {\n flex: 1 1 auto;\n width: 0;\n padding-right: calc(var(--x-size-margin-layout-columns) + var(--x-size-gap-default) - 16px);\n }\n .x-layout__body-scroll.x-scroll {\n overflow-y: scroll;\n }\n\n .x-layout__scroll-to-top {\n /* layout */\n grid-area: scroll-to-top;\n justify-content: flex-end;\n width: 100%;\n display: flex;\n z-index: 1;\n pointer-events: none;\n }\n .x-layout__scroll-to-top-content {\n flex: 1 0 auto;\n padding-block-end: var(--x-size-margin-bottom-layout-columns-scroll-to-top, 10px);\n padding-inline-start: var(--x-size-margin-left-layout-columns-scroll-to-top, 10px);\n }\n .x-layout__scroll-to-top-content > * {\n pointer-events: all;\n }\n</style>\n\n<docs lang=\"mdx\">\n## Layout\n\nThis component has the following layout with fixed headers and collapsible fixed asides:\n\n| header-start | header-middle | header-end |\n| :-----------: | :-----------: | :-----------: |\n| sub-header | | |\n| toolbar-aside | toolbar | |\n| main-aside | main | |\n| | | scroll-to-top |\n\n## Design Tokens\n\nThe component has also the following `Design Tokens` to configure it:\n\n| token | default value |\n| :-------------------------------------------------: | :-----------: |\n| --x-size-column-gap-layout-columns | 20px |\n| --x-size-padding-top-layout-columns-header | 0px |\n| --x-size-padding-bottom-layout-columns-header | 0px |\n| --x-size-margin-top-layout-columns-header | 0px |\n| --x-size-margin-bottom-layout-columns-header | 0px |\n| --x-color-background-layout-columns-header | transparent |\n| --x-color-border-layout-columns-header | transparent |\n| --x-size-border-width-layout-columns-header | 0px |\n| --x-flow-layout-columns-header-start | row nowrap |\n| --x-size-justify-layout-columns-header-start | flex-start |\n| --x-size-align-layout-columns-header-start | flex-start |\n| --x-flow-layout-columns-header-middle | row nowrap |\n| --x-size-justify-layout-columns-header-middle | center |\n| --x-size-align-layout-columns-header-middle | flex-start |\n| --x-flow-layout-columns-header-end | row nowrap |\n| --x-size-justify-layout-columns-header-end | flex-end |\n| --x-size-align-layout-columns-header-end | flex-end |\n| --x-size-padding-top-layout-columns-sub-header | 0px |\n| --x-size-padding-bottom-layout-columns-sub-header | 0px |\n| --x-size-margin-top-layout-columns-sub-header | 0px |\n| --x-size-margin-bottom-layout-columns-sub-header | 0px |\n| --x-color-background-layout-columns-sub-header | transparent |\n| --x-color-border-layout-columns-sub-header | transparent |\n| --x-size-border-width-layout-columns-sub-header | 0px |\n| --x-flow-layout-columns-sub-header | row nowrap |\n| --x-size-justify-layout-columns-sub-header | flex-start |\n| --x-size-align-layout-columns-sub-header | flex-start |\n| --x-size-padding-top-layout-columns-toolbar | 0px |\n| --x-size-padding-bottom-layout-columns-toolbar | 0px |\n| --x-size-margin-top-layout-columns-toolbar | 0px |\n| --x-size-margin-bottom-layout-columns-toolbar | 0px |\n| --x-color-background-layout-columns-toolbar | transparent |\n| --x-color-border-layout-columns-sub-toolbar | transparent |\n| --x-size-border-width-layout-columns-toolbar | 0px |\n| --x-flow-layout-columns-toolbar-aside | row nowrap |\n| --x-size-justify-layout-columns-toolbar-aside | flex-start |\n| --x-size-align-layout-columns-toolbar-aside | center |\n| --x-flow-layout-columns-toolbar-body | row nowrap |\n| --x-size-justify-layout-columns-toolbar-body | flex-start |\n| --x-size-align-layout-columns-toolbar-body | center |\n| --x-size-padding-top-layout-columns-main | 0px |\n| --x-size-padding-bottom-layout-columns-main | 0px |\n| --x-size-margin-top-layout-columns-main | 0px |\n| --x-size-margin-bottom-layout-columns-main | 0px |\n| --x-color-background-layout-columns-main | transparent |\n| --x-color-border-layout-columns-sub-main | transparent |\n| --x-size-border-width-layout-columns-main | 0px |\n| --x-color-background-layout-columns-main-aside | transparent |\n| --x-color-border-layout-columns-sub-main-aside | transparent |\n| --x-size-border-width-layout-columns-main-aside | 0px |\n| --x-color-background-layout-columns-main-body | transparent |\n| --x-color-border-layout-columns-sub-main-body | transparent |\n| --x-size-border-width-layout-columns-main-body | 0px |\n| --x-size-margin-bottom-layout-columns-scroll-to-top | 10px |\n| --x-size-margin-left-layout-columns-scroll-to-top | 10px |\n\n| token | use |\n| :-------------------------------------------------: | :--------------------------------------: |\n| --x-size-column-gap-layout-columns | The gap between columns |\n| --x-size-padding-top-layout-columns-header | The padding top of the header |\n| --x-size-padding-bottom-layout-columns-header | The padding bottom of the header |\n| --x-size-margin-top-layout-columns-header | The margin top of the header |\n| --x-size-margin-bottom-layout-columns-header | The margin bottom of the header |\n| --x-color-background-layout-columns-header | The background color of the header |\n| --x-color-border-layout-columns-header | The border color of the header |\n| --x-size-border-width-layout-columns-header | The border width of the header |\n| --x-flow-layout-columns-header-start | The flex flow of the start header |\n| --x-size-justify-layout-columns-header-start | The justify content of the start header |\n| --x-size-align-layout-columns-header-start | The align items of the start header |\n| --x-flow-layout-columns-header-middle | The flex flow of the middle header |\n| --x-size-justify-layout-columns-header-middle | The justify content of the middle header |\n| --x-size-align-layout-columns-header-middle | The align items of the middle header |\n| --x-flow-layout-columns-header-end | The flex flow of the end header |\n| --x-size-justify-layout-columns-header-end | The justify content of the end header |\n| --x-size-align-layout-columns-header-end | The align items of the end header |\n| --x-size-padding-top-layout-columns-sub-header | The padding bottom of the sub header |\n| --x-size-padding-bottom-layout-columns-sub-header | The padding top of the sub header |\n| --x-size-margin-top-layout-columns-sub-header | The margin bottom of the sub header |\n| --x-size-margin-bottom-layout-columns-sub-header | The margin top of the sub header |\n| --x-color-background-layout-columns-sub-header | The background color of the sub header |\n| --x-color-border-layout-columns-sub-header | The border color of the sub header |\n| --x-size-border-width-layout-columns-sub-header | The border width of the sub header |\n| --x-flow-layout-columns-sub-header | The flex flow of the sub header |\n| --x-size-justify-layout-columns-sub-header | The justify content of the sub header |\n| --x-size-align-layout-columns-sub-header | The align items of the sub header |\n| --x-size-padding-top-layout-columns-toolbar | The padding top of the toolbar |\n| --x-size-padding-bottom-layout-columns-toolbar | The padding bottom of the toolbar |\n| --x-size-margin-top-layout-columns-toolbar | The margin top of the toolbar |\n| --x-size-margin-bottom-layout-columns-toolbar | The margin bottom of the toolbar |\n| --x-color-background-layout-columns-toolbar | The background color of the toolbar |\n| --x-color-border-layout-columns-sub-toolbar | The border color of the toolbar |\n| --x-size-border-width-layout-columns-toolbar | The border width of the toolbar |\n| --x-flow-layout-columns-toolbar-aside | The flex flow of the toolbar aside |\n| --x-size-justify-layout-columns-toolbar-aside | The justify content of the toolbar aside |\n| --x-size-align-layout-columns-toolbar-aside | The align items of the toolbar aside |\n| --x-flow-layout-columns-toolbar-body | The flex flow of the end toolbar body |\n| --x-size-justify-layout-columns-toolbar-body | Justify content of the end toolbar body |\n| --x-size-align-layout-columns-toolbar-body | The align items of the toolbar body |\n| --x-size-padding-top-layout-columns-main | The padding top of the main |\n| --x-size-padding-bottom-layout-columns-main | The padding bottom of the main |\n| --x-size-margin-top-layout-columns-main | The margin top of the main |\n| --x-size-margin-bottom-layout-columns-main | The margin bottom of the main |\n| --x-color-background-layout-columns-main | The background color of the main |\n| --x-color-border-layout-columns-main | The border color of the main |\n| --x-size-border-width-layout-columns-main | The border width of the main |\n| --x-color-background-layout-columns-main-aside | The background color of the main aside |\n| --x-color-border-layout-columns-main-aside | The border color of the main aside |\n| --x-size-border-width-layout-columns-main-aside | The border width of the sub main aside |\n| --x-color-background-layout-columns-main-body | The background color of the main body |\n| --x-color-border-layout-columns-main-body | The border color of the main body |\n| --x-size-border-width-layout-columns-main-body | The border width of the sub main body |\n| --x-size-margin-bottom-layout-columns-scroll-to-top | The margin bottom of the scroll to top |\n| --x-size-margin-left-layout-columns-scroll-to-top | The margin left of the scroll to top |\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createElementBlock","devMode","_normalizeClass","_normalizeStyle","_createCommentVNode","_renderSlot","$slots","_createElementVNode","_createBlock","_withCtx","_createVNode"],"mappings":";;;;;;AAAA,MAAA,UAAA,GAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,CAAA;MAOoD,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAG3B,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAIgB,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAG5B,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAIa,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAGzB,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAKW,UAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;AA7BtD,MAAA,UAAA,GAAA,EAAA,KAAA,EAAA,8BAAA,EAAA,CAAA;MAiC+B,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;MAO/B,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;AAxCZ,MAAA,WAAA,GAAA,EAAA,KAAA,EAAA,gCAAA,EAAA,CAAA;MA6C+B,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;AA7CrC,MAAA,WAAA,GAAA,EAAA,KAAA,EAAA,+BAAA,EAAA,CAAA;MAoD+B,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;;AApDrC,MAAA,WAAA,GAAA,EAAA,KAAA,EAAA,8CAAA,EAAA,CAAA;MAoEmC,WAAM,GAAA;AAAA,EAAc,GAAqB,EAAA,CAAA;AAAA,EAAA,KAAA,EAAA,aAAA;AAYzD,EAAA,KAAA,EAAA,EAAA,QAAA,EAAA,OAAA,EAAA;;AAhFnB,MAAA,WAAA,GAAA,EAAA,KAAA,EAAA,6CAAA,EAAA,CAAA;MAmFmC,WAAM,GAAA;AAAA,EAAc,GAAqB,EAAA,CAAA;AAAA,EAAA,KAAA,EAAA,aAAA;;;MAOzB,WAAM,GAAA;AAAA,EAAA,GAAA,EAAA,CAAA;;;AA1FzD,MAAA,WAAA,GAAA,EAAA,KAAA,EAAA,iCAAA,EAAA,CAAA;MA6F+B,WAAM,GAAA;AAAA,EAAc,GAAoB,EAAA,CAAA;AAAA,EAAA,KAAA,EAAA,aAAA;;;;;;gCA5FrEA,gBAgGM,CAAA,YAAA,CAAA,CAAA;SA7FEC,SAJV,EAAA,EAAAC,kBAAA;AAAA,IAIsBC,KAAAA;AAAAA,IAAO;AAAA,MAAA,KAAA,EAAAC,cAAA,CAAA,CAAA,4BAAA,EAAA,EAAA,UAAA,EAAA,IAAA,CAAA,OAAA,EAAA,CAAA,CAAA;AAEzB,MAAA,KAAA,EAAAC,cAAA,CAqBS,UArBT,IAqBS,CAAA,OAAA,IAAA,IAAA,CAAA,MAAA,CAAA,WAAA,CAAA,GAAA,MAAA,GAAA,MAAA,EAAA,CAAA;AAAA,KAAA;;mCApBP,UAKM,EAAA;AAAA,QAAA,IAAA,CAJJ,qDAGO,EAAAH,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,UADcI,kBAAA,CAAA,mFAAA,CAAA;AAAA,UAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,gBAA4D,EAA5D,EAAA,MAAA;AAAA,YAVV,IAAA,CAAA,OAAA,IAAAN,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,UAAA,EAAA,cAAA,CAAA,IAAAI,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,WAAA,EAAA,IAAA,CAAA;AAAA,SAcM,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,QAAA,IAAA,CACE,sDAGO,EAAAJ,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,UADcI,kBAAA,CAAA,qFAAA,CAAA;AAAA,UAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,iBAA6D,EAA7D,EAAA,MAAA;AAAA,YAjBV,IAAA,CAAA,OAAA,IAAAN,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,UAAA,EAAA,eAAA,CAAA,IAAAI,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,WAAA,EAAA,IAAA,CAAA;AAAA,SAqBM,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,QAAA,IAAA,CACE,mDAGO,EAAAJ,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,UADcI,kBAAA,CAAA,oFAAA,CAAA;AAAA,UAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,kBAA0D,MAA1D;AAAA,YAxBV,IAAA,CAAA,OAAA,IAAAN,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,UAAA,EAAA,YAAA,CAAA,IAAAI,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,WAAA,EAAA,IAAA,CAAA;AAAA,SAAA,CAAA,IA6BeH,mBAAWK,MAAM,EAAA,IAAA,CAAA;AAAA,OAAA,CAAA;AAC1B,MAAA,IAAA,CAAA,OAAA,IAAA,IAAA,CAAA,MAAA,CAKM,YALN,CACE,IAAAP,SAAA,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,QAGOO,kBAAA,CAAA,KAAA,EAAA,UAAA,EAAA;AAAA,UADcH,kBAAA,CAAA,wEAAA,CAAA;AAAA,UAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,kBAA0D,MAA1D;AAAA,YAjCV,IAAA,CAAA,OAAA,IAAAN,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,WAAA,EAAA,YAAA,CAAA,IAAAI,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;;AAAA,SAAA,CAAA;AAAA,OAsCI,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,MAAA,IAAA,CAIE,OAKQ,IAAA,IAAA,CAAA,MAAA,CAAA,eALR,CAKQ,IAAA,IAAA,CAAA,MAAA,CAAA,cAAA,CAAA,IAAAL,SAAA,EADC,EAAAC,kBAAA,CAAA,SAAA,EAAA,WAAA,EAAA;AAAA,QAFLO,kBAAA,CAAA,OAAA,EAAA,WAAA,EAAA;AAAA,UAAAF,UAAA,CACYJ,IAAO,CAAA,MAAA,EAAA,eAAA,EAAA,EAAA,EAAA,MAAA;AAAA,YAAAG,kBAAA,CAAnB,uEAAsD,CAAA;AAAA,YA7ChE,IAAA,CAAA,OAAA,IAAAL,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,WAAA,EAAA,eAAA,CAAA,IAAAI,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAiDM,WAAA,EAAA,IAAA,CAAA;AAAA,SAAA,CAAA;AAIS,QAAAG,kBAAA,CAAA,KAAA,EAAA,WAAA,EAAA;AAAA,UADcH,kBAAA,CAAA,iEAAA,CAAA;AAAA,UAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,gBAA4D,EAA5D,EAAA,MAAA;AAAA,YApDV,IAAA,CAAA,OAAA,IAAAN,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,WAAA,EAAA,cAAA,CAAA,IAAAI,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;;AAAA,SAAA,CAAA;AAAA,OAyDI,CAAA,IAEUH,mBAAWK,MAAM,EAAA,IAAA,CAAA;AAAA,MAAAC,kBAAA,CAAA,MAAA,EADzB,WAcoB,EAAA;AAAA,QAAA,IAAA,CAxE1B,mDA4D6B,EAAAC,WAAA,CAAA,4BAAA,EAAA;AAAA,UACpB,GAAA,EAAA,CAAA;AAAA,UACD,OAAM,EAAA,aAAA;AAAA,UAAA,SAAA,EAAA,IAAA,CAAA,cAAA;AA9Dd,UAAA,KAAA,EAAA,0BAAA;AAAA,SAAA,EAAA;mBAgEmBC,OAAc,CAAA,MAAA;AAAA,YAAOC,WAAA,CAAA,iBAAA,EAAA;AAAA,cAAA,EAAA,EAAA,cAAA;AAhExC,cAAA,KAAA,EAAA,wBAAA;AAAA,aAAA,EAAA;AAkEY,cAAA,OAAA,EAAAD,OAAA,CAAA,MAAA;AAAA,gBAGOF,kBAAA,CAAA,KAAA,EAAA,WAAA,EAAA;AAAA,kBADcH,kBAAA,CAAA,yEAAA,CAAA;AAAA,kBAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,kBAAgF,MAAhF;AAAA,oBApEd,IAAA,CAAA,OAAA,IAAAN,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,WAAA,EAAA,YAAA,CAAA,IAAAI,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;;AAAA,iBAAA,CAAA;AAAA,eAAA,CAAA;;;AAAA,aAAA,CAAA;AAAA,WAAA,CAAA;AAAA,UAAA,CAAA,EAAA,CAAA;AAAA;AAAA,SA0EM,EAAA,CAAA,EAaa,kBAvFnBA,kBAsFiB,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,QAAAM,WAAA,CAVDT,qBAAiB,EAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,EAAA;AAAA,UADzB,OAAA,EAAAQ,OAAA,CAAA,MAAA;AAAA,YAAA,IAAA,CA3ER,kDA6E0B,EAAAD,WAAA,CAAA,iBAAA,EAAA;AAAA,cAChB,GAAK,EAAA,CAAA;AAAA,cAAA,EAAA,EAAA,aAAA;AA9Ef,cAAA,KAAA,EAAA,uBAAA;AAAA,aAAA,EAAA;AAiFY,cAAA,OAAA,EAAAC,OAAA,CAAA,MAAA;AAAA,gBAAAF,kBAAA,CAGO,SAFP,EAAA,WAAA,EAAA;AAAA,kBACqBH,kBAAA,CAAA,2DAAA,CAAA;AAAA,kBAAAC,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,WAA+E,EAAA,EAAA,EAAA,MAAA;AAAA,oBAnF7F,IAAA,CAAA,OAAA,IAAAN,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,WAAA,EAAA,WAAA,CAAA,IAAAI,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;;AAAA,iBAAA,CAAA;AAAA,eAAA,CAAA;AAAA,cAAA,CAAA,EAAA,CAAA;AAAA;AAAA,aAAA,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,WAAA,CAAA;;;AA0FeH,SAAAA,CAAAA;AAAAA,OAAAA,CAAAA;AACT,MAAA,IAAA,CAAA,OAAA,IAAA,IAAA,CAAA,MAAA,CAIM,+BADG,EAAAD,kBAAA,CAAA,KAAA,EAAA,WAAA,EAAA;AAAA,QADcO,kBAAA,CAAA,KAAA,EAAA,WAAA,EAAA;AAAA,UAAAF,UAAA,CAAA,IAAA,CAAA,MAAA,EAAnB,iBAAkF,EAAlF,EAAA,MAAA;AAAA,YA7FV,IAAA,CAAA,OAAA,IAAAN,SAAA,EAAA,EAAAC,kBAAA,CAAA,MAAA,EAAA,WAAA,EAAA,eAAA,CAAA,IAAAI,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;;AAAA,SAAA,CAAA;AAAA,OAAA,CAAA,IAAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;;;;;;;;;;"}
1
+ {"version":3,"file":"multi-column-max-width-layout.vue.js","sources":["../../../../src/components/layouts/multi-column-max-width-layout.vue"],"sourcesContent":["<template>\n <div\n class=\"x-layout x-layout--columns\"\n :class=\"{ 'dev-mode': devMode }\"\n :style=\"{ height: devMode || $slots['main-body'] ? '100%' : 'auto' }\"\n >\n <header class=\"x-layout__header\">\n <div v-if=\"devMode || $slots['header-start']\" class=\"x-list x-layout__header-start\">\n <!-- @slot Slot that can be used to insert content into the left part of the header. -->\n <slot name=\"header-start\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER START</span>\n </slot>\n </div>\n\n <div v-if=\"devMode || $slots['header-middle']\" class=\"x-list x-layout__header-middle\">\n <!-- @slot Slot that can be used to insert content into the center part of the header. -->\n <slot name=\"header-middle\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER MIDDLE</span>\n </slot>\n </div>\n\n <div v-if=\"devMode || $slots['header-end']\" class=\"x-list x-layout__header-end\">\n <!-- @slot Slot that can be used to insert content into the right part of the header. -->\n <slot name=\"header-end\">\n <span v-if=\"devMode\" class=\"slot-helper\">HEADER END</span>\n </slot>\n </div>\n </header>\n\n <div v-if=\"devMode || $slots['sub-header']\" class=\"x-layout__sub-header\">\n <div class=\"x-layout__sub-header-content\">\n <!-- @slot Slot that can be used to insert content into below the header. -->\n <slot name=\"sub-header\">\n <span v-if=\"devMode\" class=\"slot-helper\">SUB HEADER</span>\n </slot>\n </div>\n </div>\n\n <section\n v-if=\"devMode || $slots['toolbar-aside'] || $slots['toolbar-body']\"\n class=\"x-layout__toolbar\"\n >\n <aside class=\"x-list x-layout__toolbar-aside\">\n <slot name=\"toolbar-aside\">\n <!-- @slot Slot that can be used to insert content above the left aside. -->\n <span v-if=\"devMode\" class=\"slot-helper\">TOOLBAR ASIDE</span>\n </slot>\n </aside>\n\n <div class=\"x-list x-layout__toolbar-body\">\n <!-- @slot Slot that can be used to insert content above the body. -->\n <slot name=\"toolbar-body\">\n <span v-if=\"devMode\" class=\"slot-helper\">TOOLBAR BODY</span>\n </slot>\n </div>\n </section>\n\n <main class=\"x-layout__main\">\n <BaseIdTogglePanel\n v-if=\"devMode || $slots['main-aside']\"\n panelId=\"aside-panel\"\n :animation=\"asideAnimation\"\n class=\"x-layout__collapse-aside\"\n >\n <Scroll id=\"aside-scroll\" class=\"x-layout__aside-scroll\">\n <div class=\"x-layout__main-aside x-list x-list--vertical\">\n <!-- @slot Slot that can be used to insert content into the left side bar. -->\n <slot name=\"main-aside\">\n <span v-if=\"devMode\" class=\"slot-helper\" style=\"height: 110vh\">MAIN ASIDE</span>\n </slot>\n </div>\n </Scroll>\n </BaseIdTogglePanel>\n\n <MainScroll class=\"x-flex x-flex-auto\">\n <Scroll\n v-if=\"devMode || $slots['main-body']\"\n id=\"main-scroll\"\n class=\"x-layout__body-scroll\"\n >\n <section class=\"x-layout__main-body x-list x-list--vertical\">\n <!-- @slot Slot that can be used to insert the body content. -->\n <slot name=\"main-body\">\n <span v-if=\"devMode\" class=\"slot-helper\" style=\"height: 110vh\">MAIN BODY</span>\n </slot>\n </section>\n </Scroll>\n </MainScroll>\n </main>\n\n <div v-if=\"devMode || $slots['scroll-to-top']\" class=\"x-layout__scroll-to-top\">\n <div class=\"x-layout__scroll-to-top-content\">\n <slot name=\"scroll-to-top\">\n <span v-if=\"devMode\" class=\"slot-helper\" style=\"height: 50px\">SCROLL TO TOP</span>\n </slot>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent } from 'vue';\n import Scroll from '../../x-modules/scroll/components/scroll.vue';\n import MainScroll from '../../x-modules/scroll/components/main-scroll.vue';\n import AnimateWidth from '../animations/animate-width.vue';\n import BaseIdTogglePanel from '../panels/base-id-toggle-panel.vue';\n import { AnimationProp } from '../../types';\n\n /**\n * Component for use as Layout to be filled with the rest of the Components.\n *\n * @deprecated - The layout has been deprecated in favor of using new XDS layout.\n *\n * @public\n */\n export default defineComponent({\n name: 'MultiColumnMaxWidthLayout',\n components: { BaseIdTogglePanel, MainScroll, Scroll },\n props: {\n /** The animation used for the Main Aside. */\n asideAnimation: {\n type: AnimationProp,\n default: () => AnimateWidth\n },\n /** Enables the devMode, which shows the available slots to use with its names. */\n devMode: Boolean\n }\n });\n</script>\n\n<style lang=\"css\">\n :root {\n /* layout */\n --x-size-min-margin-layout-columns: var(--x-size-base-06);\n --x-size-column-gap-layout-columns: var(--x-size-base-06);\n\n /* spacing */\n\n /* size - header */\n --x-size-padding-top-layout-columns-header: var(--x-size-base-07);\n --x-size-padding-bottom-layout-columns-header: var(--x-size-base-05);\n\n /* size - toolbar */\n --x-size-padding-top-layout-columns-toolbar: var(--x-size-base-05);\n --x-size-padding-bottom-layout-columns-toolbar: var(--x-size-base-03);\n\n /* size- scroll-to-top */\n --x-size-margin-bottom-layout-columns-scroll-to-top: var(--x-size-base-03);\n --x-size-margin-left-layout-columns-scroll-to-top: var(--x-size-base-03);\n\n /* color */\n --x-color-background-layout-columns: var(--x-color-base-neutral-100);\n --x-color-border-layout-columns: var(--x-color-base-neutral-70);\n --x-color-border-layout-columns-header: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-sub-header: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-toolbar: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-main: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-main-aside: var(--x-color-border-layout-columns);\n --x-color-border-layout-columns-main-body: var(--x-color-border-layout-columns);\n\n /* border */\n --x-size-border-width-layout-columns-header: 0;\n --x-size-border-width-layout-columns-toolbar: 1px 0 0;\n }\n</style>\n\n<style lang=\"css\" scoped>\n @import url('../../design-system-deprecated/utilities/dev-mode.css');\n\n .x-layout {\n /* custom properties */\n --x-size-gap-default: var(--x-size-column-gap-layout-columns, 20px);\n --x-size-margin-max-width: calc((100vw - var(--x-size-max-width-layout-columns, 1440px)) / 2);\n --x-size-margin-layout-columns: max(\n var(--x-size-min-margin-layout-columns, 20px),\n var(--x-size-margin-max-width)\n );\n --x-number-columns-header-middle: calc(var(--x-number-columns-layout-columns, 5) - 2);\n --x-number-columns-sub-header-content: var(--x-number-columns-header-middle);\n --x-number-columns-toolbar-body: calc(var(--x-number-columns-layout-columns, 5) - 1);\n\n /* layout */\n display: grid;\n align-content: stretch;\n max-height: 100%;\n\n grid-template-columns:\n [page-start]\n 1fr\n [scroll-to-top-start]\n calc(var(--x-size-margin-layout-columns) + var(--x-size-gap-default))\n [scroll-to-top-end page-end];\n\n grid-template-rows:\n [page-start header-start]\n auto\n [header-end sub-header-start]\n auto\n [sub-header-end toolbar-start]\n auto\n [toolbar-end main-start]\n 1fr\n [scroll-to-top-start]\n auto\n [main-end scroll-to-top-end page-end];\n }\n\n .x-layout__header {\n /* layout */\n grid-column: page;\n grid-row: header;\n display: grid;\n column-gap: var(--x-size-gap-default);\n\n grid-template-columns:\n [header-start]\n var(--x-size-margin-layout-columns)\n [start-content-start]\n 1fr\n [start-content-end middle-content-start]\n repeat(var(--x-number-columns-header-middle), 1fr)\n [middle-content-end end-content-start]\n 1fr\n [end-content-end]\n var(--x-size-margin-layout-columns)\n [header-end];\n\n /* size */\n padding-block-start: var(--x-size-padding-top-layout-columns-header, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-header, 0);\n margin-block-start: var(--x-size-margin-top-layout-columns-header, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-header, 0);\n\n /* color */\n background-color: var(--x-color-background-layout-columns-header, transparent);\n border-color: var(--x-color-border-layout-columns-header, transparent);\n\n /* border */\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-header, 0);\n }\n\n .x-layout__header-start {\n /* layout */\n grid-column: start-content;\n }\n .x-layout__header-start.x-list {\n /* space */\n flex-flow: var(--x-flow-layout-columns-header-start, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-header-start, flex start);\n align-items: var(--x-size-align-layout-columns-header-start, flex start);\n }\n\n .x-layout__header-middle {\n /* layout */\n grid-column: middle-content;\n }\n .x-layout__header-middle.x-list {\n /* space */\n flex-flow: var(--x-flow-layout-columns-header-middle, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-header-middle, center);\n align-items: var(--x-size-align-layout-columns-header-middle, flex start);\n }\n\n .x-layout__header-end {\n /* layout */\n grid-column: end-content;\n }\n .x-layout__header-end.x-list {\n flex-flow: var(--x-flow-layout-columns-header-end, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-header-end, flex-end);\n align-items: var(--x-size-align-layout-columns-header-end, flex-start);\n }\n\n .x-layout__sub-header {\n /* layout */\n grid-column: page;\n grid-row: sub-header;\n display: grid;\n column-gap: var(--x-size-gap-default);\n\n grid-template-columns:\n [sub-header-start]\n var(--x-size-margin-layout-columns)\n 1fr\n [sub-header-content-start]\n repeat(var(--x-number-columns-sub-header-content), 1fr)\n [sub-header-content-end]\n 1fr\n var(--x-size-margin-layout-columns)\n [sub-header-end];\n\n /* size */\n padding-block-start: var(--x-size-padding-top-layout-columns-sub-header, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-sub-header), 0;\n margin-block-start: var(--x-size-margin-top-layout-columns-sub-header, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-sub-header, 0);\n\n /* color */\n background-color: var(--x-color-background-layout-columns-sub-header, transparent);\n border-color: var(--x-color-border-layout-columns-sub-header, transparent);\n\n /* border */\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-sub-header, 0);\n }\n\n .x-layout__sub-header-content {\n /* layout */\n grid-column: sub-header-content;\n }\n .x-layout__sub-header-content.x-list {\n flex-flow: var(--x-flow-layout-columns-sub-header, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-sub-header, flex-start);\n align-items: var(--x-size-align-layout-columns-sub-header, flex-start);\n }\n\n .x-layout__toolbar {\n /* layout */\n grid-column: page;\n grid-row: toolbar;\n display: grid;\n column-gap: var(--x-size-gap-default);\n\n grid-template-columns:\n [toolbar-start]\n var(--x-size-margin-layout-columns)\n [toolbar-aside-start]\n 1fr\n [toolbar-aside-end toolbar-body-start]\n repeat(var(--x-number-columns-toolbar-body), 1fr)\n [toolbar-body-end]\n var(--x-size-margin-layout-columns)\n [toolbar-end];\n\n /* size */\n padding-block-start: var(--x-size-padding-top-layout-columns-toolbar, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-toolbar, 0);\n margin-block-start: var(--x-size-margin-top-layout-columns-toolbar, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-toolbar, 0);\n\n /* color */\n background-color: var(--x-color-background-layout-columns-toolbar, transparent);\n border-color: var(--x-color-border-layout-columns-toolbar, transparent);\n\n /* border */\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-toolbar, 0);\n }\n\n .x-layout__toolbar-aside {\n /* layout */\n grid-column: toolbar-aside;\n }\n .x-layout__toolbar-aside.x-list {\n flex-flow: var(--x-flow-layout-columns-toolbar-aside, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-toolbar-aside, flex-start);\n align-items: var(--x-size-align-layout-columns-toolbar-aside, center);\n }\n\n .x-layout__toolbar-body {\n /* layout */\n grid-column: toolbar-body;\n }\n .x-layout__toolbar-body.x-list {\n flex-flow: var(--x-flow-layout-columns-toolbar-body, row nowrap);\n justify-content: var(--x-size-justify-layout-columns-toolbar-body, flex-end);\n align-items: var(--x-size-align-layout-columns-toolbar-body, center);\n }\n\n .x-layout__main {\n /* layout */\n grid-column: page;\n grid-row: main;\n min-height: 0;\n display: flex;\n flex-flow: row nowrap;\n justify-content: stretch;\n padding-left: calc(var(--x-size-margin-layout-columns) + var(--x-size-gap-default));\n\n /* size */\n padding-block-start: var(--x-size-padding-top-layout-columns-main, 0);\n padding-block-end: var(--x-size-padding-bottom-layout-columns-main, 0);\n margin-block-start: var(--x-size-margin-top-layout-columns-main, 0);\n margin-block-end: var(--x-size-margin-bottom-layout-columns-main, 0);\n\n /* color */\n background-color: var(--x-color-background-layout-columns-main, transparent);\n border-color: var(--x-color-border-layout-columns-main, transparent);\n\n /* border */\n border-style: solid;\n border-width: var(--x-size-border-width-layout-columns-main, 0);\n }\n\n .x-layout__collapse-aside {\n width: calc(\n (\n 100% - var(--x-size-gap-default) * (var(--x-number-columns-layout-columns, 5)) -\n var(--x-size-margin-layout-columns)\n ) / var(--x-number-columns-layout-columns, 5) + var(--x-size-gap-default)\n );\n }\n\n .x-layout__aside-scroll {\n height: 100%;\n margin-right: var(--x-size-gap-default);\n }\n\n .x-layout__body-scroll {\n flex: 1 1 auto;\n width: 0;\n padding-right: calc(var(--x-size-margin-layout-columns) + var(--x-size-gap-default) - 16px);\n }\n .x-layout__body-scroll.x-scroll {\n overflow-y: scroll;\n }\n\n .x-layout__scroll-to-top {\n /* layout */\n grid-area: scroll-to-top;\n justify-content: flex-end;\n width: 100%;\n display: flex;\n z-index: 1;\n pointer-events: none;\n }\n .x-layout__scroll-to-top-content {\n flex: 1 0 auto;\n padding-block-end: var(--x-size-margin-bottom-layout-columns-scroll-to-top, 10px);\n padding-inline-start: var(--x-size-margin-left-layout-columns-scroll-to-top, 10px);\n }\n .x-layout__scroll-to-top-content > * {\n pointer-events: all;\n }\n</style>\n\n<docs lang=\"mdx\">\n## Layout\n\nThis component has the following layout with fixed headers and collapsible fixed asides:\n\n| header-start | header-middle | header-end |\n| :-----------: | :-----------: | :-----------: |\n| sub-header | | |\n| toolbar-aside | toolbar | |\n| main-aside | main | |\n| | | scroll-to-top |\n\n## Design Tokens\n\nThe component has also the following `Design Tokens` to configure it:\n\n| token | default value |\n| :-------------------------------------------------: | :-----------: |\n| --x-size-column-gap-layout-columns | 20px |\n| --x-size-padding-top-layout-columns-header | 0px |\n| --x-size-padding-bottom-layout-columns-header | 0px |\n| --x-size-margin-top-layout-columns-header | 0px |\n| --x-size-margin-bottom-layout-columns-header | 0px |\n| --x-color-background-layout-columns-header | transparent |\n| --x-color-border-layout-columns-header | transparent |\n| --x-size-border-width-layout-columns-header | 0px |\n| --x-flow-layout-columns-header-start | row nowrap |\n| --x-size-justify-layout-columns-header-start | flex-start |\n| --x-size-align-layout-columns-header-start | flex-start |\n| --x-flow-layout-columns-header-middle | row nowrap |\n| --x-size-justify-layout-columns-header-middle | center |\n| --x-size-align-layout-columns-header-middle | flex-start |\n| --x-flow-layout-columns-header-end | row nowrap |\n| --x-size-justify-layout-columns-header-end | flex-end |\n| --x-size-align-layout-columns-header-end | flex-end |\n| --x-size-padding-top-layout-columns-sub-header | 0px |\n| --x-size-padding-bottom-layout-columns-sub-header | 0px |\n| --x-size-margin-top-layout-columns-sub-header | 0px |\n| --x-size-margin-bottom-layout-columns-sub-header | 0px |\n| --x-color-background-layout-columns-sub-header | transparent |\n| --x-color-border-layout-columns-sub-header | transparent |\n| --x-size-border-width-layout-columns-sub-header | 0px |\n| --x-flow-layout-columns-sub-header | row nowrap |\n| --x-size-justify-layout-columns-sub-header | flex-start |\n| --x-size-align-layout-columns-sub-header | flex-start |\n| --x-size-padding-top-layout-columns-toolbar | 0px |\n| --x-size-padding-bottom-layout-columns-toolbar | 0px |\n| --x-size-margin-top-layout-columns-toolbar | 0px |\n| --x-size-margin-bottom-layout-columns-toolbar | 0px |\n| --x-color-background-layout-columns-toolbar | transparent |\n| --x-color-border-layout-columns-sub-toolbar | transparent |\n| --x-size-border-width-layout-columns-toolbar | 0px |\n| --x-flow-layout-columns-toolbar-aside | row nowrap |\n| --x-size-justify-layout-columns-toolbar-aside | flex-start |\n| --x-size-align-layout-columns-toolbar-aside | center |\n| --x-flow-layout-columns-toolbar-body | row nowrap |\n| --x-size-justify-layout-columns-toolbar-body | flex-start |\n| --x-size-align-layout-columns-toolbar-body | center |\n| --x-size-padding-top-layout-columns-main | 0px |\n| --x-size-padding-bottom-layout-columns-main | 0px |\n| --x-size-margin-top-layout-columns-main | 0px |\n| --x-size-margin-bottom-layout-columns-main | 0px |\n| --x-color-background-layout-columns-main | transparent |\n| --x-color-border-layout-columns-sub-main | transparent |\n| --x-size-border-width-layout-columns-main | 0px |\n| --x-color-background-layout-columns-main-aside | transparent |\n| --x-color-border-layout-columns-sub-main-aside | transparent |\n| --x-size-border-width-layout-columns-main-aside | 0px |\n| --x-color-background-layout-columns-main-body | transparent |\n| --x-color-border-layout-columns-sub-main-body | transparent |\n| --x-size-border-width-layout-columns-main-body | 0px |\n| --x-size-margin-bottom-layout-columns-scroll-to-top | 10px |\n| --x-size-margin-left-layout-columns-scroll-to-top | 10px |\n\n| token | use |\n| :-------------------------------------------------: | :--------------------------------------: |\n| --x-size-column-gap-layout-columns | The gap between columns |\n| --x-size-padding-top-layout-columns-header | The padding top of the header |\n| --x-size-padding-bottom-layout-columns-header | The padding bottom of the header |\n| --x-size-margin-top-layout-columns-header | The margin top of the header |\n| --x-size-margin-bottom-layout-columns-header | The margin bottom of the header |\n| --x-color-background-layout-columns-header | The background color of the header |\n| --x-color-border-layout-columns-header | The border color of the header |\n| --x-size-border-width-layout-columns-header | The border width of the header |\n| --x-flow-layout-columns-header-start | The flex flow of the start header |\n| --x-size-justify-layout-columns-header-start | The justify content of the start header |\n| --x-size-align-layout-columns-header-start | The align items of the start header |\n| --x-flow-layout-columns-header-middle | The flex flow of the middle header |\n| --x-size-justify-layout-columns-header-middle | The justify content of the middle header |\n| --x-size-align-layout-columns-header-middle | The align items of the middle header |\n| --x-flow-layout-columns-header-end | The flex flow of the end header |\n| --x-size-justify-layout-columns-header-end | The justify content of the end header |\n| --x-size-align-layout-columns-header-end | The align items of the end header |\n| --x-size-padding-top-layout-columns-sub-header | The padding bottom of the sub header |\n| --x-size-padding-bottom-layout-columns-sub-header | The padding top of the sub header |\n| --x-size-margin-top-layout-columns-sub-header | The margin bottom of the sub header |\n| --x-size-margin-bottom-layout-columns-sub-header | The margin top of the sub header |\n| --x-color-background-layout-columns-sub-header | The background color of the sub header |\n| --x-color-border-layout-columns-sub-header | The border color of the sub header |\n| --x-size-border-width-layout-columns-sub-header | The border width of the sub header |\n| --x-flow-layout-columns-sub-header | The flex flow of the sub header |\n| --x-size-justify-layout-columns-sub-header | The justify content of the sub header |\n| --x-size-align-layout-columns-sub-header | The align items of the sub header |\n| --x-size-padding-top-layout-columns-toolbar | The padding top of the toolbar |\n| --x-size-padding-bottom-layout-columns-toolbar | The padding bottom of the toolbar |\n| --x-size-margin-top-layout-columns-toolbar | The margin top of the toolbar |\n| --x-size-margin-bottom-layout-columns-toolbar | The margin bottom of the toolbar |\n| --x-color-background-layout-columns-toolbar | The background color of the toolbar |\n| --x-color-border-layout-columns-sub-toolbar | The border color of the toolbar |\n| --x-size-border-width-layout-columns-toolbar | The border width of the toolbar |\n| --x-flow-layout-columns-toolbar-aside | The flex flow of the toolbar aside |\n| --x-size-justify-layout-columns-toolbar-aside | The justify content of the toolbar aside |\n| --x-size-align-layout-columns-toolbar-aside | The align items of the toolbar aside |\n| --x-flow-layout-columns-toolbar-body | The flex flow of the end toolbar body |\n| --x-size-justify-layout-columns-toolbar-body | Justify content of the end toolbar body |\n| --x-size-align-layout-columns-toolbar-body | The align items of the toolbar body |\n| --x-size-padding-top-layout-columns-main | The padding top of the main |\n| --x-size-padding-bottom-layout-columns-main | The padding bottom of the main |\n| --x-size-margin-top-layout-columns-main | The margin top of the main |\n| --x-size-margin-bottom-layout-columns-main | The margin bottom of the main |\n| --x-color-background-layout-columns-main | The background color of the main |\n| --x-color-border-layout-columns-main | The border color of the main |\n| --x-size-border-width-layout-columns-main | The border width of the main |\n| --x-color-background-layout-columns-main-aside | The background color of the main aside |\n| --x-color-border-layout-columns-main-aside | The border color of the main aside |\n| --x-size-border-width-layout-columns-main-aside | The border width of the sub main aside |\n| --x-color-background-layout-columns-main-body | The background color of the main body |\n| --x-color-border-layout-columns-main-body | The border color of the main body |\n| --x-size-border-width-layout-columns-main-body | The border width of the sub main body |\n| --x-size-margin-bottom-layout-columns-scroll-to-top | The margin bottom of the scroll to top |\n| --x-size-margin-left-layout-columns-scroll-to-top | The margin left of the scroll to top |\n</docs>\n"],"names":["_resolveComponent","_openBlock","_createElementBlock","devMode","_normalizeClass","_normalizeStyle","_renderSlot","_createCommentVNode","$slots","_createElementVNode","_createBlock","_withCtx","_createVNode"],"mappings":"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"}