@ixfx/components 0.9.7 → 0.9.8

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 (84) hide show
  1. package/bundle/index.d.ts +92 -64
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +349 -244
  4. package/bundle/index.js.map +1 -1
  5. package/bundle/style.css +2 -2
  6. package/dist/ac-text.js +2 -2
  7. package/dist/ac-token.js +2 -2
  8. package/dist/checkbox.js +1 -1
  9. package/dist/{colour-picker-CSxwUmtE.js → colour-picker-R73i0QTP.js} +2 -2
  10. package/dist/{colour-picker-CSxwUmtE.js.map → colour-picker-R73i0QTP.js.map} +1 -1
  11. package/dist/colour-picker.js +1 -1
  12. package/dist/crumbs.js +2 -2
  13. package/dist/data-display.js +1 -1
  14. package/dist/{data-grid-8N0Kd5-6.d.ts → data-grid-BUeZjnvj.d.ts} +30 -1
  15. package/dist/data-grid-BUeZjnvj.d.ts.map +1 -0
  16. package/dist/data-grid.d.ts +1 -1
  17. package/dist/data-grid.js +123 -17
  18. package/dist/data-grid.js.map +1 -1
  19. package/dist/detail-list.js +2 -2
  20. package/dist/editable-label.js +1 -1
  21. package/dist/{fallbacks-BcKGq-2F.js → fallbacks-DQ_5OsmR.js} +2 -2
  22. package/dist/{fallbacks-BcKGq-2F.js.map → fallbacks-DQ_5OsmR.js.map} +1 -1
  23. package/dist/{grid-list-mL0GJTQR.js → grid-list-40blkeza.js} +5 -232
  24. package/dist/grid-list-40blkeza.js.map +1 -0
  25. package/dist/{grid-list-CSw1VMXT.d.ts → grid-list-lTwg4lp7.d.ts} +3 -66
  26. package/dist/grid-list-lTwg4lp7.d.ts.map +1 -0
  27. package/dist/grid-list.d.ts +1 -1
  28. package/dist/grid-list.js +1 -1
  29. package/dist/{icon-Dy33gu4Z.js → icon-BCJJYEpm.js} +2 -2
  30. package/dist/{icon-Dy33gu4Z.js.map → icon-BCJJYEpm.js.map} +1 -1
  31. package/dist/icons.js +1 -1
  32. package/dist/index.d.ts +3 -2
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +13 -12
  35. package/dist/index.js.map +1 -1
  36. package/dist/labelled-radial-input.js +2 -2
  37. package/dist/{labelled-slider-input-aEYDvW2S.js → labelled-slider-input-CF2RtzgG.js} +3 -3
  38. package/dist/{labelled-slider-input-aEYDvW2S.js.map → labelled-slider-input-CF2RtzgG.js.map} +1 -1
  39. package/dist/labelled-slider-input.js +1 -1
  40. package/dist/{menu-CMXhIaNZ.js → menu-C8a-84S5.js} +4 -4
  41. package/dist/{menu-CMXhIaNZ.js.map → menu-C8a-84S5.js.map} +1 -1
  42. package/dist/{menu-item-BYGQzyCe.js → menu-item-DzizkMH-.js} +3 -3
  43. package/dist/{menu-item-BYGQzyCe.js.map → menu-item-DzizkMH-.js.map} +1 -1
  44. package/dist/menu.js +2 -2
  45. package/dist/miller.js +1 -1
  46. package/dist/narrowed-text.js +1 -1
  47. package/dist/notifier.js +1 -1
  48. package/dist/pan-text-CoYmt2qd.d.ts +67 -0
  49. package/dist/pan-text-CoYmt2qd.d.ts.map +1 -0
  50. package/dist/pan-text-CqtvjPyK.js +235 -0
  51. package/dist/pan-text-CqtvjPyK.js.map +1 -0
  52. package/dist/panel.js +1 -1
  53. package/dist/polar-pad.js +1 -1
  54. package/dist/{radial-input-DyxfbNzD.js → radial-input-KMVltQfe.js} +2 -2
  55. package/dist/{radial-input-DyxfbNzD.js.map → radial-input-KMVltQfe.js.map} +1 -1
  56. package/dist/radial-input.js +1 -1
  57. package/dist/range-input.js +1 -1
  58. package/dist/range.js +1 -1
  59. package/dist/select-horiz.js +1 -1
  60. package/dist/{slider-input-Cb5uSV42.js → slider-input-ByHdotzp.js} +2 -2
  61. package/dist/{slider-input-Cb5uSV42.js.map → slider-input-ByHdotzp.js.map} +1 -1
  62. package/dist/slider-input.js +1 -1
  63. package/dist/snackbar.js +1 -1
  64. package/dist/{split-layout-Bx0g8k8-.js → split-layout-3yBOEVZW.js} +2 -2
  65. package/dist/{split-layout-Bx0g8k8-.js.map → split-layout-3yBOEVZW.js.map} +1 -1
  66. package/dist/split-layout.js +1 -1
  67. package/dist/style.css +2 -2
  68. package/dist/swipe.js +1 -1
  69. package/dist/tabs.js +1 -1
  70. package/dist/{timeline-THyvH8xy.js → timeline-CFlBFFGZ.js} +2 -2
  71. package/dist/{timeline-THyvH8xy.js.map → timeline-CFlBFFGZ.js.map} +1 -1
  72. package/dist/timeline.js +1 -1
  73. package/dist/titlebar.js +2 -2
  74. package/dist/{tree-DAFBO_MF.js → tree-CVj7TIk2.js} +2 -2
  75. package/dist/{tree-DAFBO_MF.js.map → tree-CVj7TIk2.js.map} +1 -1
  76. package/dist/tree.js +1 -1
  77. package/dist/vertical-list.js +1 -1
  78. package/dist/xy-pad.js +1 -1
  79. package/docs-user/data-grid.md +59 -0
  80. package/docs-user/index.json +2 -2
  81. package/package.json +1 -1
  82. package/dist/data-grid-8N0Kd5-6.d.ts.map +0 -1
  83. package/dist/grid-list-CSw1VMXT.d.ts.map +0 -1
  84. package/dist/grid-list-mL0GJTQR.js.map +0 -1
