@ds-mo/ui 0.13.0 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +2 -0
  2. package/dist/components/ds-bar-nav-action.js +1 -1
  3. package/dist/components/ds-bar-nav.js +1 -1
  4. package/dist/components/ds-bar-nav.js.map +1 -1
  5. package/dist/components/ds-breadcrumb.js +1 -1
  6. package/dist/components/ds-button-group.js +1 -1
  7. package/dist/components/ds-button.js +1 -1
  8. package/dist/components/ds-card.js +1 -1
  9. package/dist/components/ds-card.js.map +1 -1
  10. package/dist/components/ds-checkbox.js +1 -1
  11. package/dist/components/ds-divider.js +1 -1
  12. package/dist/components/ds-empty-state.js +1 -1
  13. package/dist/components/ds-empty-state.js.map +1 -1
  14. package/dist/components/ds-fade.js +1 -1
  15. package/dist/components/ds-field.js +1 -1
  16. package/dist/components/ds-header.js +1 -1
  17. package/dist/components/ds-icon.js +1 -1
  18. package/dist/components/ds-input.js +1 -1
  19. package/dist/components/ds-label-wrap.js +1 -1
  20. package/dist/components/ds-menu.js +1 -1
  21. package/dist/components/ds-modal.js +1 -1
  22. package/dist/components/ds-panel-nav.js +1 -1
  23. package/dist/components/ds-radio-group.js +1 -1
  24. package/dist/components/ds-scrollbar.js +1 -1
  25. package/dist/components/ds-select.js +1 -1
  26. package/dist/components/ds-slider.js +1 -1
  27. package/dist/components/ds-surface.js +1 -1
  28. package/dist/components/ds-tab-group.js +1 -1
  29. package/dist/components/ds-table.js +1 -1
  30. package/dist/components/ds-table.js.map +1 -1
  31. package/dist/components/ds-tag.js +1 -1
  32. package/dist/components/ds-text.js +1 -1
  33. package/dist/components/ds-toast-provider.js +1 -1
  34. package/dist/components/ds-toggle-button-group.js +1 -1
  35. package/dist/components/ds-toggle-button.js +1 -1
  36. package/dist/components/ds-toggle.js +1 -1
  37. package/dist/components/ds-tooltip.js +1 -1
  38. package/dist/components/{p-D7yiCGVn.js → p-BDEBPT9d.js} +2 -2
  39. package/dist/components/{p-CY_Dybmd.js → p-CCqEKyy5.js} +2 -2
  40. package/dist/components/{p-DykrWh4I.js → p-DDnk3est.js} +2 -2
  41. package/dist/components/{p-DykrWh4I.js.map → p-DDnk3est.js.map} +1 -1
  42. package/dist/components/{p-D3CwGoIu.js → p-DiHfQFKR.js} +2 -2
  43. package/dist/components/{p-DFxOA7YO.js → p-VTFOvKQZ.js} +2 -2
  44. package/dist/components/{p-C4p1fG67.js → p-bxWBnnTX.js} +2 -2
  45. package/dist/components/{p-CNhBzIIb.js → p-ww8gtHIq.js} +2 -2
  46. package/dist/types/.stencil/BarNav/BarNav.d.ts +7 -1
  47. package/dist/types/.stencil/BarNav/bar-nav-dom-utils.d.ts +12 -0
  48. package/package.json +5 -2
  49. /package/dist/components/{p-D7yiCGVn.js.map → p-BDEBPT9d.js.map} +0 -0
  50. /package/dist/components/{p-CY_Dybmd.js.map → p-CCqEKyy5.js.map} +0 -0
  51. /package/dist/components/{p-D3CwGoIu.js.map → p-DiHfQFKR.js.map} +0 -0
  52. /package/dist/components/{p-DFxOA7YO.js.map → p-VTFOvKQZ.js.map} +0 -0
  53. /package/dist/components/{p-C4p1fG67.js.map → p-bxWBnnTX.js.map} +0 -0
  54. /package/dist/components/{p-CNhBzIIb.js.map → p-ww8gtHIq.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
- import type { TabItem } from '../TabGroup/tab-item-utils';
2
+ import { type TabItem } from '../TabGroup/tab-item-utils';
3
3
  export type BarNavBackground = 'primary' | 'secondary' | 'transparent' | 'translucent';
4
4
  /** Same shape as `TabItem` — supports `{ type: 'divider' }` between tab groups. */
5
5
  export type BarNavTab = TabItem;
@@ -55,7 +55,10 @@ export declare class BarNav {
55
55
  private hideTabsForDetailRoute;
56
56
  private tabsCollapsed;
57
57
  private menuOpen;
58
+ /** When false, defer showing expanded tabs or the collapsed trigger until intrinsic width is measured (avoids a one-frame flash of the full tab row on narrow viewports). */
59
+ private tabLayoutCommitted;
58
60
  private static readonly HOST_PROP_SYNC_BUDGET;
61
+ private static readonly INTRINSIC_WIDTH_RETRY_MAX;
59
62
  private leftEl;
60
63
  private triggerEl;
61
64
  private menuEl;
@@ -63,9 +66,11 @@ export declare class BarNav {
63
66
  private probeTabGroupEl;
64
67
  private resizeObserver;
65
68
  private overflowCheckScheduled;
69
+ private intrinsicWidthRetryCount;
66
70
  private get effectiveValue();
67
71
  private get activeTabLabel();
68
72
  private get activeTabHasDot();
73
+ private digestTabsConfig;
69
74
  onPropsChange(): void;
70
75
  onUrlChange(): void;
71
76
  onSelectionChange(): void;
@@ -84,6 +89,7 @@ export declare class BarNav {
84
89
  /** Width left for tabs after actions — stable while collapsed (unlike leftEl box when hugging the trigger). */
85
90
  private getLeftZoneAvailableWidth;
86
91
  private getTabsIntrinsicWidth;
92
+ private scheduleIntrinsicWidthRetry;
87
93
  private updateTabsCollapsed;
88
94
  private syncMenuAnchor;
89
95
  private handleMenuSelect;
@@ -0,0 +1,12 @@
1
+ type QueryableHost = {
2
+ shadowRoot?: ShadowRoot | null;
3
+ querySelector: (selectors: string) => Element | null;
4
+ };
5
+ /**
6
+ * Query within a Stencil custom-element host (light DOM today, shadow DOM–safe).
7
+ * Use for child nodes owned by ds-tab-group and similar components.
8
+ */
9
+ export declare function queryWithinComponentHost(host: QueryableHost | null | undefined, selector: string): HTMLElement | null;
10
+ export declare function getTabListFromTabGroup(tabGroupEl: QueryableHost | null | undefined): HTMLElement | null;
11
+ export {};
12
+ //# sourceMappingURL=bar-nav-dom-utils.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ds-mo/ui",
3
- "version": "0.13.0",
3
+ "version": "0.14.1",
4
4
  "description": "CompoMo — composable web components styled with TokoMo design tokens",
5
5
  "keywords": [
6
6
  "web-components",
@@ -40,7 +40,9 @@
40
40
  ],
41
41
  "scripts": {
42
42
  "build": "stencil build && node scripts/patch-index-types.mjs",
43
- "test": "node --import tsx/esm --test tests/panel-nav-utils.test.ts tests/bar-nav-utils.test.ts tests/bar-nav-tabs-menu-utils.test.ts",
43
+ "test": "node --import tsx/esm --test tests/panel-nav-utils.test.ts tests/bar-nav-utils.test.ts tests/bar-nav-tabs-menu-utils.test.ts tests/bar-nav-dom-utils.test.ts",
44
+ "test:e2e": "npm run build && playwright test",
45
+ "test:e2e:install": "playwright install chromium",
44
46
  "build:docs": "stencil build --docs",
45
47
  "dev": "stencil build --dev --watch",
46
48
  "storybook": "stencil build && storybook dev -p 6006",
@@ -62,6 +64,7 @@
62
64
  "devDependencies": {
63
65
  "@ds-mo/icons": "^4.3.1",
64
66
  "@ds-mo/tokens": "^2.9.0",
67
+ "@playwright/test": "^1.55.0",
65
68
  "@eslint/js": "^10.0.1",
66
69
  "@modelcontextprotocol/sdk": "^1.29.0",
67
70
  "@stencil/angular-output-target": "^1.3.1",