@pine-ds/core 3.15.3-dev.0 → 3.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/components/pds-dropdown-menu.js +70 -27
  2. package/components/pds-dropdown-menu.js.map +1 -1
  3. package/components/pds-tab.js +1 -1
  4. package/components/pds-tab.js.map +1 -1
  5. package/components/pds-table.js +5 -2
  6. package/components/pds-table.js.map +1 -1
  7. package/dist/cjs/pds-dropdown-menu.cjs.entry.js +70 -27
  8. package/dist/cjs/pds-dropdown-menu.entry.cjs.js.map +1 -1
  9. package/dist/cjs/pds-tab.cjs.entry.js +1 -1
  10. package/dist/cjs/pds-tab.entry.cjs.js.map +1 -1
  11. package/dist/cjs/pds-table.cjs.entry.js +5 -2
  12. package/dist/cjs/pds-table.entry.cjs.js.map +1 -1
  13. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.css +32 -0
  14. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js +69 -26
  15. package/dist/collection/components/pds-dropdown-menu/pds-dropdown-menu.js.map +1 -1
  16. package/dist/collection/components/pds-table/pds-table.js +5 -2
  17. package/dist/collection/components/pds-table/pds-table.js.map +1 -1
  18. package/dist/collection/components/pds-tabs/pds-tab/pds-tab.css +0 -1
  19. package/dist/docs.json +1 -1
  20. package/dist/esm/pds-dropdown-menu.entry.js +70 -27
  21. package/dist/esm/pds-dropdown-menu.entry.js.map +1 -1
  22. package/dist/esm/pds-tab.entry.js +1 -1
  23. package/dist/esm/pds-tab.entry.js.map +1 -1
  24. package/dist/esm/pds-table.entry.js +5 -2
  25. package/dist/esm/pds-table.entry.js.map +1 -1
  26. package/dist/esm-es5/pds-dropdown-menu.entry.js +1 -1
  27. package/dist/esm-es5/pds-dropdown-menu.entry.js.map +1 -1
  28. package/dist/esm-es5/pds-tab.entry.js +1 -1
  29. package/dist/esm-es5/pds-tab.entry.js.map +1 -1
  30. package/dist/esm-es5/pds-table.entry.js +1 -1
  31. package/dist/esm-es5/pds-table.entry.js.map +1 -1
  32. package/dist/pine-core/p-23aba538.entry.js +2 -0
  33. package/dist/pine-core/p-23aba538.entry.js.map +1 -0
  34. package/dist/pine-core/p-2DR2iuEU.system.js.map +1 -0
  35. package/dist/pine-core/p-3c026ec7.system.entry.js +2 -0
  36. package/dist/pine-core/p-3c026ec7.system.entry.js.map +1 -0
  37. package/dist/pine-core/p-838452e0.entry.js +2 -0
  38. package/dist/pine-core/{p-5ef5f6b3.entry.js.map → p-838452e0.entry.js.map} +1 -1
  39. package/dist/pine-core/p-8b4f76e4.system.entry.js +2 -0
  40. package/dist/pine-core/p-8b4f76e4.system.entry.js.map +1 -0
  41. package/dist/pine-core/p-8b7246ea.system.entry.js +2 -0
  42. package/dist/pine-core/{p-4a42e114.system.entry.js.map → p-8b7246ea.system.entry.js.map} +1 -1
  43. package/dist/pine-core/p-C7XKS9nY.system.js.map +1 -0
  44. package/dist/pine-core/p-DZEhYV6y.system.js.map +1 -0
  45. package/dist/pine-core/p-JAVnELnm.system.js +1 -1
  46. package/dist/pine-core/p-d456c898.entry.js +2 -0
  47. package/dist/pine-core/p-d456c898.entry.js.map +1 -0
  48. package/dist/pine-core/pds-dropdown-menu.entry.esm.js.map +1 -1
  49. package/dist/pine-core/pds-tab.entry.esm.js.map +1 -1
  50. package/dist/pine-core/pds-table.entry.esm.js.map +1 -1
  51. package/dist/pine-core/pine-core.esm.js +1 -1
  52. package/dist/types/components/pds-dropdown-menu/pds-dropdown-menu.d.ts +1 -0
  53. package/dist/vscode.html-data.json +1 -1
  54. package/hydrate/index.js +77 -31
  55. package/hydrate/index.mjs +77 -31
  56. package/package.json +2 -2
  57. package/dist/pine-core/p-4a42e114.system.entry.js +0 -2
  58. package/dist/pine-core/p-5ef5f6b3.entry.js +0 -2
  59. package/dist/pine-core/p-9660a2c2.entry.js +0 -2
  60. package/dist/pine-core/p-9660a2c2.entry.js.map +0 -1
  61. package/dist/pine-core/p-9c0ec80a.entry.js +0 -2
  62. package/dist/pine-core/p-9c0ec80a.entry.js.map +0 -1
  63. package/dist/pine-core/p-CCgKUhC7.system.js.map +0 -1
  64. package/dist/pine-core/p-CE8RZXT8.system.js.map +0 -1
  65. package/dist/pine-core/p-d98310b9.system.entry.js +0 -2
  66. package/dist/pine-core/p-d98310b9.system.entry.js.map +0 -1
  67. package/dist/pine-core/p-f00f70bf.system.entry.js +0 -2
  68. package/dist/pine-core/p-f00f70bf.system.entry.js.map +0 -1
  69. package/dist/pine-core/p-g2zH2UyI.system.js.map +0 -1
