@carbon/ibm-products-web-components 0.45.0 → 0.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +494 -19
- package/es/components/add-select/add-select-body.d.ts +15 -10
- package/es/components/add-select/add-select-body.d.ts.map +1 -1
- package/es/components/add-select/add-select-body.js +95 -73
- package/es/components/add-select/add-select-body.js.map +1 -1
- package/es/components/add-select/add-select-body.scss.js +1 -1
- package/es/components/add-select/add-select-body.scss.js.map +1 -1
- package/es/components/add-select/add-select-column.d.ts +83 -0
- package/es/components/add-select/add-select-column.d.ts.map +1 -0
- package/es/components/add-select/add-select-column.js +217 -0
- package/es/components/add-select/add-select-column.js.map +1 -0
- package/es/components/add-select/add-select-column.scss.js +14 -0
- package/es/components/add-select/add-select-column.scss.js.map +1 -0
- package/es/components/add-select/add-select-item-panel.d.ts +58 -0
- package/es/components/add-select/add-select-item-panel.d.ts.map +1 -0
- package/es/components/add-select/add-select-item-panel.js +162 -0
- package/es/components/add-select/add-select-item-panel.js.map +1 -0
- package/es/components/add-select/add-select-item-panel.scss.js +14 -0
- package/es/components/add-select/add-select-item-panel.scss.js.map +1 -0
- package/es/components/add-select/add-select-row.d.ts +42 -2
- package/es/components/add-select/add-select-row.d.ts.map +1 -1
- package/es/components/add-select/add-select-row.js +143 -23
- package/es/components/add-select/add-select-row.js.map +1 -1
- package/es/components/add-select/add-select-row.scss.js +1 -1
- package/es/components/add-select/add-select-row.scss.js.map +1 -1
- package/es/components/add-select/add-select-selection-summary-item.d.ts +64 -0
- package/es/components/add-select/add-select-selection-summary-item.d.ts.map +1 -0
- package/es/components/add-select/add-select-selection-summary-item.js +279 -0
- package/es/components/add-select/add-select-selection-summary-item.js.map +1 -0
- package/es/components/add-select/add-select-selection-summary-item.scss.js +14 -0
- package/es/components/add-select/add-select-selection-summary-item.scss.js.map +1 -0
- package/es/components/add-select/add-select-selection-summary.d.ts +48 -0
- package/es/components/add-select/add-select-selection-summary.d.ts.map +1 -0
- package/es/components/add-select/add-select-selection-summary.js +118 -0
- package/es/components/add-select/add-select-selection-summary.js.map +1 -0
- package/es/components/add-select/add-select-selection-summary.scss.js +14 -0
- package/es/components/add-select/add-select-selection-summary.scss.js.map +1 -0
- package/es/components/add-select/add-select.scss.js +1 -1
- package/es/components/add-select/index.d.ts +4 -1
- package/es/components/add-select/index.d.ts.map +1 -1
- package/es/components/add-select/index.js +4 -1
- package/es/components/coachmark/coachmark-header.js +2 -2
- package/es/components/coachmark/coachmark-header.js.map +1 -1
- package/es/components/edit-in-place/edit-in-place.js +2 -2
- package/es/components/edit-in-place/edit-in-place.js.map +1 -1
- package/es/components/guide-banner/guide-banner.js +2 -2
- package/es/components/guide-banner/guide-banner.js.map +1 -1
- package/es/components/notification-panel/notification.js +2 -2
- package/es/components/notification-panel/notification.js.map +1 -1
- package/es/components/side-panel/side-panel.js +2 -2
- package/es/components/side-panel/side-panel.js.map +1 -1
- package/es/components/tearsheet/tearsheet.scss.js +1 -1
- package/es/ibm-products-utilities/src/utils/add-select/add-select-data.js.map +1 -1
- package/es/ibm-products-web-components/package.js +1 -1
- package/es-custom/components/add-select/add-select-body.js +95 -73
- package/es-custom/components/add-select/add-select-body.js.map +1 -1
- package/es-custom/components/add-select/add-select-body.scss.js +1 -1
- package/es-custom/components/add-select/add-select-body.scss.js.map +1 -1
- package/es-custom/components/add-select/add-select-column.js +217 -0
- package/es-custom/components/add-select/add-select-column.js.map +1 -0
- package/es-custom/components/add-select/add-select-column.scss.js +14 -0
- package/es-custom/components/add-select/add-select-column.scss.js.map +1 -0
- package/es-custom/components/add-select/add-select-item-panel.js +162 -0
- package/es-custom/components/add-select/add-select-item-panel.js.map +1 -0
- package/es-custom/components/add-select/add-select-item-panel.scss.js +14 -0
- package/es-custom/components/add-select/add-select-item-panel.scss.js.map +1 -0
- package/es-custom/components/add-select/add-select-row.js +143 -23
- package/es-custom/components/add-select/add-select-row.js.map +1 -1
- package/es-custom/components/add-select/add-select-row.scss.js +1 -1
- package/es-custom/components/add-select/add-select-row.scss.js.map +1 -1
- package/es-custom/components/add-select/add-select-selection-summary-item.js +279 -0
- package/es-custom/components/add-select/add-select-selection-summary-item.js.map +1 -0
- package/es-custom/components/add-select/add-select-selection-summary-item.scss.js +14 -0
- package/es-custom/components/add-select/add-select-selection-summary-item.scss.js.map +1 -0
- package/es-custom/components/add-select/add-select-selection-summary.js +118 -0
- package/es-custom/components/add-select/add-select-selection-summary.js.map +1 -0
- package/es-custom/components/add-select/add-select-selection-summary.scss.js +14 -0
- package/es-custom/components/add-select/add-select-selection-summary.scss.js.map +1 -0
- package/es-custom/components/add-select/add-select.scss.js +1 -1
- package/es-custom/components/add-select/index.js +4 -1
- package/es-custom/components/coachmark/coachmark-header.js +2 -2
- package/es-custom/components/coachmark/coachmark-header.js.map +1 -1
- package/es-custom/components/edit-in-place/edit-in-place.js +2 -2
- package/es-custom/components/edit-in-place/edit-in-place.js.map +1 -1
- package/es-custom/components/guide-banner/guide-banner.js +2 -2
- package/es-custom/components/guide-banner/guide-banner.js.map +1 -1
- package/es-custom/components/notification-panel/notification.js +2 -2
- package/es-custom/components/notification-panel/notification.js.map +1 -1
- package/es-custom/components/side-panel/side-panel.js +2 -2
- package/es-custom/components/side-panel/side-panel.js.map +1 -1
- package/es-custom/components/tearsheet/tearsheet.scss.js +1 -1
- package/es-custom/ibm-products-utilities/src/utils/add-select/add-select-data.js.map +1 -1
- package/es-custom/ibm-products-web-components/package.js +1 -1
- package/lib/components/add-select/add-select-body.d.ts +15 -10
- package/lib/components/add-select/add-select-body.d.ts.map +1 -1
- package/lib/components/add-select/add-select-column.d.ts +83 -0
- package/lib/components/add-select/add-select-column.d.ts.map +1 -0
- package/lib/components/add-select/add-select-item-panel.d.ts +58 -0
- package/lib/components/add-select/add-select-item-panel.d.ts.map +1 -0
- package/lib/components/add-select/add-select-row.d.ts +42 -2
- package/lib/components/add-select/add-select-row.d.ts.map +1 -1
- package/lib/components/add-select/add-select-selection-summary-item.d.ts +64 -0
- package/lib/components/add-select/add-select-selection-summary-item.d.ts.map +1 -0
- package/lib/components/add-select/add-select-selection-summary.d.ts +48 -0
- package/lib/components/add-select/add-select-selection-summary.d.ts.map +1 -0
- package/lib/components/add-select/index.d.ts +4 -1
- package/lib/components/add-select/index.d.ts.map +1 -1
- package/package.json +7 -6
- package/scss/components/add-select/add-select-body.scss +36 -4
- package/scss/components/add-select/add-select-column.scss +81 -0
- package/scss/components/add-select/add-select-item-panel.scss +85 -0
- package/scss/components/add-select/add-select-row.scss +76 -9
- package/scss/components/add-select/add-select-selection-summary-item.scss +227 -0
- package/scss/components/add-select/add-select-selection-summary.scss +58 -0
- package/telemetry.yml +34 -5
- package/es/components/add-select/add-select-content.d.ts +0 -57
- package/es/components/add-select/add-select-content.d.ts.map +0 -1
- package/es/components/add-select/add-select-content.js +0 -188
- package/es/components/add-select/add-select-content.js.map +0 -1
- package/es/components/add-select/add-select-content.scss.js +0 -14
- package/es/components/add-select/add-select-content.scss.js.map +0 -1
- package/es-custom/components/add-select/add-select-content.js +0 -188
- package/es-custom/components/add-select/add-select-content.js.map +0 -1
- package/es-custom/components/add-select/add-select-content.scss.js +0 -14
- package/es-custom/components/add-select/add-select-content.scss.js.map +0 -1
- package/lib/components/add-select/add-select-content.d.ts +0 -57
- package/lib/components/add-select/add-select-content.d.ts.map +0 -1
- package/scss/components/add-select/add-select-content.scss +0 -42
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2020, 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import "../../globals/settings.js";
|
|
9
|
+
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.127.0/helpers/decorate.js";
|
|
10
|
+
import add_select_column_default$1 from "./add-select-column.scss.js";
|
|
11
|
+
import { classMap } from "lit/directives/class-map.js";
|
|
12
|
+
import { LitElement, html, nothing } from "lit";
|
|
13
|
+
import { property, state } from "lit/decorators.js";
|
|
14
|
+
import { carbonElement } from "@carbon/web-components/es/globals/decorators/carbon-element.js";
|
|
15
|
+
import "@carbon/web-components/es/components/search/index.js";
|
|
16
|
+
import "@carbon/web-components/es/components/tag/index.js";
|
|
17
|
+
import "@carbon/web-components/es/components/checkbox/index.js";
|
|
18
|
+
//#region src/components/add-select/add-select-column.ts
|
|
19
|
+
/**
|
|
20
|
+
* @license
|
|
21
|
+
*
|
|
22
|
+
* Copyright IBM Corp. 2026
|
|
23
|
+
*
|
|
24
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
25
|
+
* LICENSE file in the root directory of this source tree.
|
|
26
|
+
*/
|
|
27
|
+
const blockClass = `c4p--add-select__next`;
|
|
28
|
+
/**
|
|
29
|
+
* Add Select Column component — optional column wrapper providing column-level
|
|
30
|
+
* search, title, and "Select All" functionality. Propagates `multi` context to
|
|
31
|
+
* child rows via the `multi` property/attribute.
|
|
32
|
+
* @element c4p-add-select-column
|
|
33
|
+
* @slot default - AddSelectRow elements
|
|
34
|
+
* @slot actions - Custom actions (filter/sort) placed next to column search
|
|
35
|
+
* @fires c4p-add-select-column-search - Fired when column search changes; detail: { searchTerm }
|
|
36
|
+
* @fires c4p-add-select-column-select-all - Fired when "Select All" checkbox changes; detail: { checked }
|
|
37
|
+
*/
|
|
38
|
+
let CDSAddSelectColumn = class CDSAddSelectColumn extends LitElement {
|
|
39
|
+
constructor(..._args) {
|
|
40
|
+
super(..._args);
|
|
41
|
+
this.title = "";
|
|
42
|
+
this.searchLabel = "Search";
|
|
43
|
+
this.searchPlaceholder = "Search";
|
|
44
|
+
this.hideSearch = false;
|
|
45
|
+
this.multi = false;
|
|
46
|
+
this.showSelectAll = false;
|
|
47
|
+
this.itemCount = 0;
|
|
48
|
+
this.allSelected = false;
|
|
49
|
+
this.allIndeterminate = false;
|
|
50
|
+
this._searchTerm = "";
|
|
51
|
+
this._hasActionsSlot = false;
|
|
52
|
+
}
|
|
53
|
+
_handleActionsSlotChange(e) {
|
|
54
|
+
const slot = e.target;
|
|
55
|
+
this._hasActionsSlot = slot.assignedElements({ flatten: true }).length > 0;
|
|
56
|
+
}
|
|
57
|
+
_handleSearch(event) {
|
|
58
|
+
this._searchTerm = event.detail?.value ?? "";
|
|
59
|
+
this.dispatchEvent(new CustomEvent(this.constructor.eventSearch, {
|
|
60
|
+
bubbles: true,
|
|
61
|
+
cancelable: true,
|
|
62
|
+
composed: true,
|
|
63
|
+
detail: { searchTerm: this._searchTerm }
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
_handleSelectAll(event) {
|
|
67
|
+
const checked = !!event.detail?.checked;
|
|
68
|
+
this.dispatchEvent(new CustomEvent(this.constructor.eventSelectAll, {
|
|
69
|
+
bubbles: true,
|
|
70
|
+
cancelable: true,
|
|
71
|
+
composed: true,
|
|
72
|
+
detail: { checked }
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
_handleSlotChange() {
|
|
76
|
+
const slot = this.shadowRoot?.querySelector("slot:not([name])");
|
|
77
|
+
if (!slot) return;
|
|
78
|
+
slot.assignedElements({ flatten: true }).forEach((el) => {
|
|
79
|
+
if (el.tagName.toLowerCase() === `c4p-add-select-row`) if (this.multi) el.setAttribute("_column-multi", "");
|
|
80
|
+
else el.removeAttribute("_column-multi");
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
updated(changed) {
|
|
84
|
+
if (changed.has("multi")) this._handleSlotChange();
|
|
85
|
+
}
|
|
86
|
+
render() {
|
|
87
|
+
const { title, searchLabel, searchPlaceholder, hideSearch, multi, showSelectAll, itemCount, allSelected, allIndeterminate } = this;
|
|
88
|
+
const columnClasses = classMap({ [`${blockClass}-column`]: true });
|
|
89
|
+
const showHeader = showSelectAll || !!title;
|
|
90
|
+
return html`
|
|
91
|
+
<div class=${columnClasses}>
|
|
92
|
+
<!-- Column search with optional actions slot -->
|
|
93
|
+
${!hideSearch ? html`
|
|
94
|
+
<div
|
|
95
|
+
class="${classMap({
|
|
96
|
+
[`${blockClass}-column__search`]: true,
|
|
97
|
+
[`${blockClass}-column__search--with-actions`]: this._hasActionsSlot
|
|
98
|
+
})}"
|
|
99
|
+
>
|
|
100
|
+
<div
|
|
101
|
+
class="${this._hasActionsSlot ? `${blockClass}-column__search-input` : ""}"
|
|
102
|
+
>
|
|
103
|
+
<cds-search
|
|
104
|
+
label-text=${searchLabel}
|
|
105
|
+
placeholder=${searchPlaceholder}
|
|
106
|
+
size="md"
|
|
107
|
+
@cds-search-input=${this._handleSearch}
|
|
108
|
+
></cds-search>
|
|
109
|
+
</div>
|
|
110
|
+
<slot
|
|
111
|
+
name="actions"
|
|
112
|
+
class="${blockClass}-column__actions"
|
|
113
|
+
@slotchange=${this._handleActionsSlotChange}
|
|
114
|
+
></slot>
|
|
115
|
+
</div>
|
|
116
|
+
` : nothing}
|
|
117
|
+
|
|
118
|
+
<!-- Column header: Select All checkbox or title -->
|
|
119
|
+
${showHeader ? html`
|
|
120
|
+
<div class="${blockClass}-column__header">
|
|
121
|
+
${showSelectAll && multi ? html`
|
|
122
|
+
<cds-checkbox
|
|
123
|
+
class="${blockClass}-column__select-all"
|
|
124
|
+
?checked=${allSelected}
|
|
125
|
+
?indeterminate=${allIndeterminate}
|
|
126
|
+
@cds-checkbox-changed=${this._handleSelectAll}
|
|
127
|
+
>
|
|
128
|
+
<span class="${blockClass}-column__title"
|
|
129
|
+
>${title}</span
|
|
130
|
+
>
|
|
131
|
+
${itemCount > 0 ? html`<cds-tag type="gray" size="sm"
|
|
132
|
+
>${itemCount}</cds-tag
|
|
133
|
+
>` : nothing}
|
|
134
|
+
</cds-checkbox>
|
|
135
|
+
` : html`
|
|
136
|
+
<div class="${blockClass}-column__title-wrapper">
|
|
137
|
+
<span class="${blockClass}-column__title"
|
|
138
|
+
>${title}</span
|
|
139
|
+
>
|
|
140
|
+
${itemCount > 0 ? html`<cds-tag type="gray" size="sm"
|
|
141
|
+
>${itemCount}</cds-tag
|
|
142
|
+
>` : nothing}
|
|
143
|
+
</div>
|
|
144
|
+
`}
|
|
145
|
+
</div>
|
|
146
|
+
` : nothing}
|
|
147
|
+
|
|
148
|
+
<!-- Rows container -->
|
|
149
|
+
<div class="${blockClass}-column__rows" role="rowgroup">
|
|
150
|
+
<slot @slotchange=${this._handleSlotChange}></slot>
|
|
151
|
+
</div>
|
|
152
|
+
</div>
|
|
153
|
+
`;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* The name of the custom event fired when column search changes.
|
|
157
|
+
* detail: { searchTerm: string }
|
|
158
|
+
*/
|
|
159
|
+
static get eventSearch() {
|
|
160
|
+
return `c4p-add-select-column-search`;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* The name of the custom event fired when "Select All" is toggled.
|
|
164
|
+
* detail: { checked: boolean }
|
|
165
|
+
*/
|
|
166
|
+
static get eventSelectAll() {
|
|
167
|
+
return `c4p-add-select-column-select-all`;
|
|
168
|
+
}
|
|
169
|
+
static {
|
|
170
|
+
this.styles = add_select_column_default$1;
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
__decorate([property({ type: String })], CDSAddSelectColumn.prototype, "title", void 0);
|
|
174
|
+
__decorate([property({
|
|
175
|
+
type: String,
|
|
176
|
+
attribute: "search-label"
|
|
177
|
+
})], CDSAddSelectColumn.prototype, "searchLabel", void 0);
|
|
178
|
+
__decorate([property({
|
|
179
|
+
type: String,
|
|
180
|
+
attribute: "search-placeholder"
|
|
181
|
+
})], CDSAddSelectColumn.prototype, "searchPlaceholder", void 0);
|
|
182
|
+
__decorate([property({
|
|
183
|
+
type: Boolean,
|
|
184
|
+
attribute: "hide-search",
|
|
185
|
+
reflect: true
|
|
186
|
+
})], CDSAddSelectColumn.prototype, "hideSearch", void 0);
|
|
187
|
+
__decorate([property({
|
|
188
|
+
type: Boolean,
|
|
189
|
+
reflect: true
|
|
190
|
+
})], CDSAddSelectColumn.prototype, "multi", void 0);
|
|
191
|
+
__decorate([property({
|
|
192
|
+
type: Boolean,
|
|
193
|
+
attribute: "show-select-all",
|
|
194
|
+
reflect: true
|
|
195
|
+
})], CDSAddSelectColumn.prototype, "showSelectAll", void 0);
|
|
196
|
+
__decorate([property({
|
|
197
|
+
type: Number,
|
|
198
|
+
attribute: "item-count"
|
|
199
|
+
})], CDSAddSelectColumn.prototype, "itemCount", void 0);
|
|
200
|
+
__decorate([property({
|
|
201
|
+
type: Boolean,
|
|
202
|
+
attribute: "all-selected",
|
|
203
|
+
reflect: true
|
|
204
|
+
})], CDSAddSelectColumn.prototype, "allSelected", void 0);
|
|
205
|
+
__decorate([property({
|
|
206
|
+
type: Boolean,
|
|
207
|
+
attribute: "all-indeterminate",
|
|
208
|
+
reflect: true
|
|
209
|
+
})], CDSAddSelectColumn.prototype, "allIndeterminate", void 0);
|
|
210
|
+
__decorate([state()], CDSAddSelectColumn.prototype, "_searchTerm", void 0);
|
|
211
|
+
__decorate([state()], CDSAddSelectColumn.prototype, "_hasActionsSlot", void 0);
|
|
212
|
+
CDSAddSelectColumn = __decorate([carbonElement(`c4p-add-select-column`)], CDSAddSelectColumn);
|
|
213
|
+
var add_select_column_default = CDSAddSelectColumn;
|
|
214
|
+
//#endregion
|
|
215
|
+
export { add_select_column_default as default };
|
|
216
|
+
|
|
217
|
+
//# sourceMappingURL=add-select-column.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-select-column.js","names":["styles","customElement"],"sources":["../../../src/components/add-select/add-select-column.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport '@carbon/web-components/es/components/search/index.js';\nimport '@carbon/web-components/es/components/tag/index.js';\nimport '@carbon/web-components/es/components/checkbox/index.js';\nimport { prefix } from '../../globals/settings';\nimport styles from './add-select-column.scss?lit';\n\nconst blockClass = `${prefix}--add-select__next`;\n\n/**\n * Add Select Column component — optional column wrapper providing column-level\n * search, title, and \"Select All\" functionality. Propagates `multi` context to\n * child rows via the `multi` property/attribute.\n * @element c4p-add-select-column\n * @slot default - AddSelectRow elements\n * @slot actions - Custom actions (filter/sort) placed next to column search\n * @fires c4p-add-select-column-search - Fired when column search changes; detail: { searchTerm }\n * @fires c4p-add-select-column-select-all - Fired when \"Select All\" checkbox changes; detail: { checked }\n */\n@customElement(`${prefix}-add-select-column`)\nclass CDSAddSelectColumn extends LitElement {\n /**\n * Column title shown in the header\n */\n @property({ type: String })\n title = '';\n\n /**\n * Label text for the column search input (accessibility)\n */\n @property({ type: String, attribute: 'search-label' })\n searchLabel = 'Search';\n\n /**\n * Placeholder text for the column search input\n */\n @property({ type: String, attribute: 'search-placeholder' })\n searchPlaceholder = 'Search';\n\n /**\n * Whether to hide the column search input\n */\n @property({ type: Boolean, attribute: 'hide-search', reflect: true })\n hideSearch = false;\n\n /**\n * Whether this column uses multi-selection (checkboxes) or single-selection (radio buttons)\n */\n @property({ type: Boolean, reflect: true })\n multi = false;\n\n /**\n * Whether to show the \"Select All\" checkbox (only when multi is true)\n */\n @property({ type: Boolean, attribute: 'show-select-all', reflect: true })\n showSelectAll = false;\n\n /**\n * Total number of items in the column (shown in tag badge)\n */\n @property({ type: Number, attribute: 'item-count' })\n itemCount = 0;\n\n /**\n * Whether all items are currently selected\n */\n @property({ type: Boolean, attribute: 'all-selected', reflect: true })\n allSelected = false;\n\n /**\n * Whether the \"Select All\" checkbox is in an indeterminate state\n */\n @property({ type: Boolean, attribute: 'all-indeterminate', reflect: true })\n allIndeterminate = false;\n\n /** Internal column search term */\n @state()\n private _searchTerm = '';\n\n /** Whether the actions slot has any assigned content */\n @state()\n private _hasActionsSlot = false;\n\n private _handleActionsSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this._hasActionsSlot = slot.assignedElements({ flatten: true }).length > 0;\n }\n\n private _handleSearch(event: CustomEvent) {\n this._searchTerm = (event.detail?.value as string) ?? '';\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSAddSelectColumn).eventSearch,\n {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: { searchTerm: this._searchTerm },\n }\n )\n );\n }\n\n private _handleSelectAll(event: CustomEvent) {\n const checked = !!event.detail?.checked;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSAddSelectColumn).eventSelectAll,\n {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: { checked },\n }\n )\n );\n }\n\n private _handleSlotChange() {\n // Propagate multi to slotted rows\n const slot = this.shadowRoot?.querySelector(\n 'slot:not([name])'\n ) as HTMLSlotElement | null;\n if (!slot) {\n return;\n }\n slot.assignedElements({ flatten: true }).forEach((el) => {\n if (el.tagName.toLowerCase() === `${prefix}-add-select-row`) {\n if (this.multi) {\n el.setAttribute('_column-multi', '');\n } else {\n el.removeAttribute('_column-multi');\n }\n }\n });\n }\n\n updated(changed: Map<string, unknown>) {\n if (changed.has('multi')) {\n this._handleSlotChange();\n }\n }\n\n render() {\n const {\n title,\n searchLabel,\n searchPlaceholder,\n hideSearch,\n multi,\n showSelectAll,\n itemCount,\n allSelected,\n allIndeterminate,\n } = this;\n\n const columnClasses = classMap({\n [`${blockClass}-column`]: true,\n });\n\n const showHeader = showSelectAll || !!title;\n\n return html`\n <div class=${columnClasses}>\n <!-- Column search with optional actions slot -->\n ${!hideSearch\n ? html`\n <div\n class=\"${classMap({\n [`${blockClass}-column__search`]: true,\n [`${blockClass}-column__search--with-actions`]:\n this._hasActionsSlot,\n })}\"\n >\n <div\n class=\"${this._hasActionsSlot\n ? `${blockClass}-column__search-input`\n : ''}\"\n >\n <cds-search\n label-text=${searchLabel}\n placeholder=${searchPlaceholder}\n size=\"md\"\n @cds-search-input=${this._handleSearch}\n ></cds-search>\n </div>\n <slot\n name=\"actions\"\n class=\"${blockClass}-column__actions\"\n @slotchange=${this._handleActionsSlotChange}\n ></slot>\n </div>\n `\n : nothing}\n\n <!-- Column header: Select All checkbox or title -->\n ${showHeader\n ? html`\n <div class=\"${blockClass}-column__header\">\n ${showSelectAll && multi\n ? html`\n <cds-checkbox\n class=\"${blockClass}-column__select-all\"\n ?checked=${allSelected}\n ?indeterminate=${allIndeterminate}\n @cds-checkbox-changed=${this._handleSelectAll}\n >\n <span class=\"${blockClass}-column__title\"\n >${title}</span\n >\n ${itemCount > 0\n ? html`<cds-tag type=\"gray\" size=\"sm\"\n >${itemCount}</cds-tag\n >`\n : nothing}\n </cds-checkbox>\n `\n : html`\n <div class=\"${blockClass}-column__title-wrapper\">\n <span class=\"${blockClass}-column__title\"\n >${title}</span\n >\n ${itemCount > 0\n ? html`<cds-tag type=\"gray\" size=\"sm\"\n >${itemCount}</cds-tag\n >`\n : nothing}\n </div>\n `}\n </div>\n `\n : nothing}\n\n <!-- Rows container -->\n <div class=\"${blockClass}-column__rows\" role=\"rowgroup\">\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n </div>\n `;\n }\n\n /**\n * The name of the custom event fired when column search changes.\n * detail: { searchTerm: string }\n */\n static get eventSearch() {\n return `${prefix}-add-select-column-search`;\n }\n\n /**\n * The name of the custom event fired when \"Select All\" is toggled.\n * detail: { checked: boolean }\n */\n static get eventSelectAll() {\n return `${prefix}-add-select-column-select-all`;\n }\n\n static styles = styles;\n}\n\nexport default CDSAddSelectColumn;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,MAAM,aAAa;;;;;;;;;;;AAYnB,IAAA,qBAAA,MACM,2BAA2B,WAAW;;;eAKlC;qBAMM;2BAMM;oBAMP;eAML;uBAMQ;mBAMJ;qBAME;0BAMK;qBAIG;yBAII;;CAE1B,yBAAiC,GAAU;EACzC,MAAM,OAAO,EAAE;AACf,OAAK,kBAAkB,KAAK,iBAAiB,EAAE,SAAS,MAAM,CAAC,CAAC,SAAS;;CAG3E,cAAsB,OAAoB;AACxC,OAAK,cAAe,MAAM,QAAQ,SAAoB;AACtD,OAAK,cACH,IAAI,YACD,KAAK,YAA0C,aAChD;GACE,SAAS;GACT,YAAY;GACZ,UAAU;GACV,QAAQ,EAAE,YAAY,KAAK,aAAa;GACzC,CACF,CACF;;CAGH,iBAAyB,OAAoB;EAC3C,MAAM,UAAU,CAAC,CAAC,MAAM,QAAQ;AAChC,OAAK,cACH,IAAI,YACD,KAAK,YAA0C,gBAChD;GACE,SAAS;GACT,YAAY;GACZ,UAAU;GACV,QAAQ,EAAE,SAAS;GACpB,CACF,CACF;;CAGH,oBAA4B;EAE1B,MAAM,OAAO,KAAK,YAAY,cAC5B,mBACD;AACD,MAAI,CAAC,KACH;AAEF,OAAK,iBAAiB,EAAE,SAAS,MAAM,CAAC,CAAC,SAAS,OAAO;AACvD,OAAI,GAAG,QAAQ,aAAa,KAAK,qBAC/B,KAAI,KAAK,MACP,IAAG,aAAa,iBAAiB,GAAG;OAEpC,IAAG,gBAAgB,gBAAgB;IAGvC;;CAGJ,QAAQ,SAA+B;AACrC,MAAI,QAAQ,IAAI,QAAQ,CACtB,MAAK,mBAAmB;;CAI5B,SAAS;EACP,MAAM,EACJ,OACA,aACA,mBACA,YACA,OACA,eACA,WACA,aACA,qBACE;EAEJ,MAAM,gBAAgB,SAAS,GAC5B,GAAG,WAAW,WAAW,MAC3B,CAAC;EAEF,MAAM,aAAa,iBAAiB,CAAC,CAAC;AAEtC,SAAO,IAAI;mBACI,cAAc;;UAEvB,CAAC,aACC,IAAI;;yBAES,SAAS;IACf,GAAG,WAAW,mBAAmB;IACjC,GAAG,WAAW,iCACb,KAAK;GACR,CAAC,CAAC;;;2BAGQ,KAAK,kBACV,GAAG,WAAW,yBACd,GAAG;;;iCAGQ,YAAY;kCACX,kBAAkB;;wCAEZ,KAAK,cAAc;;;;;2BAKhC,WAAW;gCACN,KAAK,yBAAyB;;;gBAIlD,QAAQ;;;UAGV,aACE,IAAI;4BACY,WAAW;kBACrB,iBAAiB,QACf,IAAI;;iCAES,WAAW;mCACT,YAAY;yCACN,iBAAiB;gDACV,KAAK,iBAAiB;;uCAE/B,WAAW;6BACrB,MAAM;;0BAET,YAAY,IACV,IAAI;iCACC,UAAU;iCAEf,QAAQ;;wBAGhB,IAAI;oCACY,WAAW;uCACR,WAAW;6BACrB,MAAM;;0BAET,YAAY,IACV,IAAI;iCACC,UAAU;iCAEf,QAAQ;;sBAEd;;gBAGV,QAAQ;;;sBAGE,WAAW;8BACH,KAAK,kBAAkB;;;;;;;;;CAUnD,WAAW,cAAc;AACvB,SAAO;;;;;;CAOT,WAAW,iBAAiB;AAC1B,SAAO;;;gBAGOA;;;YAzOf,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,mBAAA,WAAA,SAAA,KAAA,EAAA;YAM1B,SAAS;CAAE,MAAM;CAAQ,WAAW;CAAgB,CAAC,CAAA,EAAA,mBAAA,WAAA,eAAA,KAAA,EAAA;YAMrD,SAAS;CAAE,MAAM;CAAQ,WAAW;CAAsB,CAAC,CAAA,EAAA,mBAAA,WAAA,qBAAA,KAAA,EAAA;YAM3D,SAAS;CAAE,MAAM;CAAS,WAAW;CAAe,SAAS;CAAM,CAAC,CAAA,EAAA,mBAAA,WAAA,cAAA,KAAA,EAAA;YAMpE,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,mBAAA,WAAA,SAAA,KAAA,EAAA;YAM1C,SAAS;CAAE,MAAM;CAAS,WAAW;CAAmB,SAAS;CAAM,CAAC,CAAA,EAAA,mBAAA,WAAA,iBAAA,KAAA,EAAA;YAMxE,SAAS;CAAE,MAAM;CAAQ,WAAW;CAAc,CAAC,CAAA,EAAA,mBAAA,WAAA,aAAA,KAAA,EAAA;YAMnD,SAAS;CAAE,MAAM;CAAS,WAAW;CAAgB,SAAS;CAAM,CAAC,CAAA,EAAA,mBAAA,WAAA,eAAA,KAAA,EAAA;YAMrE,SAAS;CAAE,MAAM;CAAS,WAAW;CAAqB,SAAS;CAAM,CAAC,CAAA,EAAA,mBAAA,WAAA,oBAAA,KAAA,EAAA;YAI1E,OAAO,CAAA,EAAA,mBAAA,WAAA,eAAA,KAAA,EAAA;YAIP,OAAO,CAAA,EAAA,mBAAA,WAAA,mBAAA,KAAA,EAAA;iCA7DTC,cAAc,wBAA8B,CAAA,EAAA,mBAAA;AAiP7C,IAAA,4BAAe"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2020, 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { css } from "lit";
|
|
9
|
+
//#region src/components/add-select/add-select-column.scss?lit
|
|
10
|
+
var add_select_column_default = css([".c4p--add-select__next{position:relative}.c4p--add-select__next,.c4p--add-select__next__body{block-size:100%;display:flex;flex-direction:column;inline-size:100%}.c4p--add-select__next__header{border-block-end:1px solid var(--cds-border-subtle-01,#c6c6c6);padding-block-end:.5rem;padding-block-start:1rem;padding-inline:1rem}.c4p--add-select__next__search{margin-block-end:1rem}.c4p--add-select__next__search--with-actions{align-items:flex-end;display:flex}.c4p--add-select__next__search-input{flex:1}.c4p--add-select__next__global-actions{align-items:flex-end;display:flex}.c4p--add-select__next__sub-header{align-items:center;display:flex;justify-content:space-between}.c4p--add-select__next__tags{align-items:center;display:flex;gap:.5rem}.c4p--add-select__next__tags-label{color:var(--cds-text-primary,#161616);font-size:var(--cds-heading-compact-02-font-size,1rem);font-weight:var(--cds-heading-compact-02-font-weight,600);letter-spacing:var(--cds-heading-compact-02-letter-spacing,0);line-height:var(--cds-heading-compact-02-line-height,1.375);margin:0}.c4p--add-select__next__sub-header-actions{align-items:center;display:flex;gap:.5rem;margin-inline-start:1rem}.c4p--add-select__next__content{display:flex;flex:1;flex-direction:column;overflow:auto}.c4p--add-select__next-list{display:flex;flex:1;flex-direction:column;overflow-y:auto}@supports (overflow-block:auto){.c4p--add-select__next-list{overflow-block:auto}}.c4p--add-select__next-list:focus{outline:none}.c4p--add-select__next-list-body{display:flex;flex-direction:column}.c4p--add-select__next-list-body--horizontal{align-items:stretch;block-size:100%;flex-direction:row}.c4p--add-select__next-list-body--horizontal .c4p--add-select__next-column{padding-block:1rem;padding-inline:1rem}.c4p--add-select__next-row{border-inline-start:.125rem solid transparent;display:flex;transition:background-color 70ms cubic-bezier(.2,0,.38,.9)}.c4p--add-select__next-row:focus{outline:.125rem solid var(--cds-focus,#0f62fe);outline-offset:-.125rem}.c4p--add-select__next-row:focus:not(:focus-visible){outline:none}.c4p--add-select__next-row--selected{background-color:var(--cds-layer-selected-01,#e0e0e0)}.c4p--add-select__next-row--selected .c4p--add-select__next-row__cell-wrapper{border-block-end-color:var(--cds-border-subtle-selected-01,#c6c6c6)}.c4p--add-select__next-row--disabled{cursor:not-allowed}.c4p--add-select__next-row--disabled .c4p--add-select__next-row__subtitle,.c4p--add-select__next-row--disabled .c4p--add-select__next-row__title{color:var(--cds-text-disabled,hsla(0,0%,9%,.25))}.c4p--add-select__next-row--disabled .c4p--add-select__next-row__icon svg,.c4p--add-select__next-row--disabled .c4p--add-select__next-row__nav-indicator svg,.c4p--add-select__next-row--disabled .c4p--add-select__next-row__view-item-panel svg{fill:var(--cds-icon-disabled,hsla(0,0%,9%,.25))}.c4p--add-select__next-row:hover:not(.c4p--add-select__next-row--disabled){background:var(--cds-layer-hover-01,#e8e8e8)}.c4p--add-select__next-row:hover:not(.c4p--add-select__next-row--disabled) .c4p--add-select__next-row__title{color:var(--cds-link-primary,#0f62fe)}.c4p--add-select__next-row:hover:not(.c4p--add-select__next-row--disabled) .c4p--add-select__next-row__nav-indicator svg,.c4p--add-select__next-row:hover:not(.c4p--add-select__next-row--disabled) .c4p--add-select__next-row__view-item-panel svg{fill:var(--cds-icon-disabled,hsla(0,0%,9%,.25))}.c4p--add-select__next-row--selected:hover:not(.c4p--add-select__next-row--disabled){background:var(--cds-layer-selected-hover-01,#d1d1d1)}.c4p--add-select__next-row--selected:hover:not(.c4p--add-select__next-row--disabled) .c4p--add-select__next-row__title{color:var(--cds-text-primary,#161616)}.c4p--add-select__next-row--selected:hover:not(.c4p--add-select__next-row--disabled) .c4p--add-select__next-row__nav-indicator svg,.c4p--add-select__next-row--selected:hover:not(.c4p--add-select__next-row--disabled) .c4p--add-select__next-row__view-item-panel svg{fill:var(--cds-icon-primary,#161616)}.c4p--add-select__next-row__cell{display:flex;flex:1;flex-direction:column}.c4p--add-select__next-row__cell-wrapper{align-items:center;border-block-end:1px solid var(--cds-border-subtle-01,#c6c6c6);display:flex;justify-content:space-between;min-block-size:3rem;padding-block:.5rem;padding-inline:1rem}.c4p--add-select__next-row__content{align-items:center;align-self:center;display:flex;flex:1}.c4p--add-select__next-row__checkbox{align-self:center;flex:none;margin-inline-end:1rem}.c4p--add-select__next-row__radio{align-self:center}.c4p--add-select__next-row__radio .cds--radio-button__appearance{margin-inline-end:0}.c4p--add-select__next-row__icon{align-items:center;display:flex;margin-inline-end:.5rem}.c4p--add-select__next-row__text{display:flex;flex:1;flex-direction:column}.c4p--add-select__next-row__title{color:var(--cds-text-primary,#161616);display:block;font-size:var(--cds-body-compact-01-font-size,.875rem);font-weight:var(--cds-body-compact-01-font-weight,400);letter-spacing:var(--cds-body-compact-01-letter-spacing,.16px);line-height:var(--cds-body-compact-01-line-height,1.28572)}.c4p--add-select__next-row__subtitle{color:var(--cds-text-secondary,#525252);display:block;font-size:var(--cds-helper-text-01-font-size,.75rem);letter-spacing:var(--cds-helper-text-01-letter-spacing,.32px);line-height:var(--cds-helper-text-01-line-height,1.33333)}.c4p--add-select__next-row__meta{align-items:center;display:flex;margin-inline-start:.5rem}.c4p--add-select__next-row__view-item-panel{margin-inline-start:auto}.c4p--add-select__next-row-item-panel--selected{background-color:var(--cds-layer-hover-01,#e8e8e8);border-inline-start:.125rem solid var(--cds-interactive,#0f62fe)}@media screen and (prefers-reduced-motion:reduce){.c4p--add-select__next-row__nav-indicator{align-items:center;cursor:pointer;display:flex;justify-content:center;margin-inline-start:.5rem;padding-block:.25rem;padding-inline:.25rem;transition:none}.c4p--add-select__next-row__nav-indicator:hover{background-color:var(--cds-background-hover,hsla(0,0%,55%,.12))}.c4p--add-select__next-row__nav-indicator:focus{outline:.125rem solid var(--cds-focus,#0f62fe);outline-offset:-.125rem}.c4p--add-select__next-row__nav-indicator svg{fill:var(--cds-icon-primary,#161616)}}.c4p--add-select__next-row__nav-indicator{align-items:center;cursor:pointer;display:flex;justify-content:center;margin-inline-start:.5rem;padding-block:.25rem;padding-inline:.25rem;transition:background-color 70ms cubic-bezier(.2,0,.38,.9)}.c4p--add-select__next-row__nav-indicator:hover{background-color:var(--cds-background-hover,hsla(0,0%,55%,.12))}.c4p--add-select__next-row__nav-indicator:focus{outline:.125rem solid var(--cds-focus,#0f62fe);outline-offset:-.125rem}.c4p--add-select__next-row__nav-indicator svg{fill:var(--cds-icon-primary,#161616)}.c4p--add-select__next-row--skeleton{cursor:default;pointer-events:none}.c4p--add-select__next-row--skeleton:hover{background:none}.c4p--add-select__next-row--skeleton .c4p--add-select__next-row__skeleton-control{background-color:var(--cds-skeleton-element,#c6c6c6);block-size:1rem;border-radius:.125rem;flex:none;inline-size:1rem;margin-inline-end:1rem}.c4p--add-select__next-row--skeleton .c4p--add-select__next-row__icon .cds--icon--skeleton{block-size:2rem;border-radius:50%;inline-size:2rem}.c4p--add-select__next-row--skeleton .c4p--add-select__next-row__icon .cds--icon--skeleton:before{animation:none;border-radius:50%}.c4p--add-select__next-row--skeleton .c4p--add-select__next-row__skeleton-title{margin-block-end:0}.c4p--add-select__next-column{block-size:100%;border-inline-end:1px solid var(--cds-border-subtle-01,#c6c6c6);display:flex;flex-direction:column;min-inline-size:300px;padding-block:1rem;padding-inline:1rem}.c4p--add-select__next-column:last-child{border-inline-end:none}.c4p--add-select__next-list-body--horizontal .c4p--add-select__next-column:last-child{border-inline-end:1px solid var(--cds-border-subtle-01,#c6c6c6)}.c4p--add-select__next-column__actions,.c4p--add-select__next-column__search--with-actions{align-items:flex-end;display:flex}.c4p--add-select__next-column__search-bar{padding-block-end:0;padding-block-start:1rem;padding-inline:1rem}.c4p--add-select__next-column__search-wrapper{align-items:center;display:flex;gap:0}.c4p--add-select__next-column__search-input{flex:1}.c4p--add-select__next-column__controls{align-items:center;display:flex;gap:0}.c4p--add-select__next-column__filter-button,.c4p--add-select__next-column__sort-button{flex:none}.c4p--add-select__next-column__filter-popover{padding-block:1rem;padding-inline:1rem}.c4p--add-select__next-column__filter-popover .cds--checkbox-wrapper{margin-block-end:.5rem}.c4p--add-select__next-column__filter-popover .cds--checkbox-wrapper:last-child{margin-block-end:0}.c4p--add-select__next-column__header{align-items:center;border-block-end:1px solid var(--cds-border-subtle-01,#c6c6c6);display:flex;padding-block:1rem;padding-inline:1rem}.c4p--add-select__next-column__select-all .cds--checkbox-label{align-items:center;display:flex;gap:0}.c4p--add-select__next-column__select-all .cds--checkbox-label-text{align-items:center;display:flex;gap:.5rem;margin-inline-start:.5rem}.c4p--add-select__next-column__title-wrapper{align-items:center;display:flex;gap:.5rem}.c4p--add-select__next-column__title{font-size:var(--cds-heading-compact-01-font-size,.875rem);font-weight:var(--cds-heading-compact-01-font-weight,600);letter-spacing:var(--cds-heading-compact-01-letter-spacing,.16px);line-height:var(--cds-heading-compact-01-line-height,1.28572)}.c4p--add-select__next-column__rows{display:flex;flex:1;flex-direction:column;overflow-y:auto}@supports (overflow-block:auto){.c4p--add-select__next-column__rows{overflow-block:auto}}.c4p--add-select__next__breadcrumbs{flex-wrap:wrap}.c4p--add-select__next__breadcrumb-item,.c4p--add-select__next__breadcrumbs{align-items:center;display:flex;gap:.25rem}.c4p--add-select__next__breadcrumb-button{background:none;border:none;color:var(--cds-link-primary,#0f62fe);cursor:pointer;font-size:var(--cds-body-compact-01-font-size,.875rem);font-weight:var(--cds-body-compact-01-font-weight,400);letter-spacing:var(--cds-body-compact-01-letter-spacing,.16px);line-height:var(--cds-body-compact-01-line-height,1.28572);padding-block:0;padding-inline:0;text-decoration:none}.c4p--add-select__next__breadcrumb-button:hover{color:var(--cds-link-primary-hover,#0043ce);text-decoration:underline}.c4p--add-select__next__breadcrumb-button:focus{outline:.125rem solid var(--cds-focus,#0f62fe);outline-offset:.125rem}.c4p--add-select__next__breadcrumb-separator{align-items:center;color:var(--cds-text-secondary,#525252);display:flex}.c4p--add-select__next__breadcrumb-separator svg{fill:currentColor}.c4p--add-select__next__breadcrumb-current{color:var(--cds-text-primary,#161616);font-size:var(--cds-body-compact-01-font-size,.875rem);font-weight:var(--cds-body-compact-01-font-weight,400);letter-spacing:var(--cds-body-compact-01-letter-spacing,.16px);line-height:var(--cds-body-compact-01-line-height,1.28572)}.c4p--add-select__next__selection-summary{display:flex;flex-direction:column}.c4p--add-select__next__selection-summary-header{align-items:center;border-block-end:1px solid var(--cds-layer-accent-01,#e0e0e0);display:flex;padding-block-end:.5rem;padding-block-start:1.5rem;padding-inline:1rem}.c4p--add-select__next__selection-summary-title{font-size:var(--cds-heading-compact-02-font-size,1rem);font-weight:var(--cds-heading-compact-02-font-weight,600);letter-spacing:var(--cds-heading-compact-02-letter-spacing,0);line-height:var(--cds-heading-compact-02-line-height,1.375);margin-inline-end:.5rem}.c4p--add-select__next__selection-summary-header-actions{align-items:center;display:flex;gap:.5rem;margin-inline-start:auto}.c4p--add-select__next__selection-summary-item{background-color:var(--cds-layer-01,#f4f4f4);border-block-end:1px solid var(--cds-border-subtle-01,#c6c6c6);position:relative}.c4p--add-select__next__selection-summary-item:hover{background-color:var(--cds-layer-hover-01,#e8e8e8)}.c4p--add-select__next__selection-summary-item--accordion .cds--accordion__item,.c4p--add-select__next__selection-summary-item--accordion .cds--accordion__item:last-child{border-block-end:none;border-block-start:none}.c4p--add-select__next__selection-summary-item--accordion .cds--accordion__heading{min-block-size:unset;padding-block:.75rem;padding-inline-end:1rem}.c4p--add-select__next__selection-summary-item--default .c4p--add-select__next__selection-summary-item-title-wrapper{align-items:center;display:flex;justify-content:space-between;padding-block:.75rem;padding-inline:1rem}.c4p--add-select__next__selection-summary-item--default .c4p--add-select__next__selection-summary-item-content{padding-block-end:.75rem;padding-inline:1rem}.c4p--add-select__next__selection-summary-item--default .c4p--add-select__next__selection-summary-item-title{font-size:var(--cds-heading-compact-01-font-size,.875rem);font-weight:var(--cds-heading-compact-01-font-weight,600);letter-spacing:var(--cds-heading-compact-01-letter-spacing,.16px);line-height:var(--cds-heading-compact-01-line-height,1.28572)}.c4p--add-select__next__selection-summary-item-title-wrapper{align-items:center;display:flex;justify-content:space-between}.c4p--add-select__next__selection-summary-item-selected-item{flex:1}.c4p--add-select__next__selection-summary-item-title{color:var(--cds-text-primary,#161616);font-size:var(--cds-body-compact-01-font-size,.875rem);font-weight:var(--cds-body-compact-01-font-weight,400);letter-spacing:var(--cds-body-compact-01-letter-spacing,.16px);line-height:var(--cds-body-compact-01-line-height,1.28572)}.c4p--add-select__next__selection-summary-item-subtitle{color:var(--cds-text-secondary,#525252);font-size:var(--cds-body-01-font-size,.875rem);font-weight:var(--cds-body-01-font-weight,400);letter-spacing:var(--cds-body-01-letter-spacing,.16px);line-height:var(--cds-body-01-line-height,1.42857)}.c4p--add-select__next__selection-summary-item-entry{margin-block-end:1rem}.c4p--add-select__next__selection-summary-item-header{color:var(--cds-text-secondary,#525252);font-size:var(--cds-label-01-font-size,.75rem);font-weight:var(--cds-label-01-font-weight,400);letter-spacing:var(--cds-label-01-letter-spacing,.32px);line-height:var(--cds-label-01-line-height,1.33333);margin-block-end:.5rem}.c4p--add-select__next__selection-summary-item-body{font-size:var(--cds-body-01-font-size,.875rem);font-weight:var(--cds-body-01-font-weight,400);letter-spacing:var(--cds-body-01-letter-spacing,.16px);line-height:var(--cds-body-01-line-height,1.42857);margin-block-end:1rem}.c4p--add-select__next__selection-summary-item-remove-button-container{align-items:center;display:inline-flex;justify-content:center;padding-inline-start:.5rem}.c4p--add-select__next__selection-summary-item--accordion .c4p--add-select__next__selection-summary-item-remove-button-container{inset-block-start:50%;inset-inline-end:1rem;padding-inline-start:0;position:absolute;transform:translateY(-50%)}.c4p--add-select__next__selection-summary-item-remove-button{opacity:0;transition:opacity 70ms cubic-bezier(.2,0,.38,.9)}@media screen and (prefers-reduced-motion:reduce){.c4p--add-select__next__selection-summary-item-remove-button{transition:none}}.c4p--add-select__next__selection-summary-item:focus-within .c4p--add-select__next__selection-summary-item-remove-button,.c4p--add-select__next__selection-summary-item:hover .c4p--add-select__next__selection-summary-item-remove-button{opacity:1}.c4p--add-select__next__selection-summary-item-content{margin-block-start:0}.c4p--add-select__next__selection-summary .cds--accordion__arrow{transform:rotate(90deg)}.c4p--add-select__next__selection-summary .cds--accordion__item--active .cds--accordion__arrow{transform:rotate(-90deg)}.c4p--add-select__next__selection-summary .cds--accordion--start .cds--accordion__arrow{margin-block:0;margin-inline-end:0;margin-inline-start:1rem}.c4p--add-select__next__selection-summary .cds--accordion--start .cds--accordion__title{margin-inline-end:0;margin-inline-start:.5rem;padding-inline-end:2rem}.c4p--add-select__next__selection-summary .cds--accordion__item--active .cds--accordion__content{margin-block-start:0;padding-block:1rem;padding-inline:1rem}@keyframes add-select-item-panel-entrance{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes add-select-item-panel-exit{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}@keyframes add-select-item-panel-entrance-reduced{0%{opacity:0}to{opacity:1}}@keyframes add-select-item-panel-exit-reduced{0%{opacity:1}to{opacity:0}}.c4p--add-select__next__item-summary-panel{block-size:100%;display:none;inline-size:100%;transform:translateX(0);transition-behavior:allow-discrete;transition-duration:.15s;transition-property:display,opacity,transform}.c4p--add-select__next__item-summary-panel--open{animation:add-select-item-panel-entrance .15s cubic-bezier(0,0,.38,.9) forwards;display:flex;flex-direction:column}@starting-style{.c4p--add-select__next__item-summary-panel--open{opacity:0;transform:translateX(100%)}}@media (prefers-reduced-motion){.c4p--add-select__next__item-summary-panel--open{animation:add-select-item-panel-entrance-reduced .15s cubic-bezier(0,0,.38,.9) forwards}@starting-style{.c4p--add-select__next__item-summary-panel--open{opacity:0;transform:translateX(0)}}}.c4p--add-select__next__item-summary-panel-header{align-items:center;border-block-end:1px solid var(--cds-layer-accent-01,#e0e0e0);display:flex;gap:.5rem;justify-content:space-between;padding-block-end:.5rem;padding-block-start:2rem;padding-inline:1rem}.c4p--add-select__next__item-summary-panel-title{font-size:var(--cds-heading-compact-02-font-size,1rem);font-weight:var(--cds-heading-compact-02-font-weight,600);letter-spacing:var(--cds-heading-compact-02-letter-spacing,0);line-height:var(--cds-heading-compact-02-line-height,1.375)}.c4p--add-select__next__item-summary-panel-body{padding-block:1rem;padding-inline:1rem}.c4p--add-select__next__item-summary-panel-entry{margin-block-end:1rem}.c4p--add-select__next__item-summary-panel-entry-title{font-size:var(--cds-heading-compact-01-font-size,.875rem);font-weight:var(--cds-heading-compact-01-font-weight,600);letter-spacing:var(--cds-heading-compact-01-letter-spacing,.16px);line-height:var(--cds-heading-compact-01-line-height,1.28572)}.c4p--add-select__next__item-summary-panel-entry-body{font-size:var(--cds-body-compact-01-font-size,.875rem);font-weight:var(--cds-body-compact-01-font-weight,400);letter-spacing:var(--cds-body-compact-01-letter-spacing,.16px);line-height:var(--cds-body-compact-01-line-height,1.28572)}:host(c4p-add-select-column){display:block}:host(c4p-add-select-column) .c4p--add-select__next-column{display:flex;flex-direction:column;padding:1rem}:host(c4p-add-select-column) .c4p--add-select__next-column__search{padding:0}:host(c4p-add-select-column) .c4p--add-select__next-column__search--with-actions{align-items:flex-end;display:flex}:host(c4p-add-select-column) .c4p--add-select__next-column__search-input{flex:1}:host(c4p-add-select-column) .c4p--add-select__next-column__actions{align-items:flex-end;display:flex}:host(c4p-add-select-column) .c4p--add-select__next-column__header{align-items:center;border-block-end:1px solid var(--cds-border-subtle-01,#c6c6c6);display:flex;padding:1rem}:host(c4p-add-select-column) .c4p--add-select__next-column__title-wrapper{align-items:center;display:flex;gap:.5rem}:host(c4p-add-select-column) .c4p--add-select__next-column__title{font-size:var(--cds-heading-compact-01-font-size,.875rem);font-weight:var(--cds-heading-compact-01-font-weight,600);letter-spacing:var(--cds-heading-compact-01-letter-spacing,.16px);line-height:var(--cds-heading-compact-01-line-height,1.28572);margin-inline-end:.5rem}:host(c4p-add-select-column) .c4p--add-select__next-column__select-all::part(label){align-items:center;display:flex;gap:.5rem}:host(c4p-add-select-column) .c4p--add-select__next-column__rows{flex:1;overflow:auto}@supports (overflow-block:auto){:host(c4p-add-select-column) .c4p--add-select__next-column__rows{overflow-block:auto}}"]);
|
|
11
|
+
//#endregion
|
|
12
|
+
export { add_select_column_default as default };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=add-select-column.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-select-column.scss.js","names":[],"sources":["../../../src/components/add-select/add-select-column.scss?lit"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n$css--plex: true !default;\n\n@use '@carbon/styles/scss/theme' as *;\n@use '@carbon/styles/scss/spacing' as *;\n@use '@carbon/styles/scss/type';\n\n$prefix: 'c4p';\n\n@use '@carbon/ibm-products-styles/scss/components/AddSelect/add-select_next'\n as *;\n\n:host(#{$prefix}-add-select-column) {\n display: block;\n\n .#{$block-class__next}-column {\n display: flex;\n flex-direction: column;\n padding: $spacing-05;\n }\n\n .#{$block-class__next}-column__search {\n padding: 0;\n\n &--with-actions {\n display: flex;\n align-items: flex-end;\n }\n }\n\n .#{$block-class__next}-column__search-input {\n flex: 1;\n }\n\n .#{$block-class__next}-column__actions {\n display: flex;\n align-items: flex-end;\n }\n\n .#{$block-class__next}-column__header {\n display: flex;\n align-items: center;\n padding: $spacing-05;\n border-block-end: 1px solid $border-subtle-01;\n }\n\n .#{$block-class__next}-column__title-wrapper {\n display: flex;\n align-items: center;\n gap: $spacing-03;\n }\n\n .#{$block-class__next}-column__title {\n @include type.type-style('heading-compact-01');\n\n margin-inline-end: $spacing-03;\n }\n\n // Select all: align slotted title + tag inside the checkbox label\n .#{$block-class__next}-column__select-all {\n &::part(label) {\n display: flex;\n align-items: center;\n gap: $spacing-03;\n }\n }\n\n .#{$block-class__next}-column__rows {\n overflow: auto;\n flex: 1;\n @supports (overflow-block: auto) {\n overflow-block: auto;\n }\n }\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*
|
|
4
|
+
* Copyright IBM Corp. 2026
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import { LitElement } from 'lit';
|
|
10
|
+
import '@carbon/web-components/es/components/icon-button/index.js';
|
|
11
|
+
import type { AddSelectItem } from '@carbon/ibm-products-utilities';
|
|
12
|
+
/**
|
|
13
|
+
* Add Select Item Panel — side panel displaying detailed information about an item.
|
|
14
|
+
* CSS modifier `${blockClass}__item-summary-panel--open` is added when `open` is true,
|
|
15
|
+
* enabling CSS-driven slide-in/out transitions.
|
|
16
|
+
* @element c4p-add-select-item-panel
|
|
17
|
+
* @slot default - Highest priority: replaces all body rendering when populated
|
|
18
|
+
* @slot render-item - Medium priority: receives item for custom rendering
|
|
19
|
+
* @fires c4p-add-select-item-panel-close - Fired when close icon is clicked
|
|
20
|
+
*/
|
|
21
|
+
declare class CDSAddSelectItemPanel extends LitElement {
|
|
22
|
+
/**
|
|
23
|
+
* Panel title
|
|
24
|
+
*/
|
|
25
|
+
title: string;
|
|
26
|
+
/**
|
|
27
|
+
* Item data (set via JS property)
|
|
28
|
+
*/
|
|
29
|
+
item: AddSelectItem | null;
|
|
30
|
+
/**
|
|
31
|
+
* Controls panel visibility via CSS modifier class (enables CSS transitions)
|
|
32
|
+
*/
|
|
33
|
+
open: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Accessible label for the close icon button
|
|
36
|
+
*/
|
|
37
|
+
closeIconDescription: string;
|
|
38
|
+
/**
|
|
39
|
+
* Whether to show the close button
|
|
40
|
+
*/
|
|
41
|
+
showCloseButton: boolean;
|
|
42
|
+
private _handleClose;
|
|
43
|
+
private _renderDefaultContent;
|
|
44
|
+
/** Whether the default slot has assigned elements */
|
|
45
|
+
private _hasDefaultSlot;
|
|
46
|
+
/** Whether the render-item slot has assigned elements */
|
|
47
|
+
private _hasRenderItemSlot;
|
|
48
|
+
private _handleDefaultSlotChange;
|
|
49
|
+
private _handleRenderItemSlotChange;
|
|
50
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
51
|
+
/**
|
|
52
|
+
* The name of the custom event fired when the close icon is clicked.
|
|
53
|
+
*/
|
|
54
|
+
static get eventClose(): string;
|
|
55
|
+
static styles: any;
|
|
56
|
+
}
|
|
57
|
+
export default CDSAddSelectItemPanel;
|
|
58
|
+
//# sourceMappingURL=add-select-item-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-select-item-panel.d.ts","sourceRoot":"","sources":["../../../src/components/add-select/add-select-item-panel.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAC;AAIhD,OAAO,2DAA2D,CAAC;AAInE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAKpE;;;;;;;;GAQG;AACH,cACM,qBAAsB,SAAQ,UAAU;IAC5C;;OAEG;IAEH,KAAK,SAAkB;IAEvB;;OAEG;IAEH,IAAI,EAAE,aAAa,GAAG,IAAI,CAAQ;IAElC;;OAEG;IAEH,IAAI,UAAS;IAEb;;OAEG;IAEH,oBAAoB,SAAW;IAE/B;;OAEG;IAEH,eAAe,UAAQ;IAEvB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,qBAAqB;IA6B7B,qDAAqD;IAErD,OAAO,CAAC,eAAe,CAAS;IAEhC,yDAAyD;IAEzD,OAAO,CAAC,kBAAkB,CAAS;IAEnC,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,2BAA2B;IAMnC,MAAM;IAwDN;;OAEG;IACH,MAAM,KAAK,UAAU,WAEpB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2020, 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import "../../globals/settings.js";
|
|
9
|
+
import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.127.0/helpers/decorate.js";
|
|
10
|
+
import add_select_item_panel_default$1 from "./add-select-item-panel.scss.js";
|
|
11
|
+
import { classMap } from "lit/directives/class-map.js";
|
|
12
|
+
import { LitElement, html, nothing } from "lit";
|
|
13
|
+
import { property, state } from "lit/decorators.js";
|
|
14
|
+
import { carbonElement } from "@carbon/web-components/es/globals/decorators/carbon-element.js";
|
|
15
|
+
import Close16 from "@carbon/icons/es/close/16";
|
|
16
|
+
import { iconLoader } from "@carbon/web-components/es/globals/internal/icon-loader.js";
|
|
17
|
+
import "@carbon/web-components/es/components/icon-button/index.js";
|
|
18
|
+
//#region src/components/add-select/add-select-item-panel.ts
|
|
19
|
+
/**
|
|
20
|
+
* @license
|
|
21
|
+
*
|
|
22
|
+
* Copyright IBM Corp. 2026
|
|
23
|
+
*
|
|
24
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
25
|
+
* LICENSE file in the root directory of this source tree.
|
|
26
|
+
*/
|
|
27
|
+
const blockClass = `c4p--add-select__next`;
|
|
28
|
+
/**
|
|
29
|
+
* Add Select Item Panel — side panel displaying detailed information about an item.
|
|
30
|
+
* CSS modifier `${blockClass}__item-summary-panel--open` is added when `open` is true,
|
|
31
|
+
* enabling CSS-driven slide-in/out transitions.
|
|
32
|
+
* @element c4p-add-select-item-panel
|
|
33
|
+
* @slot default - Highest priority: replaces all body rendering when populated
|
|
34
|
+
* @slot render-item - Medium priority: receives item for custom rendering
|
|
35
|
+
* @fires c4p-add-select-item-panel-close - Fired when close icon is clicked
|
|
36
|
+
*/
|
|
37
|
+
let CDSAddSelectItemPanel = class CDSAddSelectItemPanel extends LitElement {
|
|
38
|
+
constructor(..._args) {
|
|
39
|
+
super(..._args);
|
|
40
|
+
this.title = "Item details";
|
|
41
|
+
this.item = null;
|
|
42
|
+
this.open = false;
|
|
43
|
+
this.closeIconDescription = "Close";
|
|
44
|
+
this.showCloseButton = true;
|
|
45
|
+
this._hasDefaultSlot = false;
|
|
46
|
+
this._hasRenderItemSlot = false;
|
|
47
|
+
}
|
|
48
|
+
_handleClose() {
|
|
49
|
+
this.dispatchEvent(new CustomEvent(this.constructor.eventClose, {
|
|
50
|
+
bubbles: true,
|
|
51
|
+
cancelable: true,
|
|
52
|
+
composed: true
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
_renderDefaultContent() {
|
|
56
|
+
const { item } = this;
|
|
57
|
+
if (!item) return nothing;
|
|
58
|
+
const { itemDetails } = item;
|
|
59
|
+
if (!itemDetails || !Array.isArray(itemDetails) || itemDetails.length === 0) return nothing;
|
|
60
|
+
return html`
|
|
61
|
+
${itemDetails.map(({ label, value: val }) => html`
|
|
62
|
+
<div class="${blockClass}__item-summary-panel-entry">
|
|
63
|
+
<p class="${blockClass}__item-summary-panel-entry-title">
|
|
64
|
+
${label}
|
|
65
|
+
</p>
|
|
66
|
+
<p class="${blockClass}__item-summary-panel-entry-body">
|
|
67
|
+
${String(val)}
|
|
68
|
+
</p>
|
|
69
|
+
</div>
|
|
70
|
+
`)}
|
|
71
|
+
`;
|
|
72
|
+
}
|
|
73
|
+
_handleDefaultSlotChange(e) {
|
|
74
|
+
const slot = e.target;
|
|
75
|
+
this._hasDefaultSlot = slot.assignedElements({ flatten: true }).length > 0;
|
|
76
|
+
}
|
|
77
|
+
_handleRenderItemSlotChange(e) {
|
|
78
|
+
const slot = e.target;
|
|
79
|
+
this._hasRenderItemSlot = slot.assignedElements({ flatten: true }).length > 0;
|
|
80
|
+
}
|
|
81
|
+
render() {
|
|
82
|
+
const { title, open, closeIconDescription, showCloseButton } = this;
|
|
83
|
+
const panelClasses = classMap({
|
|
84
|
+
[`${blockClass}__item-summary-panel`]: true,
|
|
85
|
+
[`${blockClass}__item-summary-panel--open`]: open
|
|
86
|
+
});
|
|
87
|
+
const showDefault = this._hasDefaultSlot;
|
|
88
|
+
const showRenderItem = !showDefault && this._hasRenderItemSlot;
|
|
89
|
+
const showItemDetails = !showDefault && !showRenderItem;
|
|
90
|
+
return html`
|
|
91
|
+
<div class=${panelClasses}>
|
|
92
|
+
<!-- Header -->
|
|
93
|
+
<div class="${blockClass}__item-summary-panel-header">
|
|
94
|
+
<p class="${blockClass}__item-summary-panel-title">${title}</p>
|
|
95
|
+
${showCloseButton ? html`
|
|
96
|
+
<cds-icon-button
|
|
97
|
+
tooltip-text=${closeIconDescription}
|
|
98
|
+
autoalign
|
|
99
|
+
kind="ghost"
|
|
100
|
+
size="sm"
|
|
101
|
+
class="${blockClass}__item-summary-panel-close"
|
|
102
|
+
@click=${this._handleClose}
|
|
103
|
+
>
|
|
104
|
+
${iconLoader(Close16, { slot: "icon" })}
|
|
105
|
+
</cds-icon-button>
|
|
106
|
+
` : nothing}
|
|
107
|
+
</div>
|
|
108
|
+
|
|
109
|
+
<!-- Body: each slot exists once; wrappers hide/show via display:none -->
|
|
110
|
+
<div class="${blockClass}__item-summary-panel-body">
|
|
111
|
+
<!-- default slot — always in DOM -->
|
|
112
|
+
<div style=${showDefault ? "" : "display:none"}>
|
|
113
|
+
<slot @slotchange=${this._handleDefaultSlotChange}></slot>
|
|
114
|
+
</div>
|
|
115
|
+
<!-- render-item slot — always in DOM -->
|
|
116
|
+
<div style=${showRenderItem ? "" : "display:none"}>
|
|
117
|
+
<slot
|
|
118
|
+
name="render-item"
|
|
119
|
+
@slotchange=${this._handleRenderItemSlotChange}
|
|
120
|
+
></slot>
|
|
121
|
+
</div>
|
|
122
|
+
<!-- default item details — shown when no slot content -->
|
|
123
|
+
<div style=${showItemDetails ? "" : "display:none"}>
|
|
124
|
+
${this._renderDefaultContent()}
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
`;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* The name of the custom event fired when the close icon is clicked.
|
|
132
|
+
*/
|
|
133
|
+
static get eventClose() {
|
|
134
|
+
return `c4p-add-select-item-panel-close`;
|
|
135
|
+
}
|
|
136
|
+
static {
|
|
137
|
+
this.styles = add_select_item_panel_default$1;
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
__decorate([property({ type: String })], CDSAddSelectItemPanel.prototype, "title", void 0);
|
|
141
|
+
__decorate([property({ attribute: false })], CDSAddSelectItemPanel.prototype, "item", void 0);
|
|
142
|
+
__decorate([property({
|
|
143
|
+
type: Boolean,
|
|
144
|
+
reflect: true
|
|
145
|
+
})], CDSAddSelectItemPanel.prototype, "open", void 0);
|
|
146
|
+
__decorate([property({
|
|
147
|
+
type: String,
|
|
148
|
+
attribute: "close-icon-description"
|
|
149
|
+
})], CDSAddSelectItemPanel.prototype, "closeIconDescription", void 0);
|
|
150
|
+
__decorate([property({
|
|
151
|
+
type: Boolean,
|
|
152
|
+
attribute: "show-close-button",
|
|
153
|
+
reflect: true
|
|
154
|
+
})], CDSAddSelectItemPanel.prototype, "showCloseButton", void 0);
|
|
155
|
+
__decorate([state()], CDSAddSelectItemPanel.prototype, "_hasDefaultSlot", void 0);
|
|
156
|
+
__decorate([state()], CDSAddSelectItemPanel.prototype, "_hasRenderItemSlot", void 0);
|
|
157
|
+
CDSAddSelectItemPanel = __decorate([carbonElement(`c4p-add-select-item-panel`)], CDSAddSelectItemPanel);
|
|
158
|
+
var add_select_item_panel_default = CDSAddSelectItemPanel;
|
|
159
|
+
//#endregion
|
|
160
|
+
export { add_select_item_panel_default as default };
|
|
161
|
+
|
|
162
|
+
//# sourceMappingURL=add-select-item-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-select-item-panel.js","names":["styles","customElement"],"sources":["../../../src/components/add-select/add-select-item-panel.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { LitElement, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { carbonElement as customElement } from '@carbon/web-components/es/globals/decorators/carbon-element.js';\nimport '@carbon/web-components/es/components/icon-button/index.js';\nimport { iconLoader } from '@carbon/web-components/es/globals/internal/icon-loader.js';\nimport Close16 from '@carbon/icons/es/close/16';\nimport { prefix } from '../../globals/settings';\nimport type { AddSelectItem } from '@carbon/ibm-products-utilities';\nimport styles from './add-select-item-panel.scss?lit';\n\nconst blockClass = `${prefix}--add-select__next`;\n\n/**\n * Add Select Item Panel — side panel displaying detailed information about an item.\n * CSS modifier `${blockClass}__item-summary-panel--open` is added when `open` is true,\n * enabling CSS-driven slide-in/out transitions.\n * @element c4p-add-select-item-panel\n * @slot default - Highest priority: replaces all body rendering when populated\n * @slot render-item - Medium priority: receives item for custom rendering\n * @fires c4p-add-select-item-panel-close - Fired when close icon is clicked\n */\n@customElement(`${prefix}-add-select-item-panel`)\nclass CDSAddSelectItemPanel extends LitElement {\n /**\n * Panel title\n */\n @property({ type: String })\n title = 'Item details';\n\n /**\n * Item data (set via JS property)\n */\n @property({ attribute: false })\n item: AddSelectItem | null = null;\n\n /**\n * Controls panel visibility via CSS modifier class (enables CSS transitions)\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Accessible label for the close icon button\n */\n @property({ type: String, attribute: 'close-icon-description' })\n closeIconDescription = 'Close';\n\n /**\n * Whether to show the close button\n */\n @property({ type: Boolean, attribute: 'show-close-button', reflect: true })\n showCloseButton = true;\n\n private _handleClose() {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSAddSelectItemPanel).eventClose,\n { bubbles: true, cancelable: true, composed: true }\n )\n );\n }\n\n private _renderDefaultContent() {\n const { item } = this;\n if (!item) {\n return nothing;\n }\n const { itemDetails } = item;\n if (\n !itemDetails ||\n !Array.isArray(itemDetails) ||\n itemDetails.length === 0\n ) {\n return nothing;\n }\n return html`\n ${itemDetails.map(\n ({ label, value: val }) => html`\n <div class=\"${blockClass}__item-summary-panel-entry\">\n <p class=\"${blockClass}__item-summary-panel-entry-title\">\n ${label}\n </p>\n <p class=\"${blockClass}__item-summary-panel-entry-body\">\n ${String(val)}\n </p>\n </div>\n `\n )}\n `;\n }\n\n /** Whether the default slot has assigned elements */\n @state()\n private _hasDefaultSlot = false;\n\n /** Whether the render-item slot has assigned elements */\n @state()\n private _hasRenderItemSlot = false;\n\n private _handleDefaultSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this._hasDefaultSlot = slot.assignedElements({ flatten: true }).length > 0;\n }\n\n private _handleRenderItemSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this._hasRenderItemSlot =\n slot.assignedElements({ flatten: true }).length > 0;\n }\n\n render() {\n const { title, open, closeIconDescription, showCloseButton } = this;\n\n const panelClasses = classMap({\n [`${blockClass}__item-summary-panel`]: true,\n [`${blockClass}__item-summary-panel--open`]: open,\n });\n\n // Priority: default slot > render-item slot > default item details\n const showDefault = this._hasDefaultSlot;\n const showRenderItem = !showDefault && this._hasRenderItemSlot;\n const showItemDetails = !showDefault && !showRenderItem;\n\n return html`\n <div class=${panelClasses}>\n <!-- Header -->\n <div class=\"${blockClass}__item-summary-panel-header\">\n <p class=\"${blockClass}__item-summary-panel-title\">${title}</p>\n ${showCloseButton\n ? html`\n <cds-icon-button\n tooltip-text=${closeIconDescription}\n autoalign\n kind=\"ghost\"\n size=\"sm\"\n class=\"${blockClass}__item-summary-panel-close\"\n @click=${this._handleClose}\n >\n ${iconLoader(Close16, { slot: 'icon' })}\n </cds-icon-button>\n `\n : nothing}\n </div>\n\n <!-- Body: each slot exists once; wrappers hide/show via display:none -->\n <div class=\"${blockClass}__item-summary-panel-body\">\n <!-- default slot — always in DOM -->\n <div style=${showDefault ? '' : 'display:none'}>\n <slot @slotchange=${this._handleDefaultSlotChange}></slot>\n </div>\n <!-- render-item slot — always in DOM -->\n <div style=${showRenderItem ? '' : 'display:none'}>\n <slot\n name=\"render-item\"\n @slotchange=${this._handleRenderItemSlotChange}\n ></slot>\n </div>\n <!-- default item details — shown when no slot content -->\n <div style=${showItemDetails ? '' : 'display:none'}>\n ${this._renderDefaultContent()}\n </div>\n </div>\n </div>\n `;\n }\n\n /**\n * The name of the custom event fired when the close icon is clicked.\n */\n static get eventClose() {\n return `${prefix}-add-select-item-panel-close`;\n }\n\n static styles = styles;\n}\n\nexport default CDSAddSelectItemPanel;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,MAAM,aAAa;;;;;;;;;;AAWnB,IAAA,wBAAA,MACM,8BAA8B,WAAW;;;eAKrC;cAMqB;cAMtB;8BAMgB;yBAML;yBA0CQ;4BAIG;;CA5C7B,eAAuB;AACrB,OAAK,cACH,IAAI,YACD,KAAK,YAA6C,YACnD;GAAE,SAAS;GAAM,YAAY;GAAM,UAAU;GAAM,CACpD,CACF;;CAGH,wBAAgC;EAC9B,MAAM,EAAE,SAAS;AACjB,MAAI,CAAC,KACH,QAAO;EAET,MAAM,EAAE,gBAAgB;AACxB,MACE,CAAC,eACD,CAAC,MAAM,QAAQ,YAAY,IAC3B,YAAY,WAAW,EAEvB,QAAO;AAET,SAAO,IAAI;QACP,YAAY,KACX,EAAE,OAAO,OAAO,UAAU,IAAI;wBACf,WAAW;wBACX,WAAW;gBACnB,MAAM;;wBAEE,WAAW;gBACnB,OAAO,IAAI,CAAC;;;UAIrB,CAAC;;;CAYN,yBAAiC,GAAU;EACzC,MAAM,OAAO,EAAE;AACf,OAAK,kBAAkB,KAAK,iBAAiB,EAAE,SAAS,MAAM,CAAC,CAAC,SAAS;;CAG3E,4BAAoC,GAAU;EAC5C,MAAM,OAAO,EAAE;AACf,OAAK,qBACH,KAAK,iBAAiB,EAAE,SAAS,MAAM,CAAC,CAAC,SAAS;;CAGtD,SAAS;EACP,MAAM,EAAE,OAAO,MAAM,sBAAsB,oBAAoB;EAE/D,MAAM,eAAe,SAAS;IAC3B,GAAG,WAAW,wBAAwB;IACtC,GAAG,WAAW,8BAA8B;GAC9C,CAAC;EAGF,MAAM,cAAc,KAAK;EACzB,MAAM,iBAAiB,CAAC,eAAe,KAAK;EAC5C,MAAM,kBAAkB,CAAC,eAAe,CAAC;AAEzC,SAAO,IAAI;mBACI,aAAa;;sBAEV,WAAW;sBACX,WAAW,8BAA8B,MAAM;YACzD,kBACE,IAAI;;iCAEe,qBAAqB;;;;2BAI3B,WAAW;2BACX,KAAK,aAAa;;oBAEzB,WAAW,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAC;;kBAG5C,QAAQ;;;;sBAIA,WAAW;;uBAEV,cAAc,KAAK,eAAe;gCACzB,KAAK,yBAAyB;;;uBAGvC,iBAAiB,KAAK,eAAe;;;4BAGhC,KAAK,4BAA4B;;;;uBAItC,kBAAkB,KAAK,eAAe;cAC/C,KAAK,uBAAuB,CAAC;;;;;;;;;CAUzC,WAAW,aAAa;AACtB,SAAO;;;gBAGOA;;;YAnJf,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,sBAAA,WAAA,SAAA,KAAA,EAAA;YAM1B,SAAS,EAAE,WAAW,OAAO,CAAC,CAAA,EAAA,sBAAA,WAAA,QAAA,KAAA,EAAA;YAM9B,SAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,sBAAA,WAAA,QAAA,KAAA,EAAA;YAM1C,SAAS;CAAE,MAAM;CAAQ,WAAW;CAA0B,CAAC,CAAA,EAAA,sBAAA,WAAA,wBAAA,KAAA,EAAA;YAM/D,SAAS;CAAE,MAAM;CAAS,WAAW;CAAqB,SAAS;CAAM,CAAC,CAAA,EAAA,sBAAA,WAAA,mBAAA,KAAA,EAAA;YA0C1E,OAAO,CAAA,EAAA,sBAAA,WAAA,mBAAA,KAAA,EAAA;YAIP,OAAO,CAAA,EAAA,sBAAA,WAAA,sBAAA,KAAA,EAAA;oCA3ETC,cAAc,4BAAkC,CAAA,EAAA,sBAAA;AA2JjD,IAAA,gCAAe"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2020, 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { css } from "lit";
|
|
9
|
+
//#region src/components/add-select/add-select-item-panel.scss?lit
|
|
10
|
+
var add_select_item_panel_default = css([".c4p--add-select__next{position:relative}.c4p--add-select__next,.c4p--add-select__next__body{block-size:100%;display:flex;flex-direction:column;inline-size:100%}.c4p--add-select__next__header{border-block-end:1px solid var(--cds-border-subtle-01,#c6c6c6);padding-block-end:.5rem;padding-block-start:1rem;padding-inline:1rem}.c4p--add-select__next__search{margin-block-end:1rem}.c4p--add-select__next__search--with-actions{align-items:flex-end;display:flex}.c4p--add-select__next__search-input{flex:1}.c4p--add-select__next__global-actions{align-items:flex-end;display:flex}.c4p--add-select__next__sub-header{align-items:center;display:flex;justify-content:space-between}.c4p--add-select__next__tags{align-items:center;display:flex;gap:.5rem}.c4p--add-select__next__tags-label{color:var(--cds-text-primary,#161616);font-size:var(--cds-heading-compact-02-font-size,1rem);font-weight:var(--cds-heading-compact-02-font-weight,600);letter-spacing:var(--cds-heading-compact-02-letter-spacing,0);line-height:var(--cds-heading-compact-02-line-height,1.375);margin:0}.c4p--add-select__next__sub-header-actions{align-items:center;display:flex;gap:.5rem;margin-inline-start:1rem}.c4p--add-select__next__content{display:flex;flex:1;flex-direction:column;overflow:auto}.c4p--add-select__next-list{display:flex;flex:1;flex-direction:column;overflow-y:auto}@supports (overflow-block:auto){.c4p--add-select__next-list{overflow-block:auto}}.c4p--add-select__next-list:focus{outline:none}.c4p--add-select__next-list-body{display:flex;flex-direction:column}.c4p--add-select__next-list-body--horizontal{align-items:stretch;block-size:100%;flex-direction:row}.c4p--add-select__next-list-body--horizontal .c4p--add-select__next-column{padding-block:1rem;padding-inline:1rem}.c4p--add-select__next-row{border-inline-start:.125rem solid transparent;display:flex;transition:background-color 70ms cubic-bezier(.2,0,.38,.9)}.c4p--add-select__next-row:focus{outline:.125rem solid var(--cds-focus,#0f62fe);outline-offset:-.125rem}.c4p--add-select__next-row:focus:not(:focus-visible){outline:none}.c4p--add-select__next-row--selected{background-color:var(--cds-layer-selected-01,#e0e0e0)}.c4p--add-select__next-row--selected .c4p--add-select__next-row__cell-wrapper{border-block-end-color:var(--cds-border-subtle-selected-01,#c6c6c6)}.c4p--add-select__next-row--disabled{cursor:not-allowed}.c4p--add-select__next-row--disabled .c4p--add-select__next-row__subtitle,.c4p--add-select__next-row--disabled .c4p--add-select__next-row__title{color:var(--cds-text-disabled,hsla(0,0%,9%,.25))}.c4p--add-select__next-row--disabled .c4p--add-select__next-row__icon svg,.c4p--add-select__next-row--disabled .c4p--add-select__next-row__nav-indicator svg,.c4p--add-select__next-row--disabled .c4p--add-select__next-row__view-item-panel svg{fill:var(--cds-icon-disabled,hsla(0,0%,9%,.25))}.c4p--add-select__next-row:hover:not(.c4p--add-select__next-row--disabled){background:var(--cds-layer-hover-01,#e8e8e8)}.c4p--add-select__next-row:hover:not(.c4p--add-select__next-row--disabled) .c4p--add-select__next-row__title{color:var(--cds-link-primary,#0f62fe)}.c4p--add-select__next-row:hover:not(.c4p--add-select__next-row--disabled) .c4p--add-select__next-row__nav-indicator svg,.c4p--add-select__next-row:hover:not(.c4p--add-select__next-row--disabled) .c4p--add-select__next-row__view-item-panel svg{fill:var(--cds-icon-disabled,hsla(0,0%,9%,.25))}.c4p--add-select__next-row--selected:hover:not(.c4p--add-select__next-row--disabled){background:var(--cds-layer-selected-hover-01,#d1d1d1)}.c4p--add-select__next-row--selected:hover:not(.c4p--add-select__next-row--disabled) .c4p--add-select__next-row__title{color:var(--cds-text-primary,#161616)}.c4p--add-select__next-row--selected:hover:not(.c4p--add-select__next-row--disabled) .c4p--add-select__next-row__nav-indicator svg,.c4p--add-select__next-row--selected:hover:not(.c4p--add-select__next-row--disabled) .c4p--add-select__next-row__view-item-panel svg{fill:var(--cds-icon-primary,#161616)}.c4p--add-select__next-row__cell{display:flex;flex:1;flex-direction:column}.c4p--add-select__next-row__cell-wrapper{align-items:center;border-block-end:1px solid var(--cds-border-subtle-01,#c6c6c6);display:flex;justify-content:space-between;min-block-size:3rem;padding-block:.5rem;padding-inline:1rem}.c4p--add-select__next-row__content{align-items:center;align-self:center;display:flex;flex:1}.c4p--add-select__next-row__checkbox{align-self:center;flex:none;margin-inline-end:1rem}.c4p--add-select__next-row__radio{align-self:center}.c4p--add-select__next-row__radio .cds--radio-button__appearance{margin-inline-end:0}.c4p--add-select__next-row__icon{align-items:center;display:flex;margin-inline-end:.5rem}.c4p--add-select__next-row__text{display:flex;flex:1;flex-direction:column}.c4p--add-select__next-row__title{color:var(--cds-text-primary,#161616);display:block;font-size:var(--cds-body-compact-01-font-size,.875rem);font-weight:var(--cds-body-compact-01-font-weight,400);letter-spacing:var(--cds-body-compact-01-letter-spacing,.16px);line-height:var(--cds-body-compact-01-line-height,1.28572)}.c4p--add-select__next-row__subtitle{color:var(--cds-text-secondary,#525252);display:block;font-size:var(--cds-helper-text-01-font-size,.75rem);letter-spacing:var(--cds-helper-text-01-letter-spacing,.32px);line-height:var(--cds-helper-text-01-line-height,1.33333)}.c4p--add-select__next-row__meta{align-items:center;display:flex;margin-inline-start:.5rem}.c4p--add-select__next-row__view-item-panel{margin-inline-start:auto}.c4p--add-select__next-row-item-panel--selected{background-color:var(--cds-layer-hover-01,#e8e8e8);border-inline-start:.125rem solid var(--cds-interactive,#0f62fe)}@media screen and (prefers-reduced-motion:reduce){.c4p--add-select__next-row__nav-indicator{align-items:center;cursor:pointer;display:flex;justify-content:center;margin-inline-start:.5rem;padding-block:.25rem;padding-inline:.25rem;transition:none}.c4p--add-select__next-row__nav-indicator:hover{background-color:var(--cds-background-hover,hsla(0,0%,55%,.12))}.c4p--add-select__next-row__nav-indicator:focus{outline:.125rem solid var(--cds-focus,#0f62fe);outline-offset:-.125rem}.c4p--add-select__next-row__nav-indicator svg{fill:var(--cds-icon-primary,#161616)}}.c4p--add-select__next-row__nav-indicator{align-items:center;cursor:pointer;display:flex;justify-content:center;margin-inline-start:.5rem;padding-block:.25rem;padding-inline:.25rem;transition:background-color 70ms cubic-bezier(.2,0,.38,.9)}.c4p--add-select__next-row__nav-indicator:hover{background-color:var(--cds-background-hover,hsla(0,0%,55%,.12))}.c4p--add-select__next-row__nav-indicator:focus{outline:.125rem solid var(--cds-focus,#0f62fe);outline-offset:-.125rem}.c4p--add-select__next-row__nav-indicator svg{fill:var(--cds-icon-primary,#161616)}.c4p--add-select__next-row--skeleton{cursor:default;pointer-events:none}.c4p--add-select__next-row--skeleton:hover{background:none}.c4p--add-select__next-row--skeleton .c4p--add-select__next-row__skeleton-control{background-color:var(--cds-skeleton-element,#c6c6c6);block-size:1rem;border-radius:.125rem;flex:none;inline-size:1rem;margin-inline-end:1rem}.c4p--add-select__next-row--skeleton .c4p--add-select__next-row__icon .cds--icon--skeleton{block-size:2rem;border-radius:50%;inline-size:2rem}.c4p--add-select__next-row--skeleton .c4p--add-select__next-row__icon .cds--icon--skeleton:before{animation:none;border-radius:50%}.c4p--add-select__next-row--skeleton .c4p--add-select__next-row__skeleton-title{margin-block-end:0}.c4p--add-select__next-column{block-size:100%;border-inline-end:1px solid var(--cds-border-subtle-01,#c6c6c6);display:flex;flex-direction:column;min-inline-size:300px;padding-block:1rem;padding-inline:1rem}.c4p--add-select__next-column:last-child{border-inline-end:none}.c4p--add-select__next-list-body--horizontal .c4p--add-select__next-column:last-child{border-inline-end:1px solid var(--cds-border-subtle-01,#c6c6c6)}.c4p--add-select__next-column__actions,.c4p--add-select__next-column__search--with-actions{align-items:flex-end;display:flex}.c4p--add-select__next-column__search-bar{padding-block-end:0;padding-block-start:1rem;padding-inline:1rem}.c4p--add-select__next-column__search-wrapper{align-items:center;display:flex;gap:0}.c4p--add-select__next-column__search-input{flex:1}.c4p--add-select__next-column__controls{align-items:center;display:flex;gap:0}.c4p--add-select__next-column__filter-button,.c4p--add-select__next-column__sort-button{flex:none}.c4p--add-select__next-column__filter-popover{padding-block:1rem;padding-inline:1rem}.c4p--add-select__next-column__filter-popover .cds--checkbox-wrapper{margin-block-end:.5rem}.c4p--add-select__next-column__filter-popover .cds--checkbox-wrapper:last-child{margin-block-end:0}.c4p--add-select__next-column__header{align-items:center;border-block-end:1px solid var(--cds-border-subtle-01,#c6c6c6);display:flex;padding-block:1rem;padding-inline:1rem}.c4p--add-select__next-column__select-all .cds--checkbox-label{align-items:center;display:flex;gap:0}.c4p--add-select__next-column__select-all .cds--checkbox-label-text{align-items:center;display:flex;gap:.5rem;margin-inline-start:.5rem}.c4p--add-select__next-column__title-wrapper{align-items:center;display:flex;gap:.5rem}.c4p--add-select__next-column__title{font-size:var(--cds-heading-compact-01-font-size,.875rem);font-weight:var(--cds-heading-compact-01-font-weight,600);letter-spacing:var(--cds-heading-compact-01-letter-spacing,.16px);line-height:var(--cds-heading-compact-01-line-height,1.28572)}.c4p--add-select__next-column__rows{display:flex;flex:1;flex-direction:column;overflow-y:auto}@supports (overflow-block:auto){.c4p--add-select__next-column__rows{overflow-block:auto}}.c4p--add-select__next__breadcrumbs{flex-wrap:wrap}.c4p--add-select__next__breadcrumb-item,.c4p--add-select__next__breadcrumbs{align-items:center;display:flex;gap:.25rem}.c4p--add-select__next__breadcrumb-button{background:none;border:none;color:var(--cds-link-primary,#0f62fe);cursor:pointer;font-size:var(--cds-body-compact-01-font-size,.875rem);font-weight:var(--cds-body-compact-01-font-weight,400);letter-spacing:var(--cds-body-compact-01-letter-spacing,.16px);line-height:var(--cds-body-compact-01-line-height,1.28572);padding-block:0;padding-inline:0;text-decoration:none}.c4p--add-select__next__breadcrumb-button:hover{color:var(--cds-link-primary-hover,#0043ce);text-decoration:underline}.c4p--add-select__next__breadcrumb-button:focus{outline:.125rem solid var(--cds-focus,#0f62fe);outline-offset:.125rem}.c4p--add-select__next__breadcrumb-separator{align-items:center;color:var(--cds-text-secondary,#525252);display:flex}.c4p--add-select__next__breadcrumb-separator svg{fill:currentColor}.c4p--add-select__next__breadcrumb-current{color:var(--cds-text-primary,#161616);font-size:var(--cds-body-compact-01-font-size,.875rem);font-weight:var(--cds-body-compact-01-font-weight,400);letter-spacing:var(--cds-body-compact-01-letter-spacing,.16px);line-height:var(--cds-body-compact-01-line-height,1.28572)}.c4p--add-select__next__selection-summary{display:flex;flex-direction:column}.c4p--add-select__next__selection-summary-header{align-items:center;border-block-end:1px solid var(--cds-layer-accent-01,#e0e0e0);display:flex;padding-block-end:.5rem;padding-block-start:1.5rem;padding-inline:1rem}.c4p--add-select__next__selection-summary-title{font-size:var(--cds-heading-compact-02-font-size,1rem);font-weight:var(--cds-heading-compact-02-font-weight,600);letter-spacing:var(--cds-heading-compact-02-letter-spacing,0);line-height:var(--cds-heading-compact-02-line-height,1.375);margin-inline-end:.5rem}.c4p--add-select__next__selection-summary-header-actions{align-items:center;display:flex;gap:.5rem;margin-inline-start:auto}.c4p--add-select__next__selection-summary-item{background-color:var(--cds-layer-01,#f4f4f4);border-block-end:1px solid var(--cds-border-subtle-01,#c6c6c6);position:relative}.c4p--add-select__next__selection-summary-item:hover{background-color:var(--cds-layer-hover-01,#e8e8e8)}.c4p--add-select__next__selection-summary-item--accordion .cds--accordion__item,.c4p--add-select__next__selection-summary-item--accordion .cds--accordion__item:last-child{border-block-end:none;border-block-start:none}.c4p--add-select__next__selection-summary-item--accordion .cds--accordion__heading{min-block-size:unset;padding-block:.75rem;padding-inline-end:1rem}.c4p--add-select__next__selection-summary-item--default .c4p--add-select__next__selection-summary-item-title-wrapper{align-items:center;display:flex;justify-content:space-between;padding-block:.75rem;padding-inline:1rem}.c4p--add-select__next__selection-summary-item--default .c4p--add-select__next__selection-summary-item-content{padding-block-end:.75rem;padding-inline:1rem}.c4p--add-select__next__selection-summary-item--default .c4p--add-select__next__selection-summary-item-title{font-size:var(--cds-heading-compact-01-font-size,.875rem);font-weight:var(--cds-heading-compact-01-font-weight,600);letter-spacing:var(--cds-heading-compact-01-letter-spacing,.16px);line-height:var(--cds-heading-compact-01-line-height,1.28572)}.c4p--add-select__next__selection-summary-item-title-wrapper{align-items:center;display:flex;justify-content:space-between}.c4p--add-select__next__selection-summary-item-selected-item{flex:1}.c4p--add-select__next__selection-summary-item-title{color:var(--cds-text-primary,#161616);font-size:var(--cds-body-compact-01-font-size,.875rem);font-weight:var(--cds-body-compact-01-font-weight,400);letter-spacing:var(--cds-body-compact-01-letter-spacing,.16px);line-height:var(--cds-body-compact-01-line-height,1.28572)}.c4p--add-select__next__selection-summary-item-subtitle{color:var(--cds-text-secondary,#525252);font-size:var(--cds-body-01-font-size,.875rem);font-weight:var(--cds-body-01-font-weight,400);letter-spacing:var(--cds-body-01-letter-spacing,.16px);line-height:var(--cds-body-01-line-height,1.42857)}.c4p--add-select__next__selection-summary-item-entry{margin-block-end:1rem}.c4p--add-select__next__selection-summary-item-header{color:var(--cds-text-secondary,#525252);font-size:var(--cds-label-01-font-size,.75rem);font-weight:var(--cds-label-01-font-weight,400);letter-spacing:var(--cds-label-01-letter-spacing,.32px);line-height:var(--cds-label-01-line-height,1.33333);margin-block-end:.5rem}.c4p--add-select__next__selection-summary-item-body{font-size:var(--cds-body-01-font-size,.875rem);font-weight:var(--cds-body-01-font-weight,400);letter-spacing:var(--cds-body-01-letter-spacing,.16px);line-height:var(--cds-body-01-line-height,1.42857);margin-block-end:1rem}.c4p--add-select__next__selection-summary-item-remove-button-container{align-items:center;display:inline-flex;justify-content:center;padding-inline-start:.5rem}.c4p--add-select__next__selection-summary-item--accordion .c4p--add-select__next__selection-summary-item-remove-button-container{inset-block-start:50%;inset-inline-end:1rem;padding-inline-start:0;position:absolute;transform:translateY(-50%)}.c4p--add-select__next__selection-summary-item-remove-button{opacity:0;transition:opacity 70ms cubic-bezier(.2,0,.38,.9)}@media screen and (prefers-reduced-motion:reduce){.c4p--add-select__next__selection-summary-item-remove-button{transition:none}}.c4p--add-select__next__selection-summary-item:focus-within .c4p--add-select__next__selection-summary-item-remove-button,.c4p--add-select__next__selection-summary-item:hover .c4p--add-select__next__selection-summary-item-remove-button{opacity:1}.c4p--add-select__next__selection-summary-item-content{margin-block-start:0}.c4p--add-select__next__selection-summary .cds--accordion__arrow{transform:rotate(90deg)}.c4p--add-select__next__selection-summary .cds--accordion__item--active .cds--accordion__arrow{transform:rotate(-90deg)}.c4p--add-select__next__selection-summary .cds--accordion--start .cds--accordion__arrow{margin-block:0;margin-inline-end:0;margin-inline-start:1rem}.c4p--add-select__next__selection-summary .cds--accordion--start .cds--accordion__title{margin-inline-end:0;margin-inline-start:.5rem;padding-inline-end:2rem}.c4p--add-select__next__selection-summary .cds--accordion__item--active .cds--accordion__content{margin-block-start:0;padding-block:1rem;padding-inline:1rem}@keyframes add-select-item-panel-entrance{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes add-select-item-panel-exit{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}@keyframes add-select-item-panel-entrance-reduced{0%{opacity:0}to{opacity:1}}@keyframes add-select-item-panel-exit-reduced{0%{opacity:1}to{opacity:0}}.c4p--add-select__next__item-summary-panel{block-size:100%;display:none;inline-size:100%;transform:translateX(0);transition-behavior:allow-discrete;transition-duration:.15s;transition-property:display,opacity,transform}.c4p--add-select__next__item-summary-panel--open{animation:add-select-item-panel-entrance .15s cubic-bezier(0,0,.38,.9) forwards;display:flex;flex-direction:column}@starting-style{.c4p--add-select__next__item-summary-panel--open{opacity:0;transform:translateX(100%)}}@media (prefers-reduced-motion){.c4p--add-select__next__item-summary-panel--open{animation:add-select-item-panel-entrance-reduced .15s cubic-bezier(0,0,.38,.9) forwards}@starting-style{.c4p--add-select__next__item-summary-panel--open{opacity:0;transform:translateX(0)}}}.c4p--add-select__next__item-summary-panel-header{align-items:center;border-block-end:1px solid var(--cds-layer-accent-01,#e0e0e0);display:flex;gap:.5rem;justify-content:space-between;padding-block-end:.5rem;padding-block-start:2rem;padding-inline:1rem}.c4p--add-select__next__item-summary-panel-title{font-size:var(--cds-heading-compact-02-font-size,1rem);font-weight:var(--cds-heading-compact-02-font-weight,600);letter-spacing:var(--cds-heading-compact-02-letter-spacing,0);line-height:var(--cds-heading-compact-02-line-height,1.375)}.c4p--add-select__next__item-summary-panel-body{padding-block:1rem;padding-inline:1rem}.c4p--add-select__next__item-summary-panel-entry{margin-block-end:1rem}.c4p--add-select__next__item-summary-panel-entry-title{font-size:var(--cds-heading-compact-01-font-size,.875rem);font-weight:var(--cds-heading-compact-01-font-weight,600);letter-spacing:var(--cds-heading-compact-01-letter-spacing,.16px);line-height:var(--cds-heading-compact-01-line-height,1.28572)}.c4p--add-select__next__item-summary-panel-entry-body{font-size:var(--cds-body-compact-01-font-size,.875rem);font-weight:var(--cds-body-compact-01-font-weight,400);letter-spacing:var(--cds-body-compact-01-letter-spacing,.16px);line-height:var(--cds-body-compact-01-line-height,1.28572)}:host(c4p-add-select-item-panel){display:block}:host(c4p-add-select-item-panel) .c4p--add-select__next__item-summary-panel{block-size:100%;display:flex;flex-direction:column;padding:0;transform:translateX(100%);transition:transform .15s cubic-bezier(.2,0,.38,.9)}:host(c4p-add-select-item-panel) .c4p--add-select__next__item-summary-panel--open{transform:translateX(0)}:host(c4p-add-select-item-panel) .c4p--add-select__next__item-summary-panel-header{align-items:center;border-block-end:1px solid var(--cds-border-subtle-01,#c6c6c6);display:flex;justify-content:space-between;margin-block-end:0;padding:2rem 1rem .5rem}:host(c4p-add-select-item-panel) .c4p--add-select__next__item-summary-panel-title{color:var(--cds-text-primary,#161616);flex:1;font-size:var(--cds-heading-compact-01-font-size,.875rem);font-weight:var(--cds-heading-compact-01-font-weight,600);letter-spacing:var(--cds-heading-compact-01-letter-spacing,.16px);line-height:var(--cds-heading-compact-01-line-height,1.28572);margin:0}:host(c4p-add-select-item-panel) .c4p--add-select__next__item-summary-panel-body{flex:1;overflow:auto;padding:1rem}@supports (overflow-block:auto){:host(c4p-add-select-item-panel) .c4p--add-select__next__item-summary-panel-body{overflow-block:auto}}:host(c4p-add-select-item-panel) .c4p--add-select__next__item-summary-panel-entry{margin-block-end:.75rem}:host(c4p-add-select-item-panel) .c4p--add-select__next__item-summary-panel-entry-title{color:var(--cds-text-secondary,#525252);font-size:var(--cds-label-01-font-size,.75rem);font-weight:var(--cds-label-01-font-weight,400);letter-spacing:var(--cds-label-01-letter-spacing,.32px);line-height:var(--cds-label-01-line-height,1.33333);margin:0}:host(c4p-add-select-item-panel) .c4p--add-select__next__item-summary-panel-entry-body{color:var(--cds-text-primary,#161616);font-size:var(--cds-body-compact-01-font-size,.875rem);font-weight:var(--cds-body-compact-01-font-weight,400);letter-spacing:var(--cds-body-compact-01-letter-spacing,.16px);line-height:var(--cds-body-compact-01-line-height,1.28572);margin:0}@media screen and (prefers-reduced-motion:reduce){:host(c4p-add-select-item-panel) .c4p--add-select__next__item-summary-panel{transition:none}}"]);
|
|
11
|
+
//#endregion
|
|
12
|
+
export { add_select_item_panel_default as default };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=add-select-item-panel.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-select-item-panel.scss.js","names":[],"sources":["../../../src/components/add-select/add-select-item-panel.scss?lit"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n$css--plex: true !default;\n\n@use '@carbon/styles/scss/theme' as *;\n@use '@carbon/styles/scss/spacing' as *;\n@use '@carbon/styles/scss/type';\n@use '@carbon/styles/scss/motion' as *;\n\n$prefix: 'c4p';\n\n@use '@carbon/ibm-products-styles/scss/components/AddSelect/add-select_next'\n as *;\n\n:host(#{$prefix}-add-select-item-panel) {\n display: block;\n\n .#{$block-class__next}__item-summary-panel {\n display: flex;\n flex-direction: column;\n padding: 0;\n block-size: 100%;\n transform: translateX(100%);\n transition: transform $duration-moderate-01 motion(standard, productive);\n }\n\n .#{$block-class__next}__item-summary-panel--open {\n transform: translateX(0);\n }\n\n .#{$block-class__next}__item-summary-panel-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: $spacing-07 $spacing-05 $spacing-03;\n border-block-end: 1px solid $border-subtle-01;\n margin-block-end: 0;\n }\n\n .#{$block-class__next}__item-summary-panel-title {\n @include type.type-style('heading-compact-01');\n\n flex: 1;\n margin: 0;\n color: $text-primary;\n }\n\n .#{$block-class__next}__item-summary-panel-body {\n overflow: auto;\n flex: 1;\n padding: $spacing-05;\n @supports (overflow-block: auto) {\n overflow-block: auto;\n }\n }\n\n .#{$block-class__next}__item-summary-panel-entry {\n margin-block-end: $spacing-04;\n }\n\n .#{$block-class__next}__item-summary-panel-entry-title {\n @include type.type-style('label-01');\n\n margin: 0;\n color: $text-secondary;\n }\n\n .#{$block-class__next}__item-summary-panel-entry-body {\n @include type.type-style('body-compact-01');\n\n margin: 0;\n color: $text-primary;\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n .#{$block-class__next}__item-summary-panel {\n transition: none;\n }\n }\n}\n"],"mappings":""}
|