@@ -361,7 +361,7 @@ const _themeFallbacksCss = css`
361
361
  @property --item-border-tickled {
362
362
  syntax: '*';
363
363
  inherits: true;
364
- initial-value: 1px solid color-mix(in oklch, oklch(60% 0.15 140) 40%, transparent);
364
+ initial-value: 1px solid oklch(19% 0.02 240);
365
365
  }
366
366
  @property --item-border-selected {
367
367
  syntax: '*';
@@ -419,4 +419,4 @@ const themeFallbacks = css``;
419
419
  //#endregion
420
420
  export { themeFallbacks as t };
421
421
 
422
- //# sourceMappingURL=fallbacks-BcKGq-2F.js.map
422
+ //# sourceMappingURL=fallbacks-DQ_5OsmR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fallbacks-BcKGq-2F.js","names":[],"sources":["../src/styles/fallbacks.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Default fallback values for theme CSS variables.\n *\n * Uses `@property` to register each variable with an initial value that acts\n * as a fallback. This means:\n * - If the theme CSS (`src/style.css`) is loaded, its `:root` values cascade\n * in and override these defaults.\n * - If no theme CSS is loaded, these initial values ensure components still\n * have visible backgrounds, text colours, etc.\n *\n * `@property` registration is document-global — it is not scoped per shadow\n * root — so this is registered exactly once (via `_registerThemeFallbacksOnce`\n * below) rather than adopted into every component's shadow-root stylesheet.\n * Registering the same `@property` rule repeatedly across many shadow roots\n * causes Chrome to log \"Ignored @property rule\" for every repeat.\n */\nconst _themeFallbacksCss = css`\n @property --surface-0 {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(5% 0.02 240);\n }\n @property --surface-1 {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(8% 0.02 240);\n }\n @property --surface-2 {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(12% 0.02 240);\n }\n @property --surface-2-text {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --surface-3 {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(15% 0.02 240);\n }\n @property --surface-3-text {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(75% 0.02 240);\n }\n @property --surface-4 {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(22% 0.02 240);\n }\n @property --surface-4-text {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --surface-5 {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(19% 0.02 240);\n }\n @property --surface-5-text {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --surface-6 {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(35% 0.02 240);\n }\n @property --surface-6-text {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --surface-muted-text {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(55% 0.02 240);\n }\n @property --content {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(10% 0.01 240);\n }\n @property --content-text {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --accent {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(60% 0.15 140);\n }\n @property --accent-text {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --error {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(60% 0.15 20);\n }\n @property --error-text {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --border {\n syntax: '*';\n inherits: true;\n initial-value: 1px solid oklch(25% 0.02 240);\n }\n @property --border-subtle {\n syntax: '*';\n inherits: true;\n initial-value: 1px solid oklch(18% 0.02 240);\n }\n @property --disabled-opacity {\n syntax: '<number>';\n inherits: true;\n initial-value: 0.5;\n }\n @property --transition {\n syntax: '<time>';\n inherits: true;\n initial-value: 0.15s;\n }\n @property --prominence-idle-opacity {\n syntax: '<number>';\n inherits: true;\n initial-value: 0.6;\n }\n @property --prominence-idle-saturate {\n syntax: '<number>';\n inherits: true;\n initial-value: 0.4;\n }\n @property --prominence-tickled-opacity {\n syntax: '<number>';\n inherits: true;\n initial-value: 0.85;\n }\n @property --prominence-tickled-saturate {\n syntax: '<number>';\n inherits: true;\n initial-value: 0.8;\n }\n @property --prominence-disabled-opacity {\n syntax: '<number>';\n inherits: true;\n initial-value: 0.3;\n }\n @property --prominence-disabled-saturate {\n syntax: '<number>';\n inherits: true;\n initial-value: 0.1;\n }\n @property --crumb-item-bg {\n syntax: '<color>';\n inherits: true;\n initial-value: transparent;\n }\n @property --crumb-item-bg-tickled {\n syntax: '<color>';\n inherits: true;\n initial-value: var(--surface-5);\n }\n @property --crumb-item-text-tickled {\n syntax: '<color>';\n inherits: true;\n initial-value: inherit;\n }\n @property --crumb-item-border {\n syntax: '*';\n inherits: true;\n initial-value: 1px solid transparent;\n }\n @property --crumb-item-border-tickled {\n syntax: '<color>';\n inherits: true;\n initial-value: var(--accent);\n }\n @property --crumb-item-padding {\n syntax: '*';\n inherits: true;\n initial-value: var(--space-xs);\n }\n @property --crumb-item-border-radius {\n syntax: '<length>';\n inherits: true;\n initial-value: var(--radius-m);\n }\n @property --crumb-item-gap {\n syntax: '<length>';\n inherits: true;\n initial-value: var(--space-xs);\n }\n @property --crumb-separator {\n syntax: '<color>';\n inherits: true;\n initial-value: var(--surface-muted-text);\n }\n @property --crumb-truncate-min-width {\n syntax: '<length>';\n inherits: true;\n initial-value: 5ch;\n }\n @property --space-xs {\n syntax: '<length>';\n inherits: true;\n initial-value: 3px;\n }\n @property --space-s {\n syntax: '<length>';\n inherits: true;\n initial-value: 4px;\n }\n @property --space-m {\n syntax: '<length>';\n inherits: true;\n initial-value: 8px;\n }\n @property --space-l {\n syntax: '<length>';\n inherits: true;\n initial-value: 12px;\n }\n @property --space-xl {\n syntax: '<length>';\n inherits: true;\n initial-value: 16px;\n }\n @property --space-2xl {\n syntax: '<length>';\n inherits: true;\n initial-value: 20px;\n }\n @property --text-xs {\n syntax: '<length>';\n inherits: true;\n initial-value: 9px;\n }\n @property --text-s {\n syntax: '<length>';\n inherits: true;\n initial-value: 11px;\n }\n @property --text-m {\n syntax: '<length>';\n inherits: true;\n initial-value: 12px;\n }\n @property --text-l {\n syntax: '<length>';\n inherits: true;\n initial-value: 13px;\n }\n @property --text-xl {\n syntax: '<length>';\n inherits: true;\n initial-value: 16px;\n }\n @property --text-2xl {\n syntax: '<length>';\n inherits: true;\n initial-value: 20px;\n }\n @property --font-weight-bold {\n syntax: '<number>';\n inherits: true;\n initial-value: 600;\n }\n @property --radius-s {\n syntax: '<length>';\n inherits: true;\n initial-value: 3px;\n }\n @property --radius-m {\n syntax: '<length>';\n inherits: true;\n initial-value: 4px;\n }\n @property --radius-l {\n syntax: '<length>';\n inherits: true;\n initial-value: 6px;\n }\n @property --radius-xl {\n syntax: '<length>';\n inherits: true;\n initial-value: 8px;\n }\n @property --shadow-m {\n syntax: '*';\n inherits: true;\n initial-value: 0 4px 12px rgba(0, 0, 0, 0.3);\n }\n @property --shadow-l {\n syntax: '*';\n inherits: true;\n initial-value: 0 4px 24px rgba(0, 0, 0, 0.5);\n }\n @property --deboss-3 {\n syntax: '*';\n inherits: true;\n initial-value:\n inset 1px 1px 1px 1px color-mix(in oklch, oklch(8% 0.02 240) 60%, transparent),\n inset -1px -1px 1px 1px color-mix(in oklch, oklch(15% 0.02 240) 50%, transparent),\n -2px -2px 1px 0px color-mix(in oklch, oklch(12% 0.02 240) 30%, transparent);\n }\n @property --emboss-3 {\n syntax: '*';\n inherits: true;\n initial-value:\n inset 1px 1px 1px 1px color-mix(in oklch, oklch(22% 0.02 240) 30%, transparent),\n inset -1px -1px 1px 1px color-mix(in oklch, oklch(12% 0.02 240) 20%, transparent),\n 2px 2px 1px 0px color-mix(in oklch, oklch(12% 0.02 240) 30%, transparent);\n }\n @property --item-bg {\n syntax: '<color>';\n inherits: true;\n initial-value: transparent;\n }\n @property --item-bg-tickled {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(19% 0.02 240);\n }\n @property --item-bg-selected {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(60% 0.15 140);\n }\n @property --item-bg-selected-tickled {\n syntax: '<color>';\n inherits: true;\n initial-value: color-mix(in oklch, oklch(60% 0.15 140) 80%, oklch(0% 0 0));\n }\n @property --item-text-tickled {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --item-text-selected {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --item-border {\n syntax: '*';\n inherits: true;\n initial-value: 1px solid oklch(19% 0.02 240);\n }\n @property --item-border-tickled {\n syntax: '*';\n inherits: true;\n initial-value: 1px solid color-mix(in oklch, oklch(60% 0.15 140) 40%, transparent);\n }\n @property --item-border-selected {\n syntax: '*';\n inherits: true;\n initial-value: 1px dashed oklch(60% 0.15 140);\n }\n @property --item-border-active {\n syntax: '*';\n inherits: true;\n initial-value: 2px solid oklch(60% 0.15 140);\n }\n @property --item-border-dragged {\n syntax: '*';\n inherits: true;\n initial-value: 2px dotted color-mix(in oklch, oklch(60% 0.15 140) 80%, transparent);\n }\n @property --item-border-disabled {\n syntax: '*';\n inherits: true;\n initial-value: 1px solid oklch(22% 0.02 240);\n }\n @property --item-padding {\n syntax: '*';\n inherits: true;\n initial-value: 4px 8px;\n }\n @property --item-border-radius {\n syntax: '<length>';\n inherits: true;\n initial-value: 4px;\n }\n @property --item-icon-spacing {\n syntax: '<length>';\n inherits: true;\n initial-value: 4px;\n }\n`;\n\nlet _themeFallbacksRegistered = false;\n\nfunction _registerThemeFallbacksOnce(): void {\n if (_themeFallbacksRegistered || typeof document === `undefined`)\n return;\n _themeFallbacksRegistered = true;\n const styleEl = document.createElement(`style`);\n styleEl.textContent = _themeFallbacksCss.cssText;\n document.head.append(styleEl);\n}\n\n_registerThemeFallbacksOnce();\n\n/**\n * Spread this into any component whose styles reference theme variables.\n * It is an empty stylesheet — the actual `@property` rules are registered\n * once at the document level as a side effect of importing this module — so\n * this exists only to keep the familiar `static styles = [themeFallbacks, ...]`\n * pattern working across all consuming components.\n */\nexport const themeFallbacks = css``;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgY9B,IAAI,4BAA4B;AAEhC,SAAS,8BAAoC;CAC3C,IAAI,6BAA6B,OAAO,aAAa,aACnD;CACF,4BAA4B;CAC5B,MAAM,UAAU,SAAS,cAAc,OAAO;CAC9C,QAAQ,cAAc,mBAAmB;CACzC,SAAS,KAAK,OAAO,OAAO;AAC9B;AAEA,4BAA4B;;;;;;;;AAS5B,MAAa,iBAAiB,GAAG"}
1
+ {"version":3,"file":"fallbacks-DQ_5OsmR.js","names":[],"sources":["../src/styles/fallbacks.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Default fallback values for theme CSS variables.\n *\n * Uses `@property` to register each variable with an initial value that acts\n * as a fallback. This means:\n * - If the theme CSS (`src/style.css`) is loaded, its `:root` values cascade\n * in and override these defaults.\n * - If no theme CSS is loaded, these initial values ensure components still\n * have visible backgrounds, text colours, etc.\n *\n * `@property` registration is document-global — it is not scoped per shadow\n * root — so this is registered exactly once (via `_registerThemeFallbacksOnce`\n * below) rather than adopted into every component's shadow-root stylesheet.\n * Registering the same `@property` rule repeatedly across many shadow roots\n * causes Chrome to log \"Ignored @property rule\" for every repeat.\n */\nconst _themeFallbacksCss = css`\n @property --surface-0 {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(5% 0.02 240);\n }\n @property --surface-1 {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(8% 0.02 240);\n }\n @property --surface-2 {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(12% 0.02 240);\n }\n @property --surface-2-text {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --surface-3 {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(15% 0.02 240);\n }\n @property --surface-3-text {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(75% 0.02 240);\n }\n @property --surface-4 {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(22% 0.02 240);\n }\n @property --surface-4-text {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --surface-5 {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(19% 0.02 240);\n }\n @property --surface-5-text {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --surface-6 {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(35% 0.02 240);\n }\n @property --surface-6-text {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --surface-muted-text {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(55% 0.02 240);\n }\n @property --content {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(10% 0.01 240);\n }\n @property --content-text {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --accent {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(60% 0.15 140);\n }\n @property --accent-text {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --error {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(60% 0.15 20);\n }\n @property --error-text {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --border {\n syntax: '*';\n inherits: true;\n initial-value: 1px solid oklch(25% 0.02 240);\n }\n @property --border-subtle {\n syntax: '*';\n inherits: true;\n initial-value: 1px solid oklch(18% 0.02 240);\n }\n @property --disabled-opacity {\n syntax: '<number>';\n inherits: true;\n initial-value: 0.5;\n }\n @property --transition {\n syntax: '<time>';\n inherits: true;\n initial-value: 0.15s;\n }\n @property --prominence-idle-opacity {\n syntax: '<number>';\n inherits: true;\n initial-value: 0.6;\n }\n @property --prominence-idle-saturate {\n syntax: '<number>';\n inherits: true;\n initial-value: 0.4;\n }\n @property --prominence-tickled-opacity {\n syntax: '<number>';\n inherits: true;\n initial-value: 0.85;\n }\n @property --prominence-tickled-saturate {\n syntax: '<number>';\n inherits: true;\n initial-value: 0.8;\n }\n @property --prominence-disabled-opacity {\n syntax: '<number>';\n inherits: true;\n initial-value: 0.3;\n }\n @property --prominence-disabled-saturate {\n syntax: '<number>';\n inherits: true;\n initial-value: 0.1;\n }\n @property --crumb-item-bg {\n syntax: '<color>';\n inherits: true;\n initial-value: transparent;\n }\n @property --crumb-item-bg-tickled {\n syntax: '<color>';\n inherits: true;\n initial-value: var(--surface-5);\n }\n @property --crumb-item-text-tickled {\n syntax: '<color>';\n inherits: true;\n initial-value: inherit;\n }\n @property --crumb-item-border {\n syntax: '*';\n inherits: true;\n initial-value: 1px solid transparent;\n }\n @property --crumb-item-border-tickled {\n syntax: '<color>';\n inherits: true;\n initial-value: var(--accent);\n }\n @property --crumb-item-padding {\n syntax: '*';\n inherits: true;\n initial-value: var(--space-xs);\n }\n @property --crumb-item-border-radius {\n syntax: '<length>';\n inherits: true;\n initial-value: var(--radius-m);\n }\n @property --crumb-item-gap {\n syntax: '<length>';\n inherits: true;\n initial-value: var(--space-xs);\n }\n @property --crumb-separator {\n syntax: '<color>';\n inherits: true;\n initial-value: var(--surface-muted-text);\n }\n @property --crumb-truncate-min-width {\n syntax: '<length>';\n inherits: true;\n initial-value: 5ch;\n }\n @property --space-xs {\n syntax: '<length>';\n inherits: true;\n initial-value: 3px;\n }\n @property --space-s {\n syntax: '<length>';\n inherits: true;\n initial-value: 4px;\n }\n @property --space-m {\n syntax: '<length>';\n inherits: true;\n initial-value: 8px;\n }\n @property --space-l {\n syntax: '<length>';\n inherits: true;\n initial-value: 12px;\n }\n @property --space-xl {\n syntax: '<length>';\n inherits: true;\n initial-value: 16px;\n }\n @property --space-2xl {\n syntax: '<length>';\n inherits: true;\n initial-value: 20px;\n }\n @property --text-xs {\n syntax: '<length>';\n inherits: true;\n initial-value: 9px;\n }\n @property --text-s {\n syntax: '<length>';\n inherits: true;\n initial-value: 11px;\n }\n @property --text-m {\n syntax: '<length>';\n inherits: true;\n initial-value: 12px;\n }\n @property --text-l {\n syntax: '<length>';\n inherits: true;\n initial-value: 13px;\n }\n @property --text-xl {\n syntax: '<length>';\n inherits: true;\n initial-value: 16px;\n }\n @property --text-2xl {\n syntax: '<length>';\n inherits: true;\n initial-value: 20px;\n }\n @property --font-weight-bold {\n syntax: '<number>';\n inherits: true;\n initial-value: 600;\n }\n @property --radius-s {\n syntax: '<length>';\n inherits: true;\n initial-value: 3px;\n }\n @property --radius-m {\n syntax: '<length>';\n inherits: true;\n initial-value: 4px;\n }\n @property --radius-l {\n syntax: '<length>';\n inherits: true;\n initial-value: 6px;\n }\n @property --radius-xl {\n syntax: '<length>';\n inherits: true;\n initial-value: 8px;\n }\n @property --shadow-m {\n syntax: '*';\n inherits: true;\n initial-value: 0 4px 12px rgba(0, 0, 0, 0.3);\n }\n @property --shadow-l {\n syntax: '*';\n inherits: true;\n initial-value: 0 4px 24px rgba(0, 0, 0, 0.5);\n }\n @property --deboss-3 {\n syntax: '*';\n inherits: true;\n initial-value:\n inset 1px 1px 1px 1px color-mix(in oklch, oklch(8% 0.02 240) 60%, transparent),\n inset -1px -1px 1px 1px color-mix(in oklch, oklch(15% 0.02 240) 50%, transparent),\n -2px -2px 1px 0px color-mix(in oklch, oklch(12% 0.02 240) 30%, transparent);\n }\n @property --emboss-3 {\n syntax: '*';\n inherits: true;\n initial-value:\n inset 1px 1px 1px 1px color-mix(in oklch, oklch(22% 0.02 240) 30%, transparent),\n inset -1px -1px 1px 1px color-mix(in oklch, oklch(12% 0.02 240) 20%, transparent),\n 2px 2px 1px 0px color-mix(in oklch, oklch(12% 0.02 240) 30%, transparent);\n }\n @property --item-bg {\n syntax: '<color>';\n inherits: true;\n initial-value: transparent;\n }\n @property --item-bg-tickled {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(19% 0.02 240);\n }\n @property --item-bg-selected {\n syntax: '<color>';\n inherits: true;\n initial-value: oklch(60% 0.15 140);\n }\n @property --item-bg-selected-tickled {\n syntax: '<color>';\n inherits: true;\n initial-value: color-mix(in oklch, oklch(60% 0.15 140) 80%, oklch(0% 0 0));\n }\n @property --item-text-tickled {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --item-text-selected {\n syntax: '<color>';\n inherits: true;\n initial-value: #fff;\n }\n @property --item-border {\n syntax: '*';\n inherits: true;\n initial-value: 1px solid oklch(19% 0.02 240);\n }\n @property --item-border-tickled {\n syntax: '*';\n inherits: true;\n initial-value: 1px solid oklch(19% 0.02 240);\n }\n @property --item-border-selected {\n syntax: '*';\n inherits: true;\n initial-value: 1px dashed oklch(60% 0.15 140);\n }\n @property --item-border-active {\n syntax: '*';\n inherits: true;\n initial-value: 2px solid oklch(60% 0.15 140);\n }\n @property --item-border-dragged {\n syntax: '*';\n inherits: true;\n initial-value: 2px dotted color-mix(in oklch, oklch(60% 0.15 140) 80%, transparent);\n }\n @property --item-border-disabled {\n syntax: '*';\n inherits: true;\n initial-value: 1px solid oklch(22% 0.02 240);\n }\n @property --item-padding {\n syntax: '*';\n inherits: true;\n initial-value: 4px 8px;\n }\n @property --item-border-radius {\n syntax: '<length>';\n inherits: true;\n initial-value: 4px;\n }\n @property --item-icon-spacing {\n syntax: '<length>';\n inherits: true;\n initial-value: 4px;\n }\n`;\n\nlet _themeFallbacksRegistered = false;\n\nfunction _registerThemeFallbacksOnce(): void {\n if (_themeFallbacksRegistered || typeof document === `undefined`)\n return;\n _themeFallbacksRegistered = true;\n const styleEl = document.createElement(`style`);\n styleEl.textContent = _themeFallbacksCss.cssText;\n document.head.append(styleEl);\n}\n\n_registerThemeFallbacksOnce();\n\n/**\n * Spread this into any component whose styles reference theme variables.\n * It is an empty stylesheet — the actual `@property` rules are registered\n * once at the document level as a side effect of importing this module — so\n * this exists only to keep the familiar `static styles = [themeFallbacks, ...]`\n * pattern working across all consuming components.\n */\nexport const themeFallbacks = css``;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgY9B,IAAI,4BAA4B;AAEhC,SAAS,8BAAoC;CAC3C,IAAI,6BAA6B,OAAO,aAAa,aACnD;CACF,4BAA4B;CAC5B,MAAM,UAAU,SAAS,cAAc,OAAO;CAC9C,QAAQ,cAAc,mBAAmB;CACzC,SAAS,KAAK,OAAO,OAAO;AAC9B;AAEA,4BAA4B;;;;;;;;AAS5B,MAAa,iBAAiB,GAAG"}
@@ -1,6 +1,6 @@
1
1
  import { t as TickledController } from "./tickled-controller-Dh1Uh_vG.js";
2
2
  import { n as tickledStyles, t as tickledItemStyles } from "./tickled-styles-BrAHEj1q.js";
3
- import { t as themeFallbacks } from "./fallbacks-BcKGq-2F.js";
3
+ import { t as themeFallbacks } from "./fallbacks-DQ_5OsmR.js";
4
4
  import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
5
5
  import { c as createElementListSearchAdapter, d as createDataListSearchAdapter, i as ListSearchController, n as listSearchStyles, o as registerListSearchCommands, r as LIST_SEARCH_MODES, u as keyForElement } from "./incr-search-C05WjbZh.js";
6
6
  import { t as ListNativeDragController } from "./list-native-drag-controller-B0hWdbtM.js";
@@ -8,12 +8,12 @@ import { r as ListDragSelectController, t as ListSelectionController } from "./l
8
8
  import { i as listItemFadeKeyframes } from "./list-item-animation-BUoEKi5s.js";
9
9
  import "./interaction-BskmlA9t.js";
10
10
  import { t as scrollFadeStyles } from "./scroll-fade-CAs1EabA.js";
11
+ import "./pan-text-CqtvjPyK.js";
11
12
  import { LitElement, css, html } from "lit";
12
- import { property, query, state } from "lit/decorators.js";
13
+ import { property, state } from "lit/decorators.js";
13
14
  import { createCommandRegistry } from "@clinth/ui-commands";
14
15
  import { repeat } from "lit/directives/repeat.js";
15
16
  import { createRef, ref } from "lit/directives/ref.js";
16
- import { classMap } from "lit/directives/class-map.js";
17
17
  //#region src/grid-list/grid-list-source.ts
18
18
  const ITEM_SELECTOR$1 = `:scope > *`;
19
19
  const SYNTHETIC_PREFIX = `gl-auto-`;
@@ -234,233 +234,6 @@ var DataGridListSource = class {
234
234
  }
235
235
  };
236
236
  //#endregion
237
- //#region src/pan-text/pan-text.ts
238
- const SPEED = 45;
239
- const END_PADDING = 4;
240
- const START_DELAY = 300;
241
- const END_DWELL = 2e3;
242
- const RESET_DURATION = 400;
243
- const PAN_EASING = `cubic-bezier(0.25, 0.46, 0.45, 0.94)`;
244
- let PanTextElement = class PanTextElement extends LitElement {
245
- constructor(..._args) {
246
- super(..._args);
247
- this.direction = `end`;
248
- this.disabled = false;
249
- this.mode = `hover`;
250
- this._isOverflowing = false;
251
- this._isHovering = false;
252
- this._loopActive = false;
253
- this._loopAtEnd = false;
254
- this._overflow = 0;
255
- this._resizeObserver = null;
256
- this._loopTimer = 0;
257
- this._onMouseEnter = () => {
258
- this._isHovering = true;
259
- };
260
- this._onMouseLeave = () => {
261
- this._isHovering = false;
262
- };
263
- this._measure = () => {
264
- if (this._isHovering || this._loopAtEnd) return;
265
- const el = this._textEl;
266
- if (!el) return;
267
- this._overflow = Math.max(0, el.scrollWidth - el.clientWidth);
268
- const overflowing = this._overflow > 0;
269
- this.classList.toggle(`is-overflowing`, overflowing);
270
- if (overflowing !== this._isOverflowing) this._isOverflowing = overflowing;
271
- if (this._loopActive && this.mode === `loop` && !this.disabled && overflowing && this._loopTimer === 0) this._scheduleLoopPan(START_DELAY);
272
- if (!overflowing && this._loopAtEnd) {
273
- this._loopAtEnd = false;
274
- this.requestUpdate();
275
- }
276
- };
277
- }
278
- connectedCallback() {
279
- super.connectedCallback();
280
- this._resizeObserver = new ResizeObserver(() => this._measure());
281
- this.addEventListener(`mouseenter`, this._onMouseEnter);
282
- this.addEventListener(`mouseleave`, this._onMouseLeave);
283
- }
284
- disconnectedCallback() {
285
- super.disconnectedCallback();
286
- this._clearLoopTimer();
287
- this._loopActive = false;
288
- this._loopAtEnd = false;
289
- this._resizeObserver?.disconnect();
290
- this._resizeObserver = null;
291
- this.removeEventListener(`mouseenter`, this._onMouseEnter);
292
- this.removeEventListener(`mouseleave`, this._onMouseLeave);
293
- }
294
- firstUpdated() {
295
- this._measure();
296
- this._resizeObserver?.observe(this);
297
- document.fonts?.ready.then(() => this._measure());
298
- if (this.mode === `loop`) this.startLoop();
299
- }
300
- updated(changed) {
301
- if (changed.has(`mode`)) {
302
- if (this.mode === `loop`) this.startLoop();
303
- else this.stopLoop();
304
- }
305
- if (changed.has(`disabled`) && this.disabled) this.stopLoop();
306
- this._measure();
307
- }
308
- /**
309
- * Whether a loop pan is currently active (between `startLoop()` and `stopLoop()`).
310
- */
311
- get looping() {
312
- return this._loopActive;
313
- }
314
- /**
315
- * Begin looping: pan to the end, dwell there for 2 seconds, reset to the
316
- * start and pan again, repeating until `stopLoop()` is called. A no-op when
317
- * `disabled`, when there is nothing to reveal, or under reduced-motion.
318
- */
319
- startLoop() {
320
- if (this.disabled || this._prefersReducedMotion()) return;
321
- this._loopActive = true;
322
- this._loopAtEnd = false;
323
- this.requestUpdate();
324
- if (this._isOverflowing && this._loopTimer === 0) this._scheduleLoopPan(START_DELAY);
325
- }
326
- /**
327
- * Stop a loop started with `startLoop()` and snap back to the rest position.
328
- */
329
- stopLoop() {
330
- if (!this._loopActive && !this._loopAtEnd && this._loopTimer === 0) return;
331
- this._clearLoopTimer();
332
- this._loopActive = false;
333
- this._loopAtEnd = false;
334
- this.requestUpdate();
335
- }
336
- _prefersReducedMotion() {
337
- return globalThis.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches ?? false;
338
- }
339
- _panDuration() {
340
- return Math.max(1.5, (this._overflow + END_PADDING) / SPEED);
341
- }
342
- _clearLoopTimer() {
343
- if (this._loopTimer !== 0) {
344
- clearTimeout(this._loopTimer);
345
- this._loopTimer = 0;
346
- }
347
- }
348
- _scheduleLoopPan(delay) {
349
- this._clearLoopTimer();
350
- this._loopTimer = window.setTimeout(() => {
351
- this._loopTimer = 0;
352
- if (!this._loopActive || this.disabled || !this._isOverflowing) return;
353
- this._loopAtEnd = true;
354
- this.requestUpdate();
355
- const dwell = this._panDuration() * 1e3 + END_DWELL;
356
- this._loopTimer = window.setTimeout(() => {
357
- this._loopTimer = 0;
358
- if (!this._loopActive) return;
359
- this._loopAtEnd = false;
360
- this.requestUpdate();
361
- this._scheduleLoopPan(700);
362
- }, dwell);
363
- }, delay);
364
- }
365
- _textStyle() {
366
- if (!this._isOverflowing) return ``;
367
- const distance = this._overflow + END_PADDING;
368
- const duration = Math.max(1.5, distance / SPEED);
369
- const revealEnd = this.direction === `end`;
370
- const restX = revealEnd ? 0 : -distance;
371
- const hoverX = revealEnd ? -distance : 0;
372
- if (this._loopActive && this.mode === `loop`) {
373
- if (this._loopAtEnd) return [
374
- `transform: translateX(${hoverX}px)`,
375
- `transition: transform ${duration}s ${PAN_EASING}`,
376
- `overflow: visible`,
377
- `text-overflow: clip`
378
- ].join(`; `);
379
- return [
380
- `transform: translateX(${restX}px)`,
381
- `transition: transform ${RESET_DURATION}ms ${PAN_EASING}`,
382
- revealEnd ? `` : `overflow: visible; text-overflow: clip`
383
- ].filter(Boolean).join(`; `);
384
- }
385
- if (this._isHovering) return [
386
- `transform: translateX(${hoverX}px)`,
387
- `transition: transform ${duration}s ${PAN_EASING} ${START_DELAY}ms`,
388
- `overflow: visible`,
389
- `text-overflow: clip`
390
- ].join(`; `);
391
- return [
392
- `transform: translateX(${restX}px)`,
393
- `transition: transform 400ms ${PAN_EASING}`,
394
- revealEnd ? `` : `overflow: visible; text-overflow: clip`
395
- ].filter(Boolean).join(`; `);
396
- }
397
- render() {
398
- const textClasses = {
399
- "is-overflowing": this._isOverflowing,
400
- "is-hovering": this._isHovering
401
- };
402
- return html`
403
- <span class="text ${classMap(textClasses)}" part="text" style=${this._textStyle()}>
404
- <slot @slotchange=${this._measure}></slot>
405
- </span>
406
- `;
407
- }
408
- static {
409
- this.styles = [themeFallbacks, css`
410
- /* Renders like plain inline text: no colours, border, padding or margin
411
- of its own — it only adds the clipping needed to pan on hover. */
412
- :host {
413
- display: inline-block;
414
- overflow: hidden;
415
- white-space: nowrap;
416
- max-width: 100%;
417
- box-sizing: border-box;
418
- font: inherit;
419
- color: inherit;
420
- }
421
-
422
- :host([disabled]) {
423
- opacity: var(--disabled-opacity, 0.5);
424
- pointer-events: none;
425
- }
426
-
427
- .text {
428
- display: block;
429
- overflow: hidden;
430
- text-overflow: ellipsis;
431
- white-space: nowrap;
432
- will-change: transform;
433
- }
434
-
435
- @media (prefers-reduced-motion: reduce) {
436
- .text {
437
- transition: none !important;
438
- transform: none !important;
439
- }
440
- }
441
- `];
442
- }
443
- };
444
- __decorate([property({
445
- type: String,
446
- attribute: `direction`
447
- })], PanTextElement.prototype, "direction", void 0);
448
- __decorate([property({
449
- type: Boolean,
450
- attribute: `disabled`
451
- })], PanTextElement.prototype, "disabled", void 0);
452
- __decorate([property({
453
- type: String,
454
- attribute: `mode`,
455
- reflect: true
456
- })], PanTextElement.prototype, "mode", void 0);
457
- __decorate([state()], PanTextElement.prototype, "_isOverflowing", void 0);
458
- __decorate([state()], PanTextElement.prototype, "_isHovering", void 0);
459
- __decorate([state()], PanTextElement.prototype, "_loopActive", void 0);
460
- __decorate([state()], PanTextElement.prototype, "_loopAtEnd", void 0);
461
- __decorate([query(`.text`)], PanTextElement.prototype, "_textEl", void 0);
462
- PanTextElement = __decorate([safeCustomElement(`ixfx-pan-text`)], PanTextElement);
463
- //#endregion
464
237
  //#region src/grid-list/grid-list.ts
465
238
  const ITEM_SELECTOR = `:scope > *`;
466
239
  const MIN_ITEM_SIZE = 16;
@@ -2104,6 +1877,6 @@ __decorate([state()], GridListElement.prototype, "_viewportHeight", void 0);
2104
1877
  __decorate([state()], GridListElement.prototype, "_viewportWidth", void 0);
2105
1878
  GridListElement = __decorate([safeCustomElement(`ixfx-grid-list`)], GridListElement);
2106
1879
  //#endregion
2107
- export { PanTextElement as n, GridListElement as t };
1880
+ export { GridListElement as t };
2108
1881
 
2109
- //# sourceMappingURL=grid-list-mL0GJTQR.js.map
1882
+ //# sourceMappingURL=grid-list-40blkeza.js.map