@@ -28,6 +28,7 @@ export declare class PdsDropdownMenu implements BasePdsProps {
28
28
  private openDropdown;
29
29
  private closeDropdown;
30
30
  private handleClick;
31
+ private isItemDisabled;
31
32
  private getFocusedItemIndex;
32
33
  private focusItemByIndex;
33
34
  private focusNextItem;
@@ -7492,7 +7492,7 @@
7492
7492
  "name": "pds-dropdown-menu",
7493
7493
  "description": {
7494
7494
  "kind": "markdown",
7495
- "value": "\n\n**Examples:**\n[Default](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#default), [With Separator](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#with-separator), [With Icons](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#with-icons), [With Links](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#with-links), [With External Links](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#with-external-links), [With Disabled Items](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#with-disabled-items), [With Custom Placement](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#with-custom-placement), [Scrollable Menu](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#scrollable-menu)\n\n**CSS Parts:**\n- `menu-panel` - Exposes the dropdown menu container for styling."
7495
+ "value": "\n\n**Examples:**\n[Default](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#default), [With Separator](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#with-separator), [With Icons](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#with-icons), [With Links](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#with-links), [With External Links](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#with-external-links), [Mixing Menu Items with Raw Elements](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#mixing-menu-items-with-raw-elements), [With Disabled Items](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#with-disabled-items), [With Custom Placement](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#with-custom-placement), [Scrollable Menu](https://pine-design-system.netlify.app/?path=/docs/components-dropdown-menu--docs#scrollable-menu)\n\n**CSS Parts:**\n- `menu-panel` - Exposes the dropdown menu container for styling."
7496
7496
  },
7497
7497
  "attributes": [
7498
7498
  {
package/hydrate/index.js CHANGED
@@ -9135,7 +9135,7 @@ class PdsDivider {
9135
9135
  }; }
9136
9136
  }
9137
9137
 
9138
- const pdsDropdownMenuCss = ":host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-container);border-radius:var(--pine-dimension-xs);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:fixed;z-index:var(--pine-z-index-overlay)}:host-context([data-theme=dark]) .pds-dropdown-menu--panel{border:var(--pine-border)}";
9138
+ const pdsDropdownMenuCss = ":host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-container);border-radius:var(--pine-dimension-xs);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:fixed;z-index:var(--pine-z-index-overlay)}:host-context([data-theme=dark]) .pds-dropdown-menu--panel{border:var(--pine-border)}::slotted(a),::slotted(button){-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-dimension-xs);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text) !important;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);margin:calc(var(--pine-border-width) + 2px);padding:var(--pine-dimension-xs);text-align:start;text-decoration:none !important;width:calc(100% - (var(--pine-border-width) + 2px) * 2)}::slotted(.destructive){color:var(--pine-color-danger) !important}::slotted([aria-disabled=true]),::slotted([disabled]){cursor:not-allowed;opacity:0.5;pointer-events:none}";
9139
9139
 
9140
9140
  /**
9141
9141
  * @part menu-panel - Exposes the dropdown menu container for styling.
@@ -9165,14 +9165,22 @@ class PdsDropdownMenu {
9165
9165
  this.slotEl = event.target;
9166
9166
  // Get all elements assigned to this slot
9167
9167
  const assignedElements = this.slotEl.assignedElements();
9168
- // ensure assignedElements only contains pds-dropdown-menu-item or pds-dropdown-menu-separator
9169
- // if there are other elements, throw an error
9170
- const invalidElements = assignedElements.filter(el => el.tagName.toLowerCase() !== 'pds-dropdown-menu-item' && el.tagName.toLowerCase() !== 'pds-dropdown-menu-separator');
9168
+ // Allowed elements: pds-dropdown-menu-item, pds-dropdown-menu-separator, <a>, <button>
9169
+ // Raw <a> and <button> elements are allowed for edge cases requiring native browser/framework
9170
+ // behavior (e.g., Rails UJS, Turbo) that cannot work through Shadow DOM.
9171
+ const allowedTags = ['pds-dropdown-menu-item', 'pds-dropdown-menu-separator', 'a', 'button'];
9172
+ const invalidElements = assignedElements.filter(el => !allowedTags.includes(el.tagName.toLowerCase()));
9171
9173
  if (invalidElements.length > 0) {
9172
- throw new Error(`pds-dropdown-menu only accepts pds-dropdown-menu-item and pds-dropdown-menu-separator elements`);
9173
- }
9174
- // Store all menu items for keyboard navigation
9175
- this.menuItems = assignedElements.filter(el => el.tagName.toLowerCase() === 'pds-dropdown-menu-item');
9174
+ const invalidTags = invalidElements.map(el => el.tagName.toLowerCase()).join(', ');
9175
+ console.warn(`pds-dropdown-menu: Unexpected element(s) found: ${invalidTags}. ` +
9176
+ `Expected: ${allowedTags.join(', ')}`);
9177
+ }
9178
+ // Store all focusable items for keyboard navigation
9179
+ // This includes pds-dropdown-menu-item components and raw <a>/<button> elements
9180
+ this.menuItems = assignedElements.filter(el => {
9181
+ const tag = el.tagName.toLowerCase();
9182
+ return tag === 'pds-dropdown-menu-item' || tag === 'a' || tag === 'button';
9183
+ });
9176
9184
  };
9177
9185
  // Toggle dropdown open/closed
9178
9186
  this.toggleDropdown = () => {
@@ -9241,31 +9249,66 @@ class PdsDropdownMenu {
9241
9249
  this.cleanupAutoUpdate = null;
9242
9250
  }
9243
9251
  }
9252
+ // Check if a menu item is disabled (handles both component and raw elements)
9253
+ isItemDisabled(item) {
9254
+ const tagName = item.tagName.toLowerCase();
9255
+ if (tagName === 'pds-dropdown-menu-item') {
9256
+ return item.disabled;
9257
+ }
9258
+ else if (tagName === 'button') {
9259
+ return item.disabled;
9260
+ }
9261
+ else if (tagName === 'a') {
9262
+ return item.getAttribute('aria-disabled') === 'true';
9263
+ }
9264
+ return false;
9265
+ }
9244
9266
  // Get the index of the currently focused menu item
9245
9267
  getFocusedItemIndex() {
9246
9268
  const activeElement = document.activeElement;
9247
9269
  if (!activeElement)
9248
9270
  return -1;
9249
- return this.menuItems.findIndex(item => item === activeElement);
9271
+ // For raw elements, check direct match
9272
+ // For pds-dropdown-menu-item, also check if the active element is inside the shadow root
9273
+ return this.menuItems.findIndex(item => {
9274
+ if (item === activeElement)
9275
+ return true;
9276
+ // Check if activeElement is inside the item's shadow root (for pds-dropdown-menu-item)
9277
+ if (item.tagName.toLowerCase() === 'pds-dropdown-menu-item') {
9278
+ const shadowRoot = item.shadowRoot;
9279
+ if (shadowRoot === null || shadowRoot === void 0 ? void 0 : shadowRoot.contains(activeElement))
9280
+ return true;
9281
+ }
9282
+ return false;
9283
+ });
9250
9284
  }
9251
9285
  // Focus a specific menu item by index
9252
9286
  focusItemByIndex(index) {
9253
- var _a, _b, _c, _d;
9287
+ var _a, _b, _c, _d, _e;
9254
9288
  if (index >= 0 && index < this.menuItems.length) {
9255
9289
  this.currentFocusIndex = index;
9256
- // Focus the inner button/link instead of the host element
9257
- const menuItem = this.menuItems[index];
9258
- const innerButton = (_a = menuItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('button');
9259
- const innerLink = (_d = (_c = (_b = menuItem.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('pds-link')) === null || _c === void 0 ? void 0 : _c.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('a');
9260
- if (innerButton) {
9261
- return innerButton.focus();
9262
- }
9263
- else if (innerLink) {
9264
- return innerLink.focus();
9290
+ const item = this.menuItems[index];
9291
+ const tagName = item.tagName.toLowerCase();
9292
+ if (tagName === 'pds-dropdown-menu-item') {
9293
+ // For pds-dropdown-menu-item, focus the inner element
9294
+ const menuItem = item;
9295
+ const innerButton = (_a = menuItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('button');
9296
+ const innerLink = ((_d = (_c = (_b = menuItem.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('pds-link')) === null || _c === void 0 ? void 0 : _c.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('a'))
9297
+ || ((_e = menuItem.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('a'));
9298
+ if (innerButton) {
9299
+ innerButton.focus();
9300
+ }
9301
+ else if (innerLink) {
9302
+ innerLink.focus();
9303
+ }
9304
+ else {
9305
+ // Fallback to focusing the host
9306
+ menuItem.focus();
9307
+ }
9265
9308
  }
9266
9309
  else {
9267
- // Fallback to focusing the host if we can't find the inner element
9268
- menuItem.focus();
9310
+ // For raw <a> or <button> elements, focus directly
9311
+ item.focus();
9269
9312
  }
9270
9313
  }
9271
9314
  }
@@ -9275,7 +9318,7 @@ class PdsDropdownMenu {
9275
9318
  // Skip disabled items
9276
9319
  let attempts = 0;
9277
9320
  const maxAttempts = this.menuItems.length;
9278
- while (attempts < maxAttempts && this.menuItems[nextIndex].disabled) {
9321
+ while (attempts < maxAttempts && this.isItemDisabled(this.menuItems[nextIndex])) {
9279
9322
  nextIndex = (nextIndex + 1) % this.menuItems.length;
9280
9323
  attempts++;
9281
9324
  }
@@ -9292,7 +9335,7 @@ class PdsDropdownMenu {
9292
9335
  // Skip disabled items
9293
9336
  let attempts = 0;
9294
9337
  const maxAttempts = this.menuItems.length;
9295
- while (attempts < maxAttempts && this.menuItems[prevIndex].disabled) {
9338
+ while (attempts < maxAttempts && this.isItemDisabled(this.menuItems[prevIndex])) {
9296
9339
  prevIndex = prevIndex <= 0 ? this.menuItems.length - 1 : prevIndex - 1;
9297
9340
  attempts++;
9298
9341
  }
@@ -9323,7 +9366,7 @@ class PdsDropdownMenu {
9323
9366
  if (this.menuItems.length > 0) {
9324
9367
  // Find first non-disabled item
9325
9368
  let firstIndex = 0;
9326
- while (firstIndex < this.menuItems.length && this.menuItems[firstIndex].disabled) {
9369
+ while (firstIndex < this.menuItems.length && this.isItemDisabled(this.menuItems[firstIndex])) {
9327
9370
  firstIndex++;
9328
9371
  }
9329
9372
  if (firstIndex < this.menuItems.length) {
@@ -9336,7 +9379,7 @@ class PdsDropdownMenu {
9336
9379
  if (this.menuItems.length > 0) {
9337
9380
  // Find last non-disabled item
9338
9381
  let lastIndex = this.menuItems.length - 1;
9339
- while (lastIndex >= 0 && this.menuItems[lastIndex].disabled) {
9382
+ while (lastIndex >= 0 && this.isItemDisabled(this.menuItems[lastIndex])) {
9340
9383
  lastIndex--;
9341
9384
  }
9342
9385
  if (lastIndex >= 0) {
@@ -9366,7 +9409,7 @@ class PdsDropdownMenu {
9366
9409
  event.preventDefault();
9367
9410
  // Find the first non-disabled item
9368
9411
  let firstFocusableIndex = 0;
9369
- while (firstFocusableIndex < this.menuItems.length && this.menuItems[firstFocusableIndex].disabled) {
9412
+ while (firstFocusableIndex < this.menuItems.length && this.isItemDisabled(this.menuItems[firstFocusableIndex])) {
9370
9413
  firstFocusableIndex++;
9371
9414
  }
9372
9415
  if (firstFocusableIndex < this.menuItems.length) {
@@ -9378,7 +9421,7 @@ class PdsDropdownMenu {
9378
9421
  event.preventDefault();
9379
9422
  // Find the first non-disabled item
9380
9423
  let firstFocusableIndex = 0;
9381
- while (firstFocusableIndex < this.menuItems.length && this.menuItems[firstFocusableIndex].disabled) {
9424
+ while (firstFocusableIndex < this.menuItems.length && this.isItemDisabled(this.menuItems[firstFocusableIndex])) {
9382
9425
  firstFocusableIndex++;
9383
9426
  }
9384
9427
  if (firstFocusableIndex < this.menuItems.length) {
@@ -9401,7 +9444,7 @@ class PdsDropdownMenu {
9401
9444
  }
9402
9445
  }
9403
9446
  render() {
9404
- return (hAsync(Host, { key: 'bedd78a69e84f10abb3c714c02227fa76e255a35', id: this.componentId }, hAsync("slot", { key: 'd2bf56037a85679a677470d04865823966ca19d6', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), hAsync("pds-box", { key: '64f56896103bb6cca6c71020d3d37c375d300c40', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", role: "menu", "aria-orientation": "vertical", part: "menu-panel" }, hAsync("slot", { key: '0303160562f74fe9d32cc020c4539a7c8fc288a9', onSlotchange: this.handleSlotChange }))));
9447
+ return (hAsync(Host, { key: '3144bc264072eccf89cdca45a0b28eb004b5d06e', id: this.componentId }, hAsync("slot", { key: '500288f266dc7ab7e1ac5070e628c31a6ed50861', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), hAsync("pds-box", { key: '4085130e381b8be28e2e36de073c0755a455e30c', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", role: "menu", "aria-orientation": "vertical", part: "menu-panel" }, hAsync("slot", { key: '2c4d53799576d1c6913df9bb854bfbaf50e5032c', onSlotchange: this.handleSlotChange }))));
9405
9448
  }
9406
9449
  get host() { return getElement(this); }
9407
9450
  static get style() { return pdsDropdownMenuCss; }
@@ -16507,7 +16550,7 @@ class PdsSwitch {
16507
16550
  }; }
16508
16551
  }
16509
16552
 
16510
- const pdsTabCss = "pds-tab{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;position:relative}.pds-tabs--pill pds-tab{-ms-flex:1;flex:1}.pds-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:var(--pine-border-width-none);-webkit-box-shadow:none;box-shadow:none;color:inherit;cursor:pointer;font-family:inherit;padding:var(--pine-dimension-none);-ms-flex-align:center;align-items:center;color:var(--pine-color-text-secondary);display:-ms-inline-flexbox;display:inline-flex;position:relative;text-decoration:none;white-space:nowrap}.pds-tab.is-active,.pds-tab[aria-selected=true]{color:var(--pine-color-text)}.pds-tab.is-active .pds-tab__content::after,.pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tab:hover:not(:disabled){color:var(--pine-color-text)}.pds-tab:focus{outline:none}.pds-tab:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tab:disabled,.pds-tab.is-disabled{color:var(--pine-color-text-disabled);cursor:not-allowed;pointer-events:none}.pds-tab .pds-tab__content{font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);-webkit-padding-after:11px;padding-block-end:11px;position:relative}.pds-tab .pds-tab__content::after{background-color:var(--pine-color-brand);content:\"\";height:3px;inset-block-end:var(--pine-dimension-none);inset-inline-end:var(--pine-dimension-none);inset-inline-start:var(--pine-dimension-none);opacity:0;position:absolute}.pds-tab .pds-tab-edge{display:none}.pds-tabs--availability{--color-background-tab:transparent}.pds-tabs--availability .pds-tab{background-color:var(--color-background-tab);border-radius:calc(var(--pine-dimension-xs) * 1.25) calc(var(--pine-dimension-xs) * 1.25) var(--pine-dimension-none) var(--pine-dimension-none);color:var(--pine-color-text-secondary);padding:8px 16px 13px}.pds-tabs--availability .pds-tab.is-active,.pds-tabs--availability .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-secondary);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab.is-active .pds-tab__content::after,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tabs--availability .pds-tab.is-active .pds-tab-edge,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab-edge{z-index:var(--pine-z-index-raised)}.pds-tabs--availability .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){--color-background-tab:var(--pine-color-secondary-hover);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab:focus-visible{color:var(--pine-color-text-secondary)}.pds-tabs--availability .pds-tab:disabled,.pds-tabs--availability .pds-tab.is-disabled{--color-background-tab:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--availability .pds-tab__content{-webkit-padding-after:7px;padding-block-end:7px}.pds-tabs--availability .pds-tab-edge{bottom:0;display:block;height:8px;inset-inline-end:100%;overflow:hidden;position:absolute;width:8px}.pds-tabs--availability .pds-tab-edge::before{border-radius:50%;bottom:0;-webkit-box-shadow:4px 4px 0 0 var(--color-background-tab);box-shadow:4px 4px 0 0 var(--color-background-tab);content:\"\";display:block;height:200%;inset-inline-end:0;position:absolute;width:200%}.pds-tabs--availability .pds-tab-edge--end{inset-inline-end:unset;inset-inline-start:100%}.pds-tabs--availability .pds-tab-edge--end::before{-webkit-box-shadow:-4px 4px 0 0 var(--color-background-tab);box-shadow:-4px 4px 0 0 var(--color-background-tab);inset-inline-end:unset;inset-inline-start:0}.pds-tabs--filter .pds-tab{background-color:var(--pine-color-background-muted);border-radius:50px;color:var(--pine-color-text);padding:6px 15px}.pds-tabs--filter .pds-tab.is-active,.pds-tabs--filter .pds-tab[aria-selected=true]{background-color:var(--pine-color-primary);color:var(--pine-color-text-primary)}.pds-tabs--filter .pds-tab.is-active:hover:not(:disabled),.pds-tabs--filter .pds-tab[aria-selected=true]:hover:not(:disabled){background-color:var(--pine-color-primary-hover)}.pds-tabs--filter .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){background-color:var(--pine-color-border-disabled)}.pds-tabs--filter .pds-tab:disabled,.pds-tabs--filter .pds-tab.is-disabled{background-color:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--filter .pds-tab:disabled.is-active,.pds-tabs--filter .pds-tab:disabled[aria-selected=true],.pds-tabs--filter .pds-tab.is-disabled.is-active,.pds-tabs--filter .pds-tab.is-disabled[aria-selected=true]{background-color:var(--pine-color-primary-disabled)}.pds-tabs--filter .pds-tab__content{-webkit-padding-after:var(--pine-dimension-none);padding-block-end:var(--pine-dimension-none)}.pds-tabs--filter .pds-tab__content::after{content:unset}.pds-tabs--pill{--color-background-tab:transparent}.pds-tabs--pill .pds-tab{background-color:var(--color-background-tab);border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-xs);color:var(--pine-color-text-muted);-ms-flex:1;flex:1;height:34px;-ms-flex-pack:center;justify-content:center}.pds-tabs--pill .pds-tab .pds-tab__content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-webkit-padding-after:0;padding-block-end:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-background-container);border-color:var(--pine-color-border);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);color:var(--pine-color-text-active)}.pds-tabs--pill .pds-tab.is-active:focus-visible,.pds-tabs--pill .pds-tab[aria-selected=true]:focus-visible{border-color:var(--color-border-focus);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab.is-active .pds-tab__content::after,.pds-tabs--pill .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab:disabled,.pds-tabs--pill .pds-tab.is-disabled{color:var(--pine-color-text-disabled)}";
16553
+ const pdsTabCss = "pds-tab{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;position:relative}.pds-tabs--pill pds-tab{-ms-flex:1;flex:1}.pds-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:var(--pine-border-width-none);-webkit-box-shadow:none;box-shadow:none;color:inherit;cursor:pointer;font-family:inherit;padding:var(--pine-dimension-none);-ms-flex-align:center;align-items:center;color:var(--pine-color-text-secondary);display:-ms-inline-flexbox;display:inline-flex;position:relative;text-decoration:none;white-space:nowrap}.pds-tab.is-active,.pds-tab[aria-selected=true]{color:var(--pine-color-text)}.pds-tab.is-active .pds-tab__content::after,.pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tab:hover:not(:disabled){color:var(--pine-color-text)}.pds-tab:focus{outline:none}.pds-tab:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tab:disabled,.pds-tab.is-disabled{color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-tab .pds-tab__content{font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);-webkit-padding-after:11px;padding-block-end:11px;position:relative}.pds-tab .pds-tab__content::after{background-color:var(--pine-color-brand);content:\"\";height:3px;inset-block-end:var(--pine-dimension-none);inset-inline-end:var(--pine-dimension-none);inset-inline-start:var(--pine-dimension-none);opacity:0;position:absolute}.pds-tab .pds-tab-edge{display:none}.pds-tabs--availability{--color-background-tab:transparent}.pds-tabs--availability .pds-tab{background-color:var(--color-background-tab);border-radius:calc(var(--pine-dimension-xs) * 1.25) calc(var(--pine-dimension-xs) * 1.25) var(--pine-dimension-none) var(--pine-dimension-none);color:var(--pine-color-text-secondary);padding:8px 16px 13px}.pds-tabs--availability .pds-tab.is-active,.pds-tabs--availability .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-secondary);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab.is-active .pds-tab__content::after,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tabs--availability .pds-tab.is-active .pds-tab-edge,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab-edge{z-index:var(--pine-z-index-raised)}.pds-tabs--availability .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){--color-background-tab:var(--pine-color-secondary-hover);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab:focus-visible{color:var(--pine-color-text-secondary)}.pds-tabs--availability .pds-tab:disabled,.pds-tabs--availability .pds-tab.is-disabled{--color-background-tab:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--availability .pds-tab__content{-webkit-padding-after:7px;padding-block-end:7px}.pds-tabs--availability .pds-tab-edge{bottom:0;display:block;height:8px;inset-inline-end:100%;overflow:hidden;position:absolute;width:8px}.pds-tabs--availability .pds-tab-edge::before{border-radius:50%;bottom:0;-webkit-box-shadow:4px 4px 0 0 var(--color-background-tab);box-shadow:4px 4px 0 0 var(--color-background-tab);content:\"\";display:block;height:200%;inset-inline-end:0;position:absolute;width:200%}.pds-tabs--availability .pds-tab-edge--end{inset-inline-end:unset;inset-inline-start:100%}.pds-tabs--availability .pds-tab-edge--end::before{-webkit-box-shadow:-4px 4px 0 0 var(--color-background-tab);box-shadow:-4px 4px 0 0 var(--color-background-tab);inset-inline-end:unset;inset-inline-start:0}.pds-tabs--filter .pds-tab{background-color:var(--pine-color-background-muted);border-radius:50px;color:var(--pine-color-text);padding:6px 15px}.pds-tabs--filter .pds-tab.is-active,.pds-tabs--filter .pds-tab[aria-selected=true]{background-color:var(--pine-color-primary);color:var(--pine-color-text-primary)}.pds-tabs--filter .pds-tab.is-active:hover:not(:disabled),.pds-tabs--filter .pds-tab[aria-selected=true]:hover:not(:disabled){background-color:var(--pine-color-primary-hover)}.pds-tabs--filter .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){background-color:var(--pine-color-border-disabled)}.pds-tabs--filter .pds-tab:disabled,.pds-tabs--filter .pds-tab.is-disabled{background-color:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--filter .pds-tab:disabled.is-active,.pds-tabs--filter .pds-tab:disabled[aria-selected=true],.pds-tabs--filter .pds-tab.is-disabled.is-active,.pds-tabs--filter .pds-tab.is-disabled[aria-selected=true]{background-color:var(--pine-color-primary-disabled)}.pds-tabs--filter .pds-tab__content{-webkit-padding-after:var(--pine-dimension-none);padding-block-end:var(--pine-dimension-none)}.pds-tabs--filter .pds-tab__content::after{content:unset}.pds-tabs--pill{--color-background-tab:transparent}.pds-tabs--pill .pds-tab{background-color:var(--color-background-tab);border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-xs);color:var(--pine-color-text-muted);-ms-flex:1;flex:1;height:34px;-ms-flex-pack:center;justify-content:center}.pds-tabs--pill .pds-tab .pds-tab__content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-webkit-padding-after:0;padding-block-end:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-background-container);border-color:var(--pine-color-border);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);color:var(--pine-color-text-active)}.pds-tabs--pill .pds-tab.is-active:focus-visible,.pds-tabs--pill .pds-tab[aria-selected=true]:focus-visible{border-color:var(--color-border-focus);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab.is-active .pds-tab__content::after,.pds-tabs--pill .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab:disabled,.pds-tabs--pill .pds-tab.is-disabled{color:var(--pine-color-text-disabled)}";
16511
16554
 
16512
16555
  class PdsTab {
16513
16556
  constructor(hostRef) {
@@ -16600,9 +16643,12 @@ class PdsTable {
16600
16643
  this.setupResponsiveScrolling();
16601
16644
  }
16602
16645
  // Apply default sort if specified
16646
+ // Use requestAnimationFrame to defer until child components are fully initialized
16603
16647
  if (this.defaultSortColumn) {
16604
- void this.applyDefaultSort().catch((err) => {
16605
- console.warn('Failed to apply default sort.', err);
16648
+ requestAnimationFrame(() => {
16649
+ void this.applyDefaultSort().catch((err) => {
16650
+ console.warn('Failed to apply default sort.', err);
16651
+ });
16606
16652
  });
16607
16653
  }
16608
16654
  }
package/hydrate/index.mjs CHANGED
@@ -9133,7 +9133,7 @@ class PdsDivider {
9133
9133
  }; }
9134
9134
  }
9135
9135
 
9136
- const pdsDropdownMenuCss = ":host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-container);border-radius:var(--pine-dimension-xs);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:fixed;z-index:var(--pine-z-index-overlay)}:host-context([data-theme=dark]) .pds-dropdown-menu--panel{border:var(--pine-border)}";
9136
+ const pdsDropdownMenuCss = ":host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-container);border-radius:var(--pine-dimension-xs);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:fixed;z-index:var(--pine-z-index-overlay)}:host-context([data-theme=dark]) .pds-dropdown-menu--panel{border:var(--pine-border)}::slotted(a),::slotted(button){-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--pine-dimension-xs);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--pine-color-text) !important;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;font:var(--pine-typography-body-medium);gap:var(--pine-dimension-xs);margin:calc(var(--pine-border-width) + 2px);padding:var(--pine-dimension-xs);text-align:start;text-decoration:none !important;width:calc(100% - (var(--pine-border-width) + 2px) * 2)}::slotted(.destructive){color:var(--pine-color-danger) !important}::slotted([aria-disabled=true]),::slotted([disabled]){cursor:not-allowed;opacity:0.5;pointer-events:none}";
9137
9137
 
9138
9138
  /**
9139
9139
  * @part menu-panel - Exposes the dropdown menu container for styling.
@@ -9163,14 +9163,22 @@ class PdsDropdownMenu {
9163
9163
  this.slotEl = event.target;
9164
9164
  // Get all elements assigned to this slot
9165
9165
  const assignedElements = this.slotEl.assignedElements();
9166
- // ensure assignedElements only contains pds-dropdown-menu-item or pds-dropdown-menu-separator
9167
- // if there are other elements, throw an error
9168
- const invalidElements = assignedElements.filter(el => el.tagName.toLowerCase() !== 'pds-dropdown-menu-item' && el.tagName.toLowerCase() !== 'pds-dropdown-menu-separator');
9166
+ // Allowed elements: pds-dropdown-menu-item, pds-dropdown-menu-separator, <a>, <button>
9167
+ // Raw <a> and <button> elements are allowed for edge cases requiring native browser/framework
9168
+ // behavior (e.g., Rails UJS, Turbo) that cannot work through Shadow DOM.
9169
+ const allowedTags = ['pds-dropdown-menu-item', 'pds-dropdown-menu-separator', 'a', 'button'];
9170
+ const invalidElements = assignedElements.filter(el => !allowedTags.includes(el.tagName.toLowerCase()));
9169
9171
  if (invalidElements.length > 0) {
9170
- throw new Error(`pds-dropdown-menu only accepts pds-dropdown-menu-item and pds-dropdown-menu-separator elements`);
9171
- }
9172
- // Store all menu items for keyboard navigation
9173
- this.menuItems = assignedElements.filter(el => el.tagName.toLowerCase() === 'pds-dropdown-menu-item');
9172
+ const invalidTags = invalidElements.map(el => el.tagName.toLowerCase()).join(', ');
9173
+ console.warn(`pds-dropdown-menu: Unexpected element(s) found: ${invalidTags}. ` +
9174
+ `Expected: ${allowedTags.join(', ')}`);
9175
+ }
9176
+ // Store all focusable items for keyboard navigation
9177
+ // This includes pds-dropdown-menu-item components and raw <a>/<button> elements
9178
+ this.menuItems = assignedElements.filter(el => {
9179
+ const tag = el.tagName.toLowerCase();
9180
+ return tag === 'pds-dropdown-menu-item' || tag === 'a' || tag === 'button';
9181
+ });
9174
9182
  };
9175
9183
  // Toggle dropdown open/closed
9176
9184
  this.toggleDropdown = () => {
@@ -9239,31 +9247,66 @@ class PdsDropdownMenu {
9239
9247
  this.cleanupAutoUpdate = null;
9240
9248
  }
9241
9249
  }
9250
+ // Check if a menu item is disabled (handles both component and raw elements)
9251
+ isItemDisabled(item) {
9252
+ const tagName = item.tagName.toLowerCase();
9253
+ if (tagName === 'pds-dropdown-menu-item') {
9254
+ return item.disabled;
9255
+ }
9256
+ else if (tagName === 'button') {
9257
+ return item.disabled;
9258
+ }
9259
+ else if (tagName === 'a') {
9260
+ return item.getAttribute('aria-disabled') === 'true';
9261
+ }
9262
+ return false;
9263
+ }
9242
9264
  // Get the index of the currently focused menu item
9243
9265
  getFocusedItemIndex() {
9244
9266
  const activeElement = document.activeElement;
9245
9267
  if (!activeElement)
9246
9268
  return -1;
9247
- return this.menuItems.findIndex(item => item === activeElement);
9269
+ // For raw elements, check direct match
9270
+ // For pds-dropdown-menu-item, also check if the active element is inside the shadow root
9271
+ return this.menuItems.findIndex(item => {
9272
+ if (item === activeElement)
9273
+ return true;
9274
+ // Check if activeElement is inside the item's shadow root (for pds-dropdown-menu-item)
9275
+ if (item.tagName.toLowerCase() === 'pds-dropdown-menu-item') {
9276
+ const shadowRoot = item.shadowRoot;
9277
+ if (shadowRoot === null || shadowRoot === void 0 ? void 0 : shadowRoot.contains(activeElement))
9278
+ return true;
9279
+ }
9280
+ return false;
9281
+ });
9248
9282
  }
9249
9283
  // Focus a specific menu item by index
9250
9284
  focusItemByIndex(index) {
9251
- var _a, _b, _c, _d;
9285
+ var _a, _b, _c, _d, _e;
9252
9286
  if (index >= 0 && index < this.menuItems.length) {
9253
9287
  this.currentFocusIndex = index;
9254
- // Focus the inner button/link instead of the host element
9255
- const menuItem = this.menuItems[index];
9256
- const innerButton = (_a = menuItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('button');
9257
- const innerLink = (_d = (_c = (_b = menuItem.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('pds-link')) === null || _c === void 0 ? void 0 : _c.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('a');
9258
- if (innerButton) {
9259
- return innerButton.focus();
9260
- }
9261
- else if (innerLink) {
9262
- return innerLink.focus();
9288
+ const item = this.menuItems[index];
9289
+ const tagName = item.tagName.toLowerCase();
9290
+ if (tagName === 'pds-dropdown-menu-item') {
9291
+ // For pds-dropdown-menu-item, focus the inner element
9292
+ const menuItem = item;
9293
+ const innerButton = (_a = menuItem.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('button');
9294
+ const innerLink = ((_d = (_c = (_b = menuItem.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('pds-link')) === null || _c === void 0 ? void 0 : _c.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('a'))
9295
+ || ((_e = menuItem.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('a'));
9296
+ if (innerButton) {
9297
+ innerButton.focus();
9298
+ }
9299
+ else if (innerLink) {
9300
+ innerLink.focus();
9301
+ }
9302
+ else {
9303
+ // Fallback to focusing the host
9304
+ menuItem.focus();
9305
+ }
9263
9306
  }
9264
9307
  else {
9265
- // Fallback to focusing the host if we can't find the inner element
9266
- menuItem.focus();
9308
+ // For raw <a> or <button> elements, focus directly
9309
+ item.focus();
9267
9310
  }
9268
9311
  }
9269
9312
  }
@@ -9273,7 +9316,7 @@ class PdsDropdownMenu {
9273
9316
  // Skip disabled items
9274
9317
  let attempts = 0;
9275
9318
  const maxAttempts = this.menuItems.length;
9276
- while (attempts < maxAttempts && this.menuItems[nextIndex].disabled) {
9319
+ while (attempts < maxAttempts && this.isItemDisabled(this.menuItems[nextIndex])) {
9277
9320
  nextIndex = (nextIndex + 1) % this.menuItems.length;
9278
9321
  attempts++;
9279
9322
  }
@@ -9290,7 +9333,7 @@ class PdsDropdownMenu {
9290
9333
  // Skip disabled items
9291
9334
  let attempts = 0;
9292
9335
  const maxAttempts = this.menuItems.length;
9293
- while (attempts < maxAttempts && this.menuItems[prevIndex].disabled) {
9336
+ while (attempts < maxAttempts && this.isItemDisabled(this.menuItems[prevIndex])) {
9294
9337
  prevIndex = prevIndex <= 0 ? this.menuItems.length - 1 : prevIndex - 1;
9295
9338
  attempts++;
9296
9339
  }
@@ -9321,7 +9364,7 @@ class PdsDropdownMenu {
9321
9364
  if (this.menuItems.length > 0) {
9322
9365
  // Find first non-disabled item
9323
9366
  let firstIndex = 0;
9324
- while (firstIndex < this.menuItems.length && this.menuItems[firstIndex].disabled) {
9367
+ while (firstIndex < this.menuItems.length && this.isItemDisabled(this.menuItems[firstIndex])) {
9325
9368
  firstIndex++;
9326
9369
  }
9327
9370
  if (firstIndex < this.menuItems.length) {
@@ -9334,7 +9377,7 @@ class PdsDropdownMenu {
9334
9377
  if (this.menuItems.length > 0) {
9335
9378
  // Find last non-disabled item
9336
9379
  let lastIndex = this.menuItems.length - 1;
9337
- while (lastIndex >= 0 && this.menuItems[lastIndex].disabled) {
9380
+ while (lastIndex >= 0 && this.isItemDisabled(this.menuItems[lastIndex])) {
9338
9381
  lastIndex--;
9339
9382
  }
9340
9383
  if (lastIndex >= 0) {
@@ -9364,7 +9407,7 @@ class PdsDropdownMenu {
9364
9407
  event.preventDefault();
9365
9408
  // Find the first non-disabled item
9366
9409
  let firstFocusableIndex = 0;
9367
- while (firstFocusableIndex < this.menuItems.length && this.menuItems[firstFocusableIndex].disabled) {
9410
+ while (firstFocusableIndex < this.menuItems.length && this.isItemDisabled(this.menuItems[firstFocusableIndex])) {
9368
9411
  firstFocusableIndex++;
9369
9412
  }
9370
9413
  if (firstFocusableIndex < this.menuItems.length) {
@@ -9376,7 +9419,7 @@ class PdsDropdownMenu {
9376
9419
  event.preventDefault();
9377
9420
  // Find the first non-disabled item
9378
9421
  let firstFocusableIndex = 0;
9379
- while (firstFocusableIndex < this.menuItems.length && this.menuItems[firstFocusableIndex].disabled) {
9422
+ while (firstFocusableIndex < this.menuItems.length && this.isItemDisabled(this.menuItems[firstFocusableIndex])) {
9380
9423
  firstFocusableIndex++;
9381
9424
  }
9382
9425
  if (firstFocusableIndex < this.menuItems.length) {
@@ -9399,7 +9442,7 @@ class PdsDropdownMenu {
9399
9442
  }
9400
9443
  }
9401
9444
  render() {
9402
- return (hAsync(Host, { key: 'bedd78a69e84f10abb3c714c02227fa76e255a35', id: this.componentId }, hAsync("slot", { key: 'd2bf56037a85679a677470d04865823966ca19d6', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), hAsync("pds-box", { key: '64f56896103bb6cca6c71020d3d37c375d300c40', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", role: "menu", "aria-orientation": "vertical", part: "menu-panel" }, hAsync("slot", { key: '0303160562f74fe9d32cc020c4539a7c8fc288a9', onSlotchange: this.handleSlotChange }))));
9445
+ return (hAsync(Host, { key: '3144bc264072eccf89cdca45a0b28eb004b5d06e', id: this.componentId }, hAsync("slot", { key: '500288f266dc7ab7e1ac5070e628c31a6ed50861', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), hAsync("pds-box", { key: '4085130e381b8be28e2e36de073c0755a455e30c', "border-radius": "sm", display: "flex", direction: "column", class: "pds-dropdown-menu--panel is-hidden", shadow: "100", role: "menu", "aria-orientation": "vertical", part: "menu-panel" }, hAsync("slot", { key: '2c4d53799576d1c6913df9bb854bfbaf50e5032c', onSlotchange: this.handleSlotChange }))));
9403
9446
  }
9404
9447
  get host() { return getElement(this); }
9405
9448
  static get style() { return pdsDropdownMenuCss; }
@@ -16505,7 +16548,7 @@ class PdsSwitch {
16505
16548
  }; }
16506
16549
  }
16507
16550
 
16508
- const pdsTabCss = "pds-tab{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;position:relative}.pds-tabs--pill pds-tab{-ms-flex:1;flex:1}.pds-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:var(--pine-border-width-none);-webkit-box-shadow:none;box-shadow:none;color:inherit;cursor:pointer;font-family:inherit;padding:var(--pine-dimension-none);-ms-flex-align:center;align-items:center;color:var(--pine-color-text-secondary);display:-ms-inline-flexbox;display:inline-flex;position:relative;text-decoration:none;white-space:nowrap}.pds-tab.is-active,.pds-tab[aria-selected=true]{color:var(--pine-color-text)}.pds-tab.is-active .pds-tab__content::after,.pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tab:hover:not(:disabled){color:var(--pine-color-text)}.pds-tab:focus{outline:none}.pds-tab:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tab:disabled,.pds-tab.is-disabled{color:var(--pine-color-text-disabled);cursor:not-allowed;pointer-events:none}.pds-tab .pds-tab__content{font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);-webkit-padding-after:11px;padding-block-end:11px;position:relative}.pds-tab .pds-tab__content::after{background-color:var(--pine-color-brand);content:\"\";height:3px;inset-block-end:var(--pine-dimension-none);inset-inline-end:var(--pine-dimension-none);inset-inline-start:var(--pine-dimension-none);opacity:0;position:absolute}.pds-tab .pds-tab-edge{display:none}.pds-tabs--availability{--color-background-tab:transparent}.pds-tabs--availability .pds-tab{background-color:var(--color-background-tab);border-radius:calc(var(--pine-dimension-xs) * 1.25) calc(var(--pine-dimension-xs) * 1.25) var(--pine-dimension-none) var(--pine-dimension-none);color:var(--pine-color-text-secondary);padding:8px 16px 13px}.pds-tabs--availability .pds-tab.is-active,.pds-tabs--availability .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-secondary);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab.is-active .pds-tab__content::after,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tabs--availability .pds-tab.is-active .pds-tab-edge,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab-edge{z-index:var(--pine-z-index-raised)}.pds-tabs--availability .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){--color-background-tab:var(--pine-color-secondary-hover);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab:focus-visible{color:var(--pine-color-text-secondary)}.pds-tabs--availability .pds-tab:disabled,.pds-tabs--availability .pds-tab.is-disabled{--color-background-tab:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--availability .pds-tab__content{-webkit-padding-after:7px;padding-block-end:7px}.pds-tabs--availability .pds-tab-edge{bottom:0;display:block;height:8px;inset-inline-end:100%;overflow:hidden;position:absolute;width:8px}.pds-tabs--availability .pds-tab-edge::before{border-radius:50%;bottom:0;-webkit-box-shadow:4px 4px 0 0 var(--color-background-tab);box-shadow:4px 4px 0 0 var(--color-background-tab);content:\"\";display:block;height:200%;inset-inline-end:0;position:absolute;width:200%}.pds-tabs--availability .pds-tab-edge--end{inset-inline-end:unset;inset-inline-start:100%}.pds-tabs--availability .pds-tab-edge--end::before{-webkit-box-shadow:-4px 4px 0 0 var(--color-background-tab);box-shadow:-4px 4px 0 0 var(--color-background-tab);inset-inline-end:unset;inset-inline-start:0}.pds-tabs--filter .pds-tab{background-color:var(--pine-color-background-muted);border-radius:50px;color:var(--pine-color-text);padding:6px 15px}.pds-tabs--filter .pds-tab.is-active,.pds-tabs--filter .pds-tab[aria-selected=true]{background-color:var(--pine-color-primary);color:var(--pine-color-text-primary)}.pds-tabs--filter .pds-tab.is-active:hover:not(:disabled),.pds-tabs--filter .pds-tab[aria-selected=true]:hover:not(:disabled){background-color:var(--pine-color-primary-hover)}.pds-tabs--filter .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){background-color:var(--pine-color-border-disabled)}.pds-tabs--filter .pds-tab:disabled,.pds-tabs--filter .pds-tab.is-disabled{background-color:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--filter .pds-tab:disabled.is-active,.pds-tabs--filter .pds-tab:disabled[aria-selected=true],.pds-tabs--filter .pds-tab.is-disabled.is-active,.pds-tabs--filter .pds-tab.is-disabled[aria-selected=true]{background-color:var(--pine-color-primary-disabled)}.pds-tabs--filter .pds-tab__content{-webkit-padding-after:var(--pine-dimension-none);padding-block-end:var(--pine-dimension-none)}.pds-tabs--filter .pds-tab__content::after{content:unset}.pds-tabs--pill{--color-background-tab:transparent}.pds-tabs--pill .pds-tab{background-color:var(--color-background-tab);border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-xs);color:var(--pine-color-text-muted);-ms-flex:1;flex:1;height:34px;-ms-flex-pack:center;justify-content:center}.pds-tabs--pill .pds-tab .pds-tab__content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-webkit-padding-after:0;padding-block-end:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-background-container);border-color:var(--pine-color-border);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);color:var(--pine-color-text-active)}.pds-tabs--pill .pds-tab.is-active:focus-visible,.pds-tabs--pill .pds-tab[aria-selected=true]:focus-visible{border-color:var(--color-border-focus);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab.is-active .pds-tab__content::after,.pds-tabs--pill .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab:disabled,.pds-tabs--pill .pds-tab.is-disabled{color:var(--pine-color-text-disabled)}";
16551
+ const pdsTabCss = "pds-tab{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;position:relative}.pds-tabs--pill pds-tab{-ms-flex:1;flex:1}.pds-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:var(--pine-border-width-none);-webkit-box-shadow:none;box-shadow:none;color:inherit;cursor:pointer;font-family:inherit;padding:var(--pine-dimension-none);-ms-flex-align:center;align-items:center;color:var(--pine-color-text-secondary);display:-ms-inline-flexbox;display:inline-flex;position:relative;text-decoration:none;white-space:nowrap}.pds-tab.is-active,.pds-tab[aria-selected=true]{color:var(--pine-color-text)}.pds-tab.is-active .pds-tab__content::after,.pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tab:hover:not(:disabled){color:var(--pine-color-text)}.pds-tab:focus{outline:none}.pds-tab:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tab:disabled,.pds-tab.is-disabled{color:var(--pine-color-text-disabled);cursor:not-allowed}.pds-tab .pds-tab__content{font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);-webkit-padding-after:11px;padding-block-end:11px;position:relative}.pds-tab .pds-tab__content::after{background-color:var(--pine-color-brand);content:\"\";height:3px;inset-block-end:var(--pine-dimension-none);inset-inline-end:var(--pine-dimension-none);inset-inline-start:var(--pine-dimension-none);opacity:0;position:absolute}.pds-tab .pds-tab-edge{display:none}.pds-tabs--availability{--color-background-tab:transparent}.pds-tabs--availability .pds-tab{background-color:var(--color-background-tab);border-radius:calc(var(--pine-dimension-xs) * 1.25) calc(var(--pine-dimension-xs) * 1.25) var(--pine-dimension-none) var(--pine-dimension-none);color:var(--pine-color-text-secondary);padding:8px 16px 13px}.pds-tabs--availability .pds-tab.is-active,.pds-tabs--availability .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-secondary);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab.is-active .pds-tab__content::after,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tabs--availability .pds-tab.is-active .pds-tab-edge,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab-edge{z-index:var(--pine-z-index-raised)}.pds-tabs--availability .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){--color-background-tab:var(--pine-color-secondary-hover);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab:focus-visible{color:var(--pine-color-text-secondary)}.pds-tabs--availability .pds-tab:disabled,.pds-tabs--availability .pds-tab.is-disabled{--color-background-tab:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--availability .pds-tab__content{-webkit-padding-after:7px;padding-block-end:7px}.pds-tabs--availability .pds-tab-edge{bottom:0;display:block;height:8px;inset-inline-end:100%;overflow:hidden;position:absolute;width:8px}.pds-tabs--availability .pds-tab-edge::before{border-radius:50%;bottom:0;-webkit-box-shadow:4px 4px 0 0 var(--color-background-tab);box-shadow:4px 4px 0 0 var(--color-background-tab);content:\"\";display:block;height:200%;inset-inline-end:0;position:absolute;width:200%}.pds-tabs--availability .pds-tab-edge--end{inset-inline-end:unset;inset-inline-start:100%}.pds-tabs--availability .pds-tab-edge--end::before{-webkit-box-shadow:-4px 4px 0 0 var(--color-background-tab);box-shadow:-4px 4px 0 0 var(--color-background-tab);inset-inline-end:unset;inset-inline-start:0}.pds-tabs--filter .pds-tab{background-color:var(--pine-color-background-muted);border-radius:50px;color:var(--pine-color-text);padding:6px 15px}.pds-tabs--filter .pds-tab.is-active,.pds-tabs--filter .pds-tab[aria-selected=true]{background-color:var(--pine-color-primary);color:var(--pine-color-text-primary)}.pds-tabs--filter .pds-tab.is-active:hover:not(:disabled),.pds-tabs--filter .pds-tab[aria-selected=true]:hover:not(:disabled){background-color:var(--pine-color-primary-hover)}.pds-tabs--filter .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){background-color:var(--pine-color-border-disabled)}.pds-tabs--filter .pds-tab:disabled,.pds-tabs--filter .pds-tab.is-disabled{background-color:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--filter .pds-tab:disabled.is-active,.pds-tabs--filter .pds-tab:disabled[aria-selected=true],.pds-tabs--filter .pds-tab.is-disabled.is-active,.pds-tabs--filter .pds-tab.is-disabled[aria-selected=true]{background-color:var(--pine-color-primary-disabled)}.pds-tabs--filter .pds-tab__content{-webkit-padding-after:var(--pine-dimension-none);padding-block-end:var(--pine-dimension-none)}.pds-tabs--filter .pds-tab__content::after{content:unset}.pds-tabs--pill{--color-background-tab:transparent}.pds-tabs--pill .pds-tab{background-color:var(--color-background-tab);border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-xs);color:var(--pine-color-text-muted);-ms-flex:1;flex:1;height:34px;-ms-flex-pack:center;justify-content:center}.pds-tabs--pill .pds-tab .pds-tab__content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-webkit-padding-after:0;padding-block-end:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-background-container);border-color:var(--pine-color-border);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);color:var(--pine-color-text-active)}.pds-tabs--pill .pds-tab.is-active:focus-visible,.pds-tabs--pill .pds-tab[aria-selected=true]:focus-visible{border-color:var(--color-border-focus);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab.is-active .pds-tab__content::after,.pds-tabs--pill .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab:disabled,.pds-tabs--pill .pds-tab.is-disabled{color:var(--pine-color-text-disabled)}";
16509
16552
 
16510
16553
  class PdsTab {
16511
16554
  constructor(hostRef) {
@@ -16598,9 +16641,12 @@ class PdsTable {
16598
16641
  this.setupResponsiveScrolling();
16599
16642
  }
16600
16643
  // Apply default sort if specified
16644
+ // Use requestAnimationFrame to defer until child components are fully initialized
16601
16645
  if (this.defaultSortColumn) {
16602
- void this.applyDefaultSort().catch((err) => {
16603
- console.warn('Failed to apply default sort.', err);
16646
+ requestAnimationFrame(() => {
16647
+ void this.applyDefaultSort().catch((err) => {
16648
+ console.warn('Failed to apply default sort.', err);
16649
+ });
16604
16650
  });
16605
16651
  }
16606
16652
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pine-ds/core",
3
- "version": "3.15.3-dev.0",
3
+ "version": "3.16.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Base components for Pine Design System",
@@ -85,7 +85,7 @@
85
85
  "@babel/preset-env": "^7.22.10",
86
86
  "@chromatic-com/storybook": "^4.1.3",
87
87
  "@mdx-js/rollup": "^3.1.1",
88
- "@pine-ds/doc-components": "^3.15.3-dev.0",
88
+ "@pine-ds/doc-components": "^3.16.0",
89
89
  "@stencil-community/eslint-plugin": "^0.8.0",
90
90
  "@stencil/react-output-target": "^0.5.3",
91
91
  "@stencil/sass": "^3.2.0",
@@ -1,2 +0,0 @@
1
- System.register(["./p-5D9wXQuJ.system.js"],(function(e){"use strict";var a,t,i,s,d;return{setters:[function(e){a=e.r;t=e.c;i=e.h;s=e.H;d=e.a}],execute:function(){var o='pds-tab{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;position:relative}.pds-tabs--pill pds-tab{-ms-flex:1;flex:1}.pds-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:var(--pine-border-width-none);-webkit-box-shadow:none;box-shadow:none;color:inherit;cursor:pointer;font-family:inherit;padding:var(--pine-dimension-none);-ms-flex-align:center;align-items:center;color:var(--pine-color-text-secondary);display:-ms-inline-flexbox;display:inline-flex;position:relative;text-decoration:none;white-space:nowrap}.pds-tab.is-active,.pds-tab[aria-selected=true]{color:var(--pine-color-text)}.pds-tab.is-active .pds-tab__content::after,.pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tab:hover:not(:disabled){color:var(--pine-color-text)}.pds-tab:focus{outline:none}.pds-tab:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tab:disabled,.pds-tab.is-disabled{color:var(--pine-color-text-disabled);cursor:not-allowed;pointer-events:none}.pds-tab .pds-tab__content{font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);-webkit-padding-after:11px;padding-block-end:11px;position:relative}.pds-tab .pds-tab__content::after{background-color:var(--pine-color-brand);content:"";height:3px;inset-block-end:var(--pine-dimension-none);inset-inline-end:var(--pine-dimension-none);inset-inline-start:var(--pine-dimension-none);opacity:0;position:absolute}.pds-tab .pds-tab-edge{display:none}.pds-tabs--availability{--color-background-tab:transparent}.pds-tabs--availability .pds-tab{background-color:var(--color-background-tab);border-radius:calc(var(--pine-dimension-xs) * 1.25) calc(var(--pine-dimension-xs) * 1.25) var(--pine-dimension-none) var(--pine-dimension-none);color:var(--pine-color-text-secondary);padding:8px 16px 13px}.pds-tabs--availability .pds-tab.is-active,.pds-tabs--availability .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-secondary);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab.is-active .pds-tab__content::after,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tabs--availability .pds-tab.is-active .pds-tab-edge,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab-edge{z-index:var(--pine-z-index-raised)}.pds-tabs--availability .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){--color-background-tab:var(--pine-color-secondary-hover);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab:focus-visible{color:var(--pine-color-text-secondary)}.pds-tabs--availability .pds-tab:disabled,.pds-tabs--availability .pds-tab.is-disabled{--color-background-tab:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--availability .pds-tab__content{-webkit-padding-after:7px;padding-block-end:7px}.pds-tabs--availability .pds-tab-edge{bottom:0;display:block;height:8px;inset-inline-end:100%;overflow:hidden;position:absolute;width:8px}.pds-tabs--availability .pds-tab-edge::before{border-radius:50%;bottom:0;-webkit-box-shadow:4px 4px 0 0 var(--color-background-tab);box-shadow:4px 4px 0 0 var(--color-background-tab);content:"";display:block;height:200%;inset-inline-end:0;position:absolute;width:200%}.pds-tabs--availability .pds-tab-edge--end{inset-inline-end:unset;inset-inline-start:100%}.pds-tabs--availability .pds-tab-edge--end::before{-webkit-box-shadow:-4px 4px 0 0 var(--color-background-tab);box-shadow:-4px 4px 0 0 var(--color-background-tab);inset-inline-end:unset;inset-inline-start:0}.pds-tabs--filter .pds-tab{background-color:var(--pine-color-background-muted);border-radius:50px;color:var(--pine-color-text);padding:6px 15px}.pds-tabs--filter .pds-tab.is-active,.pds-tabs--filter .pds-tab[aria-selected=true]{background-color:var(--pine-color-primary);color:var(--pine-color-text-primary)}.pds-tabs--filter .pds-tab.is-active:hover:not(:disabled),.pds-tabs--filter .pds-tab[aria-selected=true]:hover:not(:disabled){background-color:var(--pine-color-primary-hover)}.pds-tabs--filter .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){background-color:var(--pine-color-border-disabled)}.pds-tabs--filter .pds-tab:disabled,.pds-tabs--filter .pds-tab.is-disabled{background-color:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--filter .pds-tab:disabled.is-active,.pds-tabs--filter .pds-tab:disabled[aria-selected=true],.pds-tabs--filter .pds-tab.is-disabled.is-active,.pds-tabs--filter .pds-tab.is-disabled[aria-selected=true]{background-color:var(--pine-color-primary-disabled)}.pds-tabs--filter .pds-tab__content{-webkit-padding-after:var(--pine-dimension-none);padding-block-end:var(--pine-dimension-none)}.pds-tabs--filter .pds-tab__content::after{content:unset}.pds-tabs--pill{--color-background-tab:transparent}.pds-tabs--pill .pds-tab{background-color:var(--color-background-tab);border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-xs);color:var(--pine-color-text-muted);-ms-flex:1;flex:1;height:34px;-ms-flex-pack:center;justify-content:center}.pds-tabs--pill .pds-tab .pds-tab__content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-webkit-padding-after:0;padding-block-end:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-background-container);border-color:var(--pine-color-border);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);color:var(--pine-color-text-active)}.pds-tabs--pill .pds-tab.is-active:focus-visible,.pds-tabs--pill .pds-tab[aria-selected=true]:focus-visible{border-color:var(--color-border-focus);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab.is-active .pds-tab__content::after,.pds-tabs--pill .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab:disabled,.pds-tabs--pill .pds-tab.is-disabled{color:var(--pine-color-text-disabled)}';var n=e("pds_tab",function(){function e(e){a(this,e);this.pdsTabClick=t(this,"pdsTabClick");this.disabled=false;this.selected=false}e.prototype.onTabClick=function(e,a){if(this.disabled)return;this.pdsTabClick.emit([e,a])};e.prototype.classNames=function(){var e=["pds-tab",this.selected&&"is-active",this.disabled&&"is-disabled"];return e.filter(Boolean).join(" ")};e.prototype.render=function(){var e=i("span",{key:"934d84846bd84471047f9ab7503e5bb151426cbc",class:"pds-tab-edge",role:"presentation"});var a=i("span",{key:"e35b9da7b312ed95dab7bf803c40a22b3485ee05",class:"pds-tab-edge pds-tab-edge--end",role:"presentation"});return i(s,{key:"310188521230d3e16cff23b857769c4b5d04fd8d",variant:this.variant,slot:"tabs",index:this.index},i("button",{key:"9df38c2aa1fa29487fdce62ce7dc5f67df6bcde1",role:"tab",id:this.parentComponentId+"__"+this.name,"aria-controls":this.parentComponentId+"__"+this.name+"-panel",tabindex:this.disabled?"-1":this.selected?"0":"-1","aria-selected":this.selected?"true":"false","aria-disabled":this.disabled?"true":null,disabled:this.disabled,class:this.classNames(),onClick:this.onTabClick.bind(this,this.index,this.parentComponentId)},this.variant==="availability"&&e,this.variant==="availability"&&a,i("div",{key:"4936599dd547f236880ea9a0ccabc4b50836d1d5",class:"pds-tab__content"},i("slot",{key:"567388faf912bb307676cea9a4626ce9669087dd"}))))};Object.defineProperty(e.prototype,"el",{get:function(){return d(this)},enumerable:false,configurable:true});return e}());n.style=o}}}));
2
- //# sourceMappingURL=p-4a42e114.system.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as a,c as e,h as t,H as i,a as s}from"./p-DHPhrb5T.js";const d='pds-tab{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;position:relative}.pds-tabs--pill pds-tab{-ms-flex:1;flex:1}.pds-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:var(--pine-border-width-none);-webkit-box-shadow:none;box-shadow:none;color:inherit;cursor:pointer;font-family:inherit;padding:var(--pine-dimension-none);-ms-flex-align:center;align-items:center;color:var(--pine-color-text-secondary);display:-ms-inline-flexbox;display:inline-flex;position:relative;text-decoration:none;white-space:nowrap}.pds-tab.is-active,.pds-tab[aria-selected=true]{color:var(--pine-color-text)}.pds-tab.is-active .pds-tab__content::after,.pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tab:hover:not(:disabled){color:var(--pine-color-text)}.pds-tab:focus{outline:none}.pds-tab:focus-visible{outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tab:disabled,.pds-tab.is-disabled{color:var(--pine-color-text-disabled);cursor:not-allowed;pointer-events:none}.pds-tab .pds-tab__content{font-family:var(--pine-font-family-body);font-size:var(--pine-font-size);font-weight:var(--pine-font-weight-medium);letter-spacing:var(--pine-letter-spacing);line-height:var(--pine-line-height-body);-webkit-padding-after:11px;padding-block-end:11px;position:relative}.pds-tab .pds-tab__content::after{background-color:var(--pine-color-brand);content:"";height:3px;inset-block-end:var(--pine-dimension-none);inset-inline-end:var(--pine-dimension-none);inset-inline-start:var(--pine-dimension-none);opacity:0;position:absolute}.pds-tab .pds-tab-edge{display:none}.pds-tabs--availability{--color-background-tab:transparent}.pds-tabs--availability .pds-tab{background-color:var(--color-background-tab);border-radius:calc(var(--pine-dimension-xs) * 1.25) calc(var(--pine-dimension-xs) * 1.25) var(--pine-dimension-none) var(--pine-dimension-none);color:var(--pine-color-text-secondary);padding:8px 16px 13px}.pds-tabs--availability .pds-tab.is-active,.pds-tabs--availability .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-secondary);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab.is-active .pds-tab__content::after,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:1}.pds-tabs--availability .pds-tab.is-active .pds-tab-edge,.pds-tabs--availability .pds-tab[aria-selected=true] .pds-tab-edge{z-index:var(--pine-z-index-raised)}.pds-tabs--availability .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){--color-background-tab:var(--pine-color-secondary-hover);color:var(--pine-color-text)}.pds-tabs--availability .pds-tab:focus-visible{color:var(--pine-color-text-secondary)}.pds-tabs--availability .pds-tab:disabled,.pds-tabs--availability .pds-tab.is-disabled{--color-background-tab:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--availability .pds-tab__content{-webkit-padding-after:7px;padding-block-end:7px}.pds-tabs--availability .pds-tab-edge{bottom:0;display:block;height:8px;inset-inline-end:100%;overflow:hidden;position:absolute;width:8px}.pds-tabs--availability .pds-tab-edge::before{border-radius:50%;bottom:0;-webkit-box-shadow:4px 4px 0 0 var(--color-background-tab);box-shadow:4px 4px 0 0 var(--color-background-tab);content:"";display:block;height:200%;inset-inline-end:0;position:absolute;width:200%}.pds-tabs--availability .pds-tab-edge--end{inset-inline-end:unset;inset-inline-start:100%}.pds-tabs--availability .pds-tab-edge--end::before{-webkit-box-shadow:-4px 4px 0 0 var(--color-background-tab);box-shadow:-4px 4px 0 0 var(--color-background-tab);inset-inline-end:unset;inset-inline-start:0}.pds-tabs--filter .pds-tab{background-color:var(--pine-color-background-muted);border-radius:50px;color:var(--pine-color-text);padding:6px 15px}.pds-tabs--filter .pds-tab.is-active,.pds-tabs--filter .pds-tab[aria-selected=true]{background-color:var(--pine-color-primary);color:var(--pine-color-text-primary)}.pds-tabs--filter .pds-tab.is-active:hover:not(:disabled),.pds-tabs--filter .pds-tab[aria-selected=true]:hover:not(:disabled){background-color:var(--pine-color-primary-hover)}.pds-tabs--filter .pds-tab:hover:not(.is-active,[aria-selected=true],:disabled){background-color:var(--pine-color-border-disabled)}.pds-tabs--filter .pds-tab:disabled,.pds-tabs--filter .pds-tab.is-disabled{background-color:transparent;color:var(--pine-color-text-disabled)}.pds-tabs--filter .pds-tab:disabled.is-active,.pds-tabs--filter .pds-tab:disabled[aria-selected=true],.pds-tabs--filter .pds-tab.is-disabled.is-active,.pds-tabs--filter .pds-tab.is-disabled[aria-selected=true]{background-color:var(--pine-color-primary-disabled)}.pds-tabs--filter .pds-tab__content{-webkit-padding-after:var(--pine-dimension-none);padding-block-end:var(--pine-dimension-none)}.pds-tabs--filter .pds-tab__content::after{content:unset}.pds-tabs--pill{--color-background-tab:transparent}.pds-tabs--pill .pds-tab{background-color:var(--color-background-tab);border:var(--pine-border-width-thin) solid transparent;border-radius:var(--pine-dimension-xs);color:var(--pine-color-text-muted);-ms-flex:1;flex:1;height:34px;-ms-flex-pack:center;justify-content:center}.pds-tabs--pill .pds-tab .pds-tab__content{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-webkit-padding-after:0;padding-block-end:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{--color-background-tab:var(--pine-color-background-container);border-color:var(--pine-color-border);-webkit-box-shadow:var(--pine-box-shadow-100);box-shadow:var(--pine-box-shadow-100);color:var(--pine-color-text-active)}.pds-tabs--pill .pds-tab.is-active:focus-visible,.pds-tabs--pill .pds-tab[aria-selected=true]:focus-visible{border-color:var(--color-border-focus);outline:var(--pine-outline-focus);outline-offset:var(--pine-border-width)}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab.is-active .pds-tab__content::after,.pds-tabs--pill .pds-tab[aria-selected=true] .pds-tab__content::after{opacity:0}.pds-tabs--pill .pds-tab.is-active,.pds-tabs--pill .pds-tab[aria-selected=true]{}.pds-tabs--pill .pds-tab:disabled,.pds-tabs--pill .pds-tab.is-disabled{color:var(--pine-color-text-disabled)}';const o=class{constructor(t){a(this,t);this.pdsTabClick=e(this,"pdsTabClick");this.disabled=false;this.selected=false}onTabClick(a,e){if(this.disabled)return;this.pdsTabClick.emit([a,e])}classNames(){const a=["pds-tab",this.selected&&"is-active",this.disabled&&"is-disabled"];return a.filter(Boolean).join(" ")}render(){const a=t("span",{key:"934d84846bd84471047f9ab7503e5bb151426cbc",class:"pds-tab-edge",role:"presentation"});const e=t("span",{key:"e35b9da7b312ed95dab7bf803c40a22b3485ee05",class:"pds-tab-edge pds-tab-edge--end",role:"presentation"});return t(i,{key:"310188521230d3e16cff23b857769c4b5d04fd8d",variant:this.variant,slot:"tabs",index:this.index},t("button",{key:"9df38c2aa1fa29487fdce62ce7dc5f67df6bcde1",role:"tab",id:this.parentComponentId+"__"+this.name,"aria-controls":this.parentComponentId+"__"+this.name+"-panel",tabindex:this.disabled?"-1":this.selected?"0":"-1","aria-selected":this.selected?"true":"false","aria-disabled":this.disabled?"true":null,disabled:this.disabled,class:this.classNames(),onClick:this.onTabClick.bind(this,this.index,this.parentComponentId)},this.variant==="availability"&&a,this.variant==="availability"&&e,t("div",{key:"4936599dd547f236880ea9a0ccabc4b50836d1d5",class:"pds-tab__content"},t("slot",{key:"567388faf912bb307676cea9a4626ce9669087dd"}))))}get el(){return s(this)}};o.style=d;export{o as pds_tab};
2
- //# sourceMappingURL=p-5ef5f6b3.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as i,h as s,H as t,a as e}from"./p-DHPhrb5T.js";import{a as h,c as n,o,f as d,s as a}from"./p-BO6p966C.js";const r=":host{display:block}.is-hidden{display:none}.pds-dropdown-menu--panel{background-color:var(--pine-color-background-container);border-radius:var(--pine-dimension-xs);left:var(--pine-dimension-none);min-width:170px;padding:var(--pine-dimension-xs);position:fixed;z-index:var(--pine-z-index-overlay)}:host-context([data-theme=dark]) .pds-dropdown-menu--panel{border:var(--pine-border)}";const l=class{constructor(s){i(this,s);this.isOpen=false;this.menuItems=[];this.cleanupAutoUpdate=null;this.currentFocusIndex=-1;this.placement="bottom-start";this.handleTriggerSlotChange=i=>{this.slotEl=i.target;const s=this.slotEl.assignedElements();this.triggerEl=s[0];this.triggerEl.onclick=this.handleClick;this.triggerEl.setAttribute("aria-haspopup","menu");this.triggerEl.setAttribute("aria-expanded","false")};this.handleSlotChange=i=>{this.slotEl=i.target;const s=this.slotEl.assignedElements();const t=s.filter((i=>i.tagName.toLowerCase()!=="pds-dropdown-menu-item"&&i.tagName.toLowerCase()!=="pds-dropdown-menu-separator"));if(t.length>0){throw new Error(`pds-dropdown-menu only accepts pds-dropdown-menu-item and pds-dropdown-menu-separator elements`)}this.menuItems=s.filter((i=>i.tagName.toLowerCase()==="pds-dropdown-menu-item"))};this.toggleDropdown=()=>{this.isOpen=!this.isOpen;if(this.isOpen){this.openDropdown()}else{this.closeDropdown()}};this.openDropdown=()=>{var i;const s=()=>{n(this.triggerEl,this.panelEl,{placement:this.placement,strategy:"fixed",middleware:[o(6),d(),a({padding:5})]}).then((({x:i,y:s})=>{Object.assign(this.panelEl.style,{left:`${i}px`,top:`${s}px`})}))};s();this.cleanupAutoUpdate=h(this.triggerEl,this.panelEl,s);(i=this.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box").classList.remove("is-hidden");this.isOpen=true;this.triggerEl.setAttribute("aria-expanded","true")};this.closeDropdown=()=>{var i;(i=this.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box").classList.add("is-hidden");this.isOpen=false;if(this.cleanupAutoUpdate){this.cleanupAutoUpdate();this.cleanupAutoUpdate=null}this.triggerEl.setAttribute("aria-expanded","false");this.currentFocusIndex=-1;this.triggerEl.focus()};this.handleClick=()=>{this.toggleDropdown()}}componentDidRender(){var i;this.panelEl=(i=this.host.shadowRoot)===null||i===void 0?void 0:i.querySelector("pds-box")}disconnectedCallback(){if(this.cleanupAutoUpdate){this.cleanupAutoUpdate();this.cleanupAutoUpdate=null}}getFocusedItemIndex(){const i=document.activeElement;if(!i)return-1;return this.menuItems.findIndex((s=>s===i))}focusItemByIndex(i){var s,t,e,h;if(i>=0&&i<this.menuItems.length){this.currentFocusIndex=i;const n=this.menuItems[i];const o=(s=n.shadowRoot)===null||s===void 0?void 0:s.querySelector("button");const d=(h=(e=(t=n.shadowRoot)===null||t===void 0?void 0:t.querySelector("pds-link"))===null||e===void 0?void 0:e.shadowRoot)===null||h===void 0?void 0:h.querySelector("a");if(o){return o.focus()}else if(d){return d.focus()}else{n.focus()}}}focusNextItem(){let i=(this.currentFocusIndex+1)%this.menuItems.length;let s=0;const t=this.menuItems.length;while(s<t&&this.menuItems[i].disabled){i=(i+1)%this.menuItems.length;s++}if(s<t){this.focusItemByIndex(i)}}focusPreviousItem(){let i=this.currentFocusIndex<=0?this.menuItems.length-1:this.currentFocusIndex-1;let s=0;const t=this.menuItems.length;while(s<t&&this.menuItems[i].disabled){i=i<=0?this.menuItems.length-1:i-1;s++}if(s<t){this.focusItemByIndex(i)}}handleKeyDown(i){if(!this.isOpen)return;switch(i.key){case"Escape":i.preventDefault();this.closeDropdown();break;case"ArrowDown":i.preventDefault();this.focusNextItem();break;case"ArrowUp":i.preventDefault();this.focusPreviousItem();break;case"Home":i.preventDefault();if(this.menuItems.length>0){let i=0;while(i<this.menuItems.length&&this.menuItems[i].disabled){i++}if(i<this.menuItems.length){this.focusItemByIndex(i)}}break;case"End":i.preventDefault();if(this.menuItems.length>0){let i=this.menuItems.length-1;while(i>=0&&this.menuItems[i].disabled){i--}if(i>=0){this.focusItemByIndex(i)}}break;case"Tab":if(i.shiftKey){const s=this.getFocusedItemIndex();if(s>0){i.preventDefault();this.focusPreviousItem()}}else{const s=document.activeElement;const t=s===this.triggerEl;const e=this.getFocusedItemIndex();if(t&&this.menuItems.length>0){i.preventDefault();let s=0;while(s<this.menuItems.length&&this.menuItems[s].disabled){s++}if(s<this.menuItems.length){this.focusItemByIndex(s)}}else if(e===-1&&this.menuItems.length>0){i.preventDefault();let s=0;while(s<this.menuItems.length&&this.menuItems[s].disabled){s++}if(s<this.menuItems.length){this.focusItemByIndex(s)}}else if(e!==-1){i.preventDefault();this.focusNextItem()}}break}}handleWindowClick(i){if(this.isOpen&&!this.host.contains(i.target)&&i.target!==this.triggerEl){this.closeDropdown()}}render(){return s(t,{key:"bedd78a69e84f10abb3c714c02227fa76e255a35",id:this.componentId},s("slot",{key:"d2bf56037a85679a677470d04865823966ca19d6",name:"trigger",onSlotchange:this.handleTriggerSlotChange}),s("pds-box",{key:"64f56896103bb6cca6c71020d3d37c375d300c40","border-radius":"sm",display:"flex",direction:"column",class:"pds-dropdown-menu--panel is-hidden",shadow:"100",role:"menu","aria-orientation":"vertical",part:"menu-panel"},s("slot",{key:"0303160562f74fe9d32cc020c4539a7c8fc288a9",onSlotchange:this.handleSlotChange})))}get host(){return e(this)}};l.style=r;export{l as pds_dropdown_menu};
2
- //# sourceMappingURL=p-9660a2c2.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["registerInstance","h","Host","getElement","autoUpdate","computePosition","offset","flip","shift","pdsDropdownMenuCss","PdsDropdownMenu","constructor","hostRef","this","isOpen","menuItems","cleanupAutoUpdate","currentFocusIndex","placement","handleTriggerSlotChange","event","slotEl","target","assignedElements","triggerEl","onclick","handleClick","setAttribute","handleSlotChange","invalidElements","filter","el","tagName","toLowerCase","length","Error","toggleDropdown","openDropdown","closeDropdown","_a","updatePosition","panelEl","strategy","middleware","padding","then","x","y","Object","assign","style","left","top","host","shadowRoot","querySelector","classList","remove","add","focus","componentDidRender","disconnectedCallback","getFocusedItemIndex","activeElement","document","findIndex","item","focusItemByIndex","index","_b","_c","_d","menuItem","innerButton","innerLink","focusNextItem","nextIndex","attempts","maxAttempts","disabled","focusPreviousItem","prevIndex","handleKeyDown","key","preventDefault","firstIndex","lastIndex","shiftKey","currentIndex","isTriggerFocused","firstFocusableIndex","handleWindowClick","contains","render","id","componentId","name","onSlotchange","display","direction","class","shadow","role","part"],"sources":["0"],"mappings":"YAAcA,OAAkBC,OAAQC,OAAWC,MAAkB,8BACvDC,OAAiBC,EAAsBC,OAAaC,OAAWC,MAAa,kBAE1F,MAAMC,EAAqB,iYAE3B,MAAMC,EAAkB,MACpB,WAAAC,CAAYC,GACRZ,EAAiBa,KAAMD,GACvBC,KAAKC,OAAS,MACdD,KAAKE,UAAY,GACjBF,KAAKG,kBAAoB,KACzBH,KAAKI,mBAAqB,EAI1BJ,KAAKK,UAAY,eACjBL,KAAKM,wBAA2BC,IAC5BP,KAAKQ,OAASD,EAAME,OAEpB,MAAMC,EAAmBV,KAAKQ,OAAOE,mBACrCV,KAAKW,UAAYD,EAAiB,GAClCV,KAAKW,UAAUC,QAAUZ,KAAKa,YAE9Bb,KAAKW,UAAUG,aAAa,gBAAiB,QAC7Cd,KAAKW,UAAUG,aAAa,gBAAiB,QAAQ,EAEzDd,KAAKe,iBAAoBR,IACrBP,KAAKQ,OAASD,EAAME,OAEpB,MAAMC,EAAmBV,KAAKQ,OAAOE,mBAGrC,MAAMM,EAAkBN,EAAiBO,QAAOC,GAAMA,EAAGC,QAAQC,gBAAkB,0BAA4BF,EAAGC,QAAQC,gBAAkB,gCAC5I,GAAIJ,EAAgBK,OAAS,EAAG,CAC5B,MAAM,IAAIC,MAAM,iGACpB,CAEAtB,KAAKE,UAAYQ,EAAiBO,QAAOC,GAAMA,EAAGC,QAAQC,gBAAkB,0BAAyB,EAGzGpB,KAAKuB,eAAiB,KAClBvB,KAAKC,QAAUD,KAAKC,OACpB,GAAID,KAAKC,OAAQ,CACbD,KAAKwB,cACT,KACK,CACDxB,KAAKyB,eACT,GAGJzB,KAAKwB,aAAe,KAChB,IAAIE,EACJ,MAAMC,EAAiB,KACnBnC,EAAgBQ,KAAKW,UAAWX,KAAK4B,QAAS,CAC1CvB,UAAWL,KAAKK,UAChBwB,SAAU,QACVC,WAAY,CAACrC,EAAO,GAAIC,IAAQC,EAAM,CAAEoC,QAAS,OAClDC,MAAK,EAAGC,IAAGC,QACVC,OAAOC,OAAOpC,KAAK4B,QAAQS,MAAO,CAC9BC,KAAM,GAAGL,MACTM,IAAK,GAAGL,OACV,GACJ,EAGNP,IAEA3B,KAAKG,kBAAoBZ,EAAWS,KAAKW,UAAWX,KAAK4B,QAASD,IACjED,EAAK1B,KAAKwC,KAAKC,cAAgB,MAAQf,SAAY,OAAS,EAAIA,EAAGgB,cAAc,WAAWC,UAAUC,OAAO,aAC9G5C,KAAKC,OAAS,KAEdD,KAAKW,UAAUG,aAAa,gBAAiB,OAAO,EAGxDd,KAAKyB,cAAgB,KACjB,IAAIC,GACHA,EAAK1B,KAAKwC,KAAKC,cAAgB,MAAQf,SAAY,OAAS,EAAIA,EAAGgB,cAAc,WAAWC,UAAUE,IAAI,aAC3G7C,KAAKC,OAAS,MAEd,GAAID,KAAKG,kBAAmB,CACxBH,KAAKG,oBACLH,KAAKG,kBAAoB,IAC7B,CAEAH,KAAKW,UAAUG,aAAa,gBAAiB,SAE7Cd,KAAKI,mBAAqB,EAE1BJ,KAAKW,UAAUmC,OAAO,EAG1B9C,KAAKa,YAAc,KACfb,KAAKuB,gBAAgB,CAE7B,CACA,kBAAAwB,GACI,IAAIrB,EACJ1B,KAAK4B,SAAWF,EAAK1B,KAAKwC,KAAKC,cAAgB,MAAQf,SAAY,OAAS,EAAIA,EAAGgB,cAAc,UACrG,CACA,oBAAAM,GAEI,GAAIhD,KAAKG,kBAAmB,CACxBH,KAAKG,oBACLH,KAAKG,kBAAoB,IAC7B,CACJ,CAEA,mBAAA8C,GACI,MAAMC,EAAgBC,SAASD,cAC/B,IAAKA,EACD,OAAQ,EACZ,OAAOlD,KAAKE,UAAUkD,WAAUC,GAAQA,IAASH,GACrD,CAEA,gBAAAI,CAAiBC,GACb,IAAI7B,EAAI8B,EAAIC,EAAIC,EAChB,GAAIH,GAAS,GAAKA,EAAQvD,KAAKE,UAAUmB,OAAQ,CAC7CrB,KAAKI,kBAAoBmD,EAEzB,MAAMI,EAAW3D,KAAKE,UAAUqD,GAChC,MAAMK,GAAelC,EAAKiC,EAASlB,cAAgB,MAAQf,SAAY,OAAS,EAAIA,EAAGgB,cAAc,UACrG,MAAMmB,GAAaH,GAAMD,GAAMD,EAAKG,EAASlB,cAAgB,MAAQe,SAAY,OAAS,EAAIA,EAAGd,cAAc,eAAiB,MAAQe,SAAY,OAAS,EAAIA,EAAGhB,cAAgB,MAAQiB,SAAY,OAAS,EAAIA,EAAGhB,cAAc,KACtO,GAAIkB,EAAa,CACb,OAAOA,EAAYd,OACvB,MACK,GAAIe,EAAW,CAChB,OAAOA,EAAUf,OACrB,KACK,CAEDa,EAASb,OACb,CACJ,CACJ,CAEA,aAAAgB,GACI,IAAIC,GAAa/D,KAAKI,kBAAoB,GAAKJ,KAAKE,UAAUmB,OAE9D,IAAI2C,EAAW,EACf,MAAMC,EAAcjE,KAAKE,UAAUmB,OACnC,MAAO2C,EAAWC,GAAejE,KAAKE,UAAU6D,GAAWG,SAAU,CACjEH,GAAaA,EAAY,GAAK/D,KAAKE,UAAUmB,OAC7C2C,GACJ,CAEA,GAAIA,EAAWC,EAAa,CACxBjE,KAAKsD,iBAAiBS,EAC1B,CACJ,CAEA,iBAAAI,GACI,IAAIC,EAAYpE,KAAKI,mBAAqB,EACpCJ,KAAKE,UAAUmB,OAAS,EACxBrB,KAAKI,kBAAoB,EAE/B,IAAI4D,EAAW,EACf,MAAMC,EAAcjE,KAAKE,UAAUmB,OACnC,MAAO2C,EAAWC,GAAejE,KAAKE,UAAUkE,GAAWF,SAAU,CACjEE,EAAYA,GAAa,EAAIpE,KAAKE,UAAUmB,OAAS,EAAI+C,EAAY,EACrEJ,GACJ,CAEA,GAAIA,EAAWC,EAAa,CACxBjE,KAAKsD,iBAAiBc,EAC1B,CACJ,CAEA,aAAAC,CAAc9D,GACV,IAAKP,KAAKC,OACN,OACJ,OAAQM,EAAM+D,KACV,IAAK,SACD/D,EAAMgE,iBACNvE,KAAKyB,gBACL,MACJ,IAAK,YACDlB,EAAMgE,iBACNvE,KAAK8D,gBACL,MACJ,IAAK,UACDvD,EAAMgE,iBACNvE,KAAKmE,oBACL,MACJ,IAAK,OACD5D,EAAMgE,iBACN,GAAIvE,KAAKE,UAAUmB,OAAS,EAAG,CAE3B,IAAImD,EAAa,EACjB,MAAOA,EAAaxE,KAAKE,UAAUmB,QAAUrB,KAAKE,UAAUsE,GAAYN,SAAU,CAC9EM,GACJ,CACA,GAAIA,EAAaxE,KAAKE,UAAUmB,OAAQ,CACpCrB,KAAKsD,iBAAiBkB,EAC1B,CACJ,CACA,MACJ,IAAK,MACDjE,EAAMgE,iBACN,GAAIvE,KAAKE,UAAUmB,OAAS,EAAG,CAE3B,IAAIoD,EAAYzE,KAAKE,UAAUmB,OAAS,EACxC,MAAOoD,GAAa,GAAKzE,KAAKE,UAAUuE,GAAWP,SAAU,CACzDO,GACJ,CACA,GAAIA,GAAa,EAAG,CAChBzE,KAAKsD,iBAAiBmB,EAC1B,CACJ,CACA,MACJ,IAAK,MACD,GAAIlE,EAAMmE,SAAU,CAGhB,MAAMC,EAAe3E,KAAKiD,sBAC1B,GAAI0B,EAAe,EAAG,CAElBpE,EAAMgE,iBACNvE,KAAKmE,mBACT,CAEJ,KACK,CAED,MAAMjB,EAAgBC,SAASD,cAC/B,MAAM0B,EAAmB1B,IAAkBlD,KAAKW,UAChD,MAAMgE,EAAe3E,KAAKiD,sBAC1B,GAAI2B,GAAoB5E,KAAKE,UAAUmB,OAAS,EAAG,CAE/Cd,EAAMgE,iBAEN,IAAIM,EAAsB,EAC1B,MAAOA,EAAsB7E,KAAKE,UAAUmB,QAAUrB,KAAKE,UAAU2E,GAAqBX,SAAU,CAChGW,GACJ,CACA,GAAIA,EAAsB7E,KAAKE,UAAUmB,OAAQ,CAC7CrB,KAAKsD,iBAAiBuB,EAC1B,CACJ,MACK,GAAIF,KAAkB,GAAK3E,KAAKE,UAAUmB,OAAS,EAAG,CAEvDd,EAAMgE,iBAEN,IAAIM,EAAsB,EAC1B,MAAOA,EAAsB7E,KAAKE,UAAUmB,QAAUrB,KAAKE,UAAU2E,GAAqBX,SAAU,CAChGW,GACJ,CACA,GAAIA,EAAsB7E,KAAKE,UAAUmB,OAAQ,CAC7CrB,KAAKsD,iBAAiBuB,EAC1B,CACJ,MACK,GAAIF,KAAkB,EAAG,CAE1BpE,EAAMgE,iBACNvE,KAAK8D,eACT,CACJ,CACA,MAEZ,CAEA,iBAAAgB,CAAkBvE,GACd,GAAIP,KAAKC,SAAWD,KAAKwC,KAAKuC,SAASxE,EAAME,SAAWF,EAAME,SAAWT,KAAKW,UAAW,CACrFX,KAAKyB,eACT,CACJ,CACA,MAAAuD,GACI,OAAQ5F,EAAEC,EAAM,CAAEiF,IAAK,2CAA4CW,GAAIjF,KAAKkF,aAAe9F,EAAE,OAAQ,CAAEkF,IAAK,2CAA4Ca,KAAM,UAAWC,aAAcpF,KAAKM,0BAA4BlB,EAAE,UAAW,CAAEkF,IAAK,2CAA4C,gBAAiB,KAAMe,QAAS,OAAQC,UAAW,SAAUC,MAAO,qCAAsCC,OAAQ,MAAOC,KAAM,OAAQ,mBAAoB,WAAYC,KAAM,cAAgBtG,EAAE,OAAQ,CAAEkF,IAAK,2CAA4Cc,aAAcpF,KAAKe,oBACziB,CACA,QAAIyB,GAAS,OAAOlD,EAAWU,KAAO,GAE1CH,EAAgBwC,MAAQzC,SAEfC","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as s,H as e,a as o}from"./p-DHPhrb5T.js";const r='@charset "UTF-8";:host{--color-background-default:var(--pine-color-background-container);background:var(--color-background-default);border-collapse:separate;border-radius:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;display:table;width:100%}:host(:focus-visible){outline:var(--pine-outline-focus)}:host(.pds-table-responsive-host){border-radius:inherit;-webkit-box-sizing:border-box !important;box-sizing:border-box !important;display:block !important;max-width:100% !important;overflow:hidden !important;position:relative !important;width:100% !important}.pds-table-responsive-container{border-radius:inherit;-webkit-box-sizing:border-box !important;box-sizing:border-box !important;overflow-x:auto !important;overflow-y:visible !important;position:relative !important;width:100% !important}.pds-table-responsive-wrapper{border-radius:inherit;-webkit-box-sizing:border-box !important;box-sizing:border-box !important;display:block !important;position:relative !important;width:100% !important}.pds-table-responsive-wrapper .pds-table{display:table !important;min-width:-webkit-max-content !important;min-width:-moz-max-content !important;min-width:max-content !important;table-layout:auto !important;white-space:nowrap !important;width:100% !important}.scroll-shadow-left,.scroll-shadow-right{height:100%;opacity:0;pointer-events:none;position:absolute;top:0;-webkit-transition:opacity 0.1s ease;transition:opacity 0.1s ease;width:4px;z-index:var(--pine-z-index)}.scroll-shadow-left{background:-webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to right, rgba(0, 0, 0, 0.1), transparent);border-bottom-left-radius:inherit;border-top-left-radius:inherit;left:0}.scroll-shadow-right{background:-webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.1)), to(transparent));background:linear-gradient(to left, rgba(0, 0, 0, 0.1), transparent);border-bottom-right-radius:inherit;border-top-right-radius:inherit;right:0}';const n=class{constructor(s){t(this,s);this.pdsTableSelect=i(this,"pdsTableSelect");this.pdsTableSelectAll=i(this,"pdsTableSelectAll");this.scrollContainer=null;this._responsiveHandleScroll=null;this._responsiveHandleResize=null;this._responsiveResizeObserver=null;this._teardownResponsive=null;this.rowDividers=false;this.defaultSortDirection="asc";this.sortingColumn=null;this.sortingDirection="asc"}componentDidLoad(){if(this.responsive){this.setupResponsiveScrolling()}if(this.defaultSortColumn){void this.applyDefaultSort().catch((t=>{console.warn("Failed to apply default sort.",t)}))}}async applyDefaultSort(){var t;const i=this.defaultSortDirection==="desc"?"desc":"asc";const s=Array.from(this.el.querySelectorAll("pds-table-head-cell[sortable]"));const e=s.find((t=>{var i;return((i=t.textContent)!==null&&i!==void 0?i:"").trim()===this.defaultSortColumn}));if(e){const s=((t=e.textContent)!==null&&t!==void 0?t:"").trim();this.sortTable(s,i);this.sortingColumn=s;this.sortingDirection=i;await e.setActiveSort(i)}else{console.warn(`Default sort column "${this.defaultSortColumn}" not found.`)}}disconnectedCallback(){if(this._teardownResponsive){this._teardownResponsive();this._teardownResponsive=null}}setupResponsiveScrolling(){var t,i,s;const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector(".pds-table-responsive-container");const o=(i=this.el.shadowRoot)===null||i===void 0?void 0:i.querySelector(".scroll-shadow-left");const r=(s=this.el.shadowRoot)===null||s===void 0?void 0:s.querySelector(".scroll-shadow-right");if(!e||!o||!r)return;this.scrollContainer=e;this._responsiveHandleScroll=()=>{if(!this.scrollContainer)return;const t=this.scrollContainer.scrollLeft;const i=this.scrollContainer.scrollWidth-this.scrollContainer.clientWidth;o.style.opacity=t>0&&!this.fixedColumn?"1":"0";r.style.opacity=i>0&&t<i-1?"1":"0"};this.scrollContainer.addEventListener("scroll",this._responsiveHandleScroll,{passive:true});if(typeof window!=="undefined"&&window.ResizeObserver){try{this._responsiveResizeObserver=new ResizeObserver((()=>{var t;(t=this._responsiveHandleScroll)===null||t===void 0?void 0:t.call(this)}));this._responsiveResizeObserver.observe(this.scrollContainer)}catch(t){}}if(typeof window!=="undefined"){this._responsiveHandleResize=()=>{var t;(t=this._responsiveHandleScroll)===null||t===void 0?void 0:t.call(this)};window.addEventListener("resize",this._responsiveHandleResize)}this._teardownResponsive=()=>{if(this.scrollContainer&&this._responsiveHandleScroll){this.scrollContainer.removeEventListener("scroll",this._responsiveHandleScroll);this.scrollContainer=null}if(this._responsiveResizeObserver){this._responsiveResizeObserver.disconnect();this._responsiveResizeObserver=null}if(typeof window!=="undefined"&&this._responsiveHandleResize){window.removeEventListener("resize",this._responsiveHandleResize);this._responsiveHandleResize=null}this._responsiveHandleScroll=null};this._responsiveHandleScroll()}classNames(){const t=["pds-table"];if(this.compact){t.push("is-compact")}if(this.responsive){t.push("is-responsive")}return t.join(" ")}sortTable(t,i){const s=this.el.querySelector("pds-table-body");if(!s)return;const e=Array.from(s.querySelectorAll("pds-table-row"));const o=Array.from(this.el.querySelectorAll("pds-table-head-cell[sortable]"));const r=o.find((i=>i.innerText.trim()===t));if(!r){console.warn(`Column "${t}" not found.`);return}const n=o.indexOf(r);e.sort(((t,s)=>{const e=t.querySelector(`pds-table-cell:nth-child(${n+1})`).textContent.trim();const o=s.querySelector(`pds-table-cell:nth-child(${n+1})`).textContent.trim();if(i==="asc"){return e.localeCompare(o,undefined,{sensitivity:"base"})}else{return o.localeCompare(e,undefined,{sensitivity:"base"})}}));s.innerHTML="";e.forEach((t=>{s.appendChild(t)}))}handleTableSort(t){if(t.defaultPrevented)return;const{direction:i}=t.detail;this.sortTable(t.detail.column,i);this.sortingColumn=t.detail.column;this.sortingDirection=i}handleTableSelectAll(t){if(t.defaultPrevented)return;const i=this.el.querySelector("pds-table-body");const s=Array.from(i.querySelectorAll("pds-table-row"));s.forEach((i=>{i.isSelected=t.detail.isSelected}))}async handleTableSelect(t){if(t.defaultPrevented)return;const i=this.el.querySelectorAll("pds-table-row");const s=Array.from(i).every((t=>t.isSelected));const e=Array.from(i).every((t=>!t.isSelected));const o=this.el.querySelector("pds-table-head");if(!o)return;const r=o.shadowRoot.querySelector("pds-checkbox");r.checked=s;r.indeterminate=!s&&!e}render(){if(this.responsive){return s(e,{class:"pds-table is-responsive pds-table-responsive-host",id:this.componentId,role:"grid",selectable:this.selectable,tabindex:"0",part:"table responsive-table"},s("div",{class:"scroll-shadow-left",part:"scroll-shadow-left"}),s("div",{class:"scroll-shadow-right",part:"scroll-shadow-right"}),s("div",{class:"pds-table-responsive-container",part:"responsive-container"},s("div",{class:"pds-table-responsive-wrapper",part:"responsive-wrapper"},s("div",{class:this.classNames(),part:"table-inner"},s("slot",null)))))}return s(e,{class:this.classNames(),id:this.componentId,role:"grid",selectable:this.selectable,tabindex:"0",part:"table"},s("slot",null))}get el(){return o(this)}};n.style=r;export{n as pds_table};
2
- //# sourceMappingURL=p-9c0ec80a.entry.js.map