@ixfx/components 0.11.9 → 0.13.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 (74) hide show
  1. package/bundle/index.d.ts +134 -1
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +7116 -6520
  4. package/bundle/index.js.map +1 -1
  5. package/dist/ac-text.js +1 -1
  6. package/dist/ac-token.js +1 -1
  7. package/dist/{checked-select-Dejl13qd.js → checked-select-lDgAQQ7v.js} +3 -3
  8. package/dist/{checked-select-Dejl13qd.js.map → checked-select-lDgAQQ7v.js.map} +1 -1
  9. package/dist/checked-select.js +1 -1
  10. package/dist/{colour-picker-WDrPuqoO.js → colour-picker-BCMU7W7R.js} +2 -2
  11. package/dist/{colour-picker-WDrPuqoO.js.map → colour-picker-BCMU7W7R.js.map} +1 -1
  12. package/dist/colour-picker.js +1 -1
  13. package/dist/crumbs.d.ts +1 -1
  14. package/dist/crumbs.d.ts.map +1 -1
  15. package/dist/crumbs.js +26 -10
  16. package/dist/crumbs.js.map +1 -1
  17. package/dist/{data-grid-Oiyt5qbA.d.ts → data-grid-BJ6XXvRc.d.ts} +11 -1
  18. package/dist/data-grid-BJ6XXvRc.d.ts.map +1 -0
  19. package/dist/data-grid.d.ts +1 -1
  20. package/dist/data-grid.js +62 -8
  21. package/dist/data-grid.js.map +1 -1
  22. package/dist/{defaults-kVl1t2tT.js → defaults-B4ePs4LB.js} +4 -1
  23. package/dist/{defaults-kVl1t2tT.js.map → defaults-B4ePs4LB.js.map} +1 -1
  24. package/dist/detail-list.js +1 -1
  25. package/dist/flat-list-eYItri8-.d.ts +126 -0
  26. package/dist/flat-list-eYItri8-.d.ts.map +1 -0
  27. package/dist/flat-list.d.ts +2 -0
  28. package/dist/flat-list.js +519 -0
  29. package/dist/flat-list.js.map +1 -0
  30. package/dist/{grid-list-Bwaf61is.js → grid-list-DjIl910A.js} +3 -3
  31. package/dist/{grid-list-Bwaf61is.js.map → grid-list-DjIl910A.js.map} +1 -1
  32. package/dist/{grid-list-bzKuNTtu.d.ts → grid-list-_gI9ckcT.d.ts} +2 -2
  33. package/dist/{grid-list-bzKuNTtu.d.ts.map → grid-list-_gI9ckcT.d.ts.map} +1 -1
  34. package/dist/grid-list.d.ts +1 -1
  35. package/dist/grid-list.js +1 -1
  36. package/dist/icons.js +1 -1
  37. package/dist/index-o-CWDt11.d.ts +78 -0
  38. package/dist/index-o-CWDt11.d.ts.map +1 -0
  39. package/dist/index.d.ts +6 -5
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +12 -11
  42. package/dist/index.js.map +1 -1
  43. package/dist/{interaction-BskmlA9t.js → interaction-ZTh4htzr.js} +1 -1
  44. package/dist/{menu-DaAlsyhf.js → menu-CwcXXeLM.js} +3 -3
  45. package/dist/{menu-DaAlsyhf.js.map → menu-CwcXXeLM.js.map} +1 -1
  46. package/dist/{menu-item-CDPFgaSF.js → menu-item-BDEekBVy.js} +3 -3
  47. package/dist/{menu-item-CDPFgaSF.js.map → menu-item-BDEekBVy.js.map} +1 -1
  48. package/dist/menu.js +2 -2
  49. package/dist/miller.d.ts +1 -1
  50. package/dist/miller.js +2 -2
  51. package/dist/narrowed-text.d.ts +2 -78
  52. package/dist/narrowed-text.js +2 -2
  53. package/dist/select-horiz.js +2 -2
  54. package/dist/{tickled-controller-Dh1Uh_vG.js → tickled-controller-D-HZymaZ.js} +10 -1
  55. package/dist/tickled-controller-D-HZymaZ.js.map +1 -0
  56. package/dist/{tickled-controller-C1ZsHpyg.d.ts → tickled-controller-DodxD3eQ.d.ts} +7 -1
  57. package/dist/{tickled-controller-C1ZsHpyg.d.ts.map → tickled-controller-DodxD3eQ.d.ts.map} +1 -1
  58. package/dist/{tree-Bm2TzTfe.js → tree-DGveys4K.js} +3 -3
  59. package/dist/{tree-Bm2TzTfe.js.map → tree-DGveys4K.js.map} +1 -1
  60. package/dist/tree.d.ts +1 -1
  61. package/dist/tree.js +1 -1
  62. package/dist/vertical-list-DheZSEmB.d.ts.map +1 -1
  63. package/dist/vertical-list.js +9 -1
  64. package/dist/vertical-list.js.map +1 -1
  65. package/docs-user/README.md +1 -0
  66. package/docs-user/data-grid.md +22 -0
  67. package/docs-user/flat-list.md +80 -0
  68. package/docs-user/index.json +7 -2
  69. package/docs-user/llms.txt +1 -0
  70. package/llms.txt +1 -0
  71. package/package.json +5 -1
  72. package/dist/data-grid-Oiyt5qbA.d.ts.map +0 -1
  73. package/dist/narrowed-text.d.ts.map +0 -1
  74. package/dist/tickled-controller-Dh1Uh_vG.js.map +0 -1
@@ -35,6 +35,8 @@ const ICON_CHEVRON_UP = `<svg viewBox="0 0 24 24" fill="none" stroke="currentCol
35
35
  const ICON_CHEVRON_LEFT = `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m15 18-6-6 6-6"/></svg>`;
36
36
  /** Vertical ellipsis (Lucide `ellipsis-vertical`). Default glyph for an unlabelled menu trigger. */
37
37
  const ICON_ELLIPSIS_VERTICAL = `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="5" r="1"/><circle cx="12" cy="19" r="1"/></svg>`;
38
+ /** Horizontal ellipsis (Lucide `ellipsis`). Three dots in a horizontal row. */
39
+ const ICON_ELLIPSIS = `<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="1"/><circle cx="5" cy="12" r="1"/><circle cx="19" cy="12" r="1"/></svg>`;
38
40
  function registerDefaults() {
39
41
  registerIcon(`chevron-down`, ICON_CHEVRON_DOWN);
40
42
  registerIcon(`chevron-right`, ICON_CHEVRON_RIGHT);
@@ -52,8 +54,9 @@ function registerDefaults() {
52
54
  registerIcon(`chevron-up`, ICON_CHEVRON_UP);
53
55
  registerIcon(`chevron-left`, ICON_CHEVRON_LEFT);
54
56
  registerIcon(`ellipsis-vertical`, ICON_ELLIPSIS_VERTICAL);
57
+ registerIcon(`ellipsis`, ICON_ELLIPSIS);
55
58
  }
56
59
  //#endregion
57
60
  export { registerDefaults as a, ICON_CLOSE as i, ICON_CHECK as n, ICON_CHEVRON_DOWN as r, ICON_CARET_RIGHT as t };
58
61
 
59
- //# sourceMappingURL=defaults-kVl1t2tT.js.map
62
+ //# sourceMappingURL=defaults-B4ePs4LB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults-kVl1t2tT.js","names":[],"sources":["../src/icons/defaults.ts"],"sourcesContent":["import { registerIcon } from './registry.js';\n\n// All shapes below are Lucide icons (https://lucide.dev/icons/) — stroke-based,\n// viewBox 0 0 24 24, stroke-width 2, round linecap/linejoin, fill=\"none\" so\n// color comes entirely from `currentColor`.\n\n/** Chevron pointing down (Lucide `chevron-down`). Used for split-button dropdown toggle. */\nexport const ICON_CHEVRON_DOWN = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"/></svg>`;\n\n/**\n * Chevron pointing right (Lucide `chevron-right`). Used for tree-basic expand\n * indicator as a CSS mask — shape only, color comes from background-color.\n */\nexport const ICON_CARET_RIGHT = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"black\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m9 18 6-6-6-6\"/></svg>`;\n\n/** Checkmark (Lucide `check`). Useful for menu-check-item or confirmation states. */\nexport const ICON_CHECK = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"/></svg>`;\n\n/** Close / X icon (Lucide `x`). Useful for dialogs, notifications, dismissible elements. */\nexport const ICON_CLOSE = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>`;\n\n/** Plus / add icon (Lucide `plus`). Pairs with `close` for add/remove actions. */\nexport const ICON_ADD = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14\"/><path d=\"M12 5v14\"/></svg>`;\n\n/** Error icon (Lucide `circle-alert`). Useful for error notifications. */\nexport const ICON_ERROR = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"12\" x2=\"12\" y1=\"8\" y2=\"12\"/><line x1=\"12\" x2=\"12.01\" y1=\"16\" y2=\"16\"/></svg>`;\n\n/** Info icon (Lucide `info`). Useful for info notifications. */\nexport const ICON_INFO = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4\"/><path d=\"M12 8h.01\"/></svg>`;\n\n/** Warning icon (Lucide `triangle-alert`). Useful for warning notifications. */\nexport const ICON_WARNING = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m21.73 18-8-14a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\"/><path d=\"M12 9v4\"/><path d=\"M12 17h.01\"/></svg>`;\n\n/** Chevron pointing right (Lucide `chevron-right`). Used for split-button switcher toggle. */\nexport const ICON_CHEVRON_RIGHT = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m9 18 6-6-6-6\"/></svg>`;\n\n/** Folder with up arrow (Lucide `folder-up`). Angled line style for navigating up one level. */\nexport const ICON_FOLDER_UP = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2 9V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1\"/><path d=\"M12 10v6\"/><path d=\"m9 13 3-3 3 3\"/></svg>`;\n\n/** Folder (Lucide `folder`). Useful for file explorers and sidebars. */\nexport const ICON_FOLDER = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\"/></svg>`;\n\n/** Document / file page (Lucide `file`). Useful for file lists and document tabs. */\nexport const ICON_FILE = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\"/><path d=\"M14 2v4a2 2 0 0 0 2 2h4\"/></svg>`;\n\n/** Magnifying glass (Lucide `search`). Useful for search panels and inputs. */\nexport const ICON_SEARCH = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/></svg>`;\n\n/** Chevron pointing up (Lucide `chevron-up`). Sort/collapse direction indicators. */\nexport const ICON_CHEVRON_UP = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m18 15-6-6-6 6\"/></svg>`;\n\n/** Chevron pointing left (Lucide `chevron-left`). Previous/back affordances. */\nexport const ICON_CHEVRON_LEFT = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m15 18-6-6 6-6\"/></svg>`;\n\n/** Vertical ellipsis (Lucide `ellipsis-vertical`). Default glyph for an unlabelled menu trigger. */\nexport const ICON_ELLIPSIS_VERTICAL = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"1\"/><circle cx=\"12\" cy=\"5\" r=\"1\"/><circle cx=\"12\" cy=\"19\" r=\"1\"/></svg>`;\n\nexport function registerDefaults(): void {\n registerIcon(`chevron-down`, ICON_CHEVRON_DOWN);\n registerIcon(`chevron-right`, ICON_CHEVRON_RIGHT);\n registerIcon(`caret-right`, ICON_CARET_RIGHT);\n registerIcon(`check`, ICON_CHECK);\n registerIcon(`close`, ICON_CLOSE);\n registerIcon(`file`, ICON_FILE);\n registerIcon(`folder`, ICON_FOLDER);\n registerIcon(`search`, ICON_SEARCH);\n registerIcon(`add`, ICON_ADD);\n registerIcon(`error`, ICON_ERROR);\n registerIcon(`folder-up`, ICON_FOLDER_UP);\n registerIcon(`info`, ICON_INFO);\n registerIcon(`warning`, ICON_WARNING);\n registerIcon(`chevron-up`, ICON_CHEVRON_UP);\n registerIcon(`chevron-left`, ICON_CHEVRON_LEFT);\n registerIcon(`ellipsis-vertical`, ICON_ELLIPSIS_VERTICAL);\n}\n"],"mappings":";;;AAOA,MAAa,oBAAoB;;;;;AAMjC,MAAa,mBAAmB;;AAGhC,MAAa,aAAa;;AAG1B,MAAa,aAAa;;AAG1B,MAAa,WAAW;;AAGxB,MAAa,aAAa;;AAG1B,MAAa,YAAY;;AAGzB,MAAa,eAAe;;AAG5B,MAAa,qBAAqB;;AAGlC,MAAa,iBAAiB;;AAG9B,MAAa,cAAc;;AAG3B,MAAa,YAAY;;AAGzB,MAAa,cAAc;;AAG3B,MAAa,kBAAkB;;AAG/B,MAAa,oBAAoB;;AAGjC,MAAa,yBAAyB;AAEtC,SAAgB,mBAAyB;CACvC,aAAa,gBAAgB,iBAAiB;CAC9C,aAAa,iBAAiB,kBAAkB;CAChD,aAAa,eAAe,gBAAgB;CAC5C,aAAa,SAAS,UAAU;CAChC,aAAa,SAAS,UAAU;CAChC,aAAa,QAAQ,SAAS;CAC9B,aAAa,UAAU,WAAW;CAClC,aAAa,UAAU,WAAW;CAClC,aAAa,OAAO,QAAQ;CAC5B,aAAa,SAAS,UAAU;CAChC,aAAa,aAAa,cAAc;CACxC,aAAa,QAAQ,SAAS;CAC9B,aAAa,WAAW,YAAY;CACpC,aAAa,cAAc,eAAe;CAC1C,aAAa,gBAAgB,iBAAiB;CAC9C,aAAa,qBAAqB,sBAAsB;AAC1D"}
1
+ {"version":3,"file":"defaults-B4ePs4LB.js","names":[],"sources":["../src/icons/defaults.ts"],"sourcesContent":["import { registerIcon } from './registry.js';\n\n// All shapes below are Lucide icons (https://lucide.dev/icons/) — stroke-based,\n// viewBox 0 0 24 24, stroke-width 2, round linecap/linejoin, fill=\"none\" so\n// color comes entirely from `currentColor`.\n\n/** Chevron pointing down (Lucide `chevron-down`). Used for split-button dropdown toggle. */\nexport const ICON_CHEVRON_DOWN = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"/></svg>`;\n\n/**\n * Chevron pointing right (Lucide `chevron-right`). Used for tree-basic expand\n * indicator as a CSS mask — shape only, color comes from background-color.\n */\nexport const ICON_CARET_RIGHT = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"black\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"m9 18 6-6-6-6\"/></svg>`;\n\n/** Checkmark (Lucide `check`). Useful for menu-check-item or confirmation states. */\nexport const ICON_CHECK = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\"/></svg>`;\n\n/** Close / X icon (Lucide `x`). Useful for dialogs, notifications, dismissible elements. */\nexport const ICON_CLOSE = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>`;\n\n/** Plus / add icon (Lucide `plus`). Pairs with `close` for add/remove actions. */\nexport const ICON_ADD = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14\"/><path d=\"M12 5v14\"/></svg>`;\n\n/** Error icon (Lucide `circle-alert`). Useful for error notifications. */\nexport const ICON_ERROR = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><line x1=\"12\" x2=\"12\" y1=\"8\" y2=\"12\"/><line x1=\"12\" x2=\"12.01\" y1=\"16\" y2=\"16\"/></svg>`;\n\n/** Info icon (Lucide `info`). Useful for info notifications. */\nexport const ICON_INFO = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4\"/><path d=\"M12 8h.01\"/></svg>`;\n\n/** Warning icon (Lucide `triangle-alert`). Useful for warning notifications. */\nexport const ICON_WARNING = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m21.73 18-8-14a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\"/><path d=\"M12 9v4\"/><path d=\"M12 17h.01\"/></svg>`;\n\n/** Chevron pointing right (Lucide `chevron-right`). Used for split-button switcher toggle. */\nexport const ICON_CHEVRON_RIGHT = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m9 18 6-6-6-6\"/></svg>`;\n\n/** Folder with up arrow (Lucide `folder-up`). Angled line style for navigating up one level. */\nexport const ICON_FOLDER_UP = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2 9V5c0-1.1.9-2 2-2h3.93a2 2 0 0 1 1.66.9l.82 1.2a2 2 0 0 0 1.66.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-1\"/><path d=\"M12 10v6\"/><path d=\"m9 13 3-3 3 3\"/></svg>`;\n\n/** Folder (Lucide `folder`). Useful for file explorers and sidebars. */\nexport const ICON_FOLDER = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\"/></svg>`;\n\n/** Document / file page (Lucide `file`). Useful for file lists and document tabs. */\nexport const ICON_FILE = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\"/><path d=\"M14 2v4a2 2 0 0 0 2 2h4\"/></svg>`;\n\n/** Magnifying glass (Lucide `search`). Useful for search panels and inputs. */\nexport const ICON_SEARCH = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/></svg>`;\n\n/** Chevron pointing up (Lucide `chevron-up`). Sort/collapse direction indicators. */\nexport const ICON_CHEVRON_UP = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m18 15-6-6-6 6\"/></svg>`;\n\n/** Chevron pointing left (Lucide `chevron-left`). Previous/back affordances. */\nexport const ICON_CHEVRON_LEFT = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m15 18-6-6 6-6\"/></svg>`;\n\n/** Vertical ellipsis (Lucide `ellipsis-vertical`). Default glyph for an unlabelled menu trigger. */\nexport const ICON_ELLIPSIS_VERTICAL = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"1\"/><circle cx=\"12\" cy=\"5\" r=\"1\"/><circle cx=\"12\" cy=\"19\" r=\"1\"/></svg>`;\n\n/** Horizontal ellipsis (Lucide `ellipsis`). Three dots in a horizontal row. */\nexport const ICON_ELLIPSIS = `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"1\"/><circle cx=\"5\" cy=\"12\" r=\"1\"/><circle cx=\"19\" cy=\"12\" r=\"1\"/></svg>`;\n\nexport function registerDefaults(): void {\n registerIcon(`chevron-down`, ICON_CHEVRON_DOWN);\n registerIcon(`chevron-right`, ICON_CHEVRON_RIGHT);\n registerIcon(`caret-right`, ICON_CARET_RIGHT);\n registerIcon(`check`, ICON_CHECK);\n registerIcon(`close`, ICON_CLOSE);\n registerIcon(`file`, ICON_FILE);\n registerIcon(`folder`, ICON_FOLDER);\n registerIcon(`search`, ICON_SEARCH);\n registerIcon(`add`, ICON_ADD);\n registerIcon(`error`, ICON_ERROR);\n registerIcon(`folder-up`, ICON_FOLDER_UP);\n registerIcon(`info`, ICON_INFO);\n registerIcon(`warning`, ICON_WARNING);\n registerIcon(`chevron-up`, ICON_CHEVRON_UP);\n registerIcon(`chevron-left`, ICON_CHEVRON_LEFT);\n registerIcon(`ellipsis-vertical`, ICON_ELLIPSIS_VERTICAL);\n registerIcon(`ellipsis`, ICON_ELLIPSIS);\n}\n"],"mappings":";;;AAOA,MAAa,oBAAoB;;;;;AAMjC,MAAa,mBAAmB;;AAGhC,MAAa,aAAa;;AAG1B,MAAa,aAAa;;AAG1B,MAAa,WAAW;;AAGxB,MAAa,aAAa;;AAG1B,MAAa,YAAY;;AAGzB,MAAa,eAAe;;AAG5B,MAAa,qBAAqB;;AAGlC,MAAa,iBAAiB;;AAG9B,MAAa,cAAc;;AAG3B,MAAa,YAAY;;AAGzB,MAAa,cAAc;;AAG3B,MAAa,kBAAkB;;AAG/B,MAAa,oBAAoB;;AAGjC,MAAa,yBAAyB;;AAGtC,MAAa,gBAAgB;AAE7B,SAAgB,mBAAyB;CACvC,aAAa,gBAAgB,iBAAiB;CAC9C,aAAa,iBAAiB,kBAAkB;CAChD,aAAa,eAAe,gBAAgB;CAC5C,aAAa,SAAS,UAAU;CAChC,aAAa,SAAS,UAAU;CAChC,aAAa,QAAQ,SAAS;CAC9B,aAAa,UAAU,WAAW;CAClC,aAAa,UAAU,WAAW;CAClC,aAAa,OAAO,QAAQ;CAC5B,aAAa,SAAS,UAAU;CAChC,aAAa,aAAa,cAAc;CACxC,aAAa,QAAQ,SAAS;CAC9B,aAAa,WAAW,YAAY;CACpC,aAAa,cAAc,eAAe;CAC1C,aAAa,gBAAgB,iBAAiB;CAC9C,aAAa,qBAAqB,sBAAsB;CACxD,aAAa,YAAY,aAAa;AACxC"}
@@ -1,4 +1,4 @@
1
- import { t as TickledController } from "./tickled-controller-Dh1Uh_vG.js";
1
+ import { t as TickledController } from "./tickled-controller-D-HZymaZ.js";
2
2
  import { t as themeFallbacks } from "./fallbacks-DQ_5OsmR.js";
3
3
  import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
4
4
  import "./icon-1gpwtPx8.js";
@@ -0,0 +1,126 @@
1
+ import "./icon-DR_3rSyZ.js";
2
+ import { k as TreeDataModel } from "./tree-component-DukLqesg.js";
3
+ import { o as TreeNode, r as TreeFilterPredicate, t as LoadChildrenCallback } from "./types-D-kYF16b.js";
4
+ import "./crumbs.js";
5
+ import { i as ListInteractionMode, l as ListSelectionMode } from "./list-selection-types-PjKdhF-a.js";
6
+ import { r as VerticalListElement } from "./vertical-list-DheZSEmB.js";
7
+ import { LitElement, PropertyValues } from "lit";
8
+ //#region src/flat-list/types.d.ts
9
+ /** How branches and leaves are ordered within one level. */
10
+ type FlatListBranchOrder = `first` | `mixed`;
11
+ type FlatListNavigateDetail = {
12
+ /** Key path (excluding the root) of the level now shown. */
13
+ readonly path: readonly string[];
14
+ /** Key path of the level shown before. */
15
+ readonly previousPath: readonly string[];
16
+ /** The node whose children are now listed (the root when `path` is empty). */
17
+ readonly node: TreeNode;
18
+ /** `into` = descended, `up` = moved to an ancestor, `jump` = anything else (crumb, API). */
19
+ readonly direction: `into` | `up` | `jump`;
20
+ };
21
+ type FlatListSelectDetail = {
22
+ readonly selected: ReadonlySet<TreeNode>;
23
+ readonly selectedKeys: ReadonlySet<string>;
24
+ readonly previous: ReadonlySet<TreeNode>;
25
+ };
26
+ type FlatListActivateDetail = {
27
+ readonly node: TreeNode;
28
+ };
29
+ type FlatListNavigateEvent = CustomEvent<FlatListNavigateDetail>;
30
+ type FlatListSelectEvent = CustomEvent<FlatListSelectDetail>;
31
+ type FlatListActivateEvent = CustomEvent<FlatListActivateDetail>;
32
+ interface FlatListElementEventMap {
33
+ 'flat-list-navigate': FlatListNavigateEvent;
34
+ 'flat-list-select': FlatListSelectEvent;
35
+ 'flat-list-activate': FlatListActivateEvent;
36
+ }
37
+ //#endregion
38
+ //#region src/flat-list/flat-list.d.ts
39
+ /**
40
+ * Navigates a tree inside one flat list. Each level shows its branches and
41
+ * leaves together in an `ixfx-vertical-list`; entering a branch swaps the list
42
+ * for that branch's children, and an `ixfx-crumb-navigation` pinned above the
43
+ * scroll area shows the path and jumps back up.
44
+ *
45
+ * Uses the same `TreeNode` / `TreeDataModel` data as `ixfx-crumb-navigation`
46
+ * and `ixfx-tree-list`. As in crumb-navigation, lazily loaded children are
47
+ * written back to `node.children`.
48
+ *
49
+ * Selection and keyboard behaviour is the inner list's. On top of that:
50
+ * double-click / Enter / ArrowRight enter the cursor branch;
51
+ * ArrowLeft / Backspace go up. Selection is cleared on every level change.
52
+ *
53
+ * Events (all bubble, composed)
54
+ * - `flat-list-navigate` `{ path, previousPath, node, direction }`
55
+ * - `flat-list-select` `{ selected: Set<TreeNode>, selectedKeys, previous }`
56
+ * - `flat-list-activate` `{ node }` — a leaf was double-clicked / Enter pressed
57
+ * The inner list's own `list-*` events also cross the shadow boundary.
58
+ *
59
+ * CSS variables (others, e.g. `--list-item-height`, pass through to the list)
60
+ * --flat-list-bg: var(--list-bg, var(--surface-3));
61
+ * --flat-list-text: var(--list-text, var(--surface-3-text));
62
+ * --flat-list-border: var(--list-border, var(--border));
63
+ * --flat-list-radius: var(--list-radius, var(--radius-s));
64
+ * --flat-list-crumb-padding: var(--space-xs);
65
+ * --flat-list-crumb-font-size: var(--text-s);
66
+ * --flat-list-chevron-gap: 0.4em; // space after the branch chevron
67
+ * --flat-list-empty-text: var(--surface-muted-text);
68
+ */
69
+ declare class FlatListElement extends LitElement {
70
+ #private;
71
+ root: TreeNode | undefined;
72
+ model: TreeDataModel | undefined;
73
+ /** Keys from the root (excluded) to the level being shown. */
74
+ path: readonly string[];
75
+ /** Lazily loads a branch's children when `node.children` is `undefined`. */
76
+ loadChildren: LoadChildrenCallback | undefined;
77
+ filterPredicate: TreeFilterPredicate | undefined;
78
+ /** Orders nodes within the level (within each half when `branchOrder` is `first`). */
79
+ sort: ((a: TreeNode, b: TreeNode) => number) | undefined;
80
+ branchOrder: FlatListBranchOrder;
81
+ selectionMode: ListSelectionMode;
82
+ interactionMode: ListInteractionMode;
83
+ itemWrap: `stop` | `wrap`;
84
+ searchModes: string | undefined;
85
+ itemsDraggable: boolean;
86
+ withUp: boolean;
87
+ hideRoot: boolean;
88
+ /** Shown when the current level has no children. */
89
+ emptyText: string;
90
+ /** Mirrors the inner list's `:focus-visible`, so the ring can go round the whole component. */
91
+ private _focusVisible;
92
+ private _rows;
93
+ private _loading;
94
+ /** The inner list, for registry / search commands and other advanced use. */
95
+ get list(): VerticalListElement | undefined;
96
+ /** Command registry carrying the inner list's `list.search.*` commands. */
97
+ get registry(): VerticalListElement[`registry`];
98
+ /** Run a command on the inner list, e.g. `dispatch('list.search.filter')`. */
99
+ dispatch(commandId: string, args?: Record<string, unknown>): void;
100
+ /** The node whose children are listed. */
101
+ get currentNode(): TreeNode | undefined;
102
+ get selectedNodes(): ReadonlySet<TreeNode>;
103
+ /** Show the children of the node at this key path. Returns false if the path does not resolve. */
104
+ navigateTo(keys: readonly string[]): boolean;
105
+ /** Enter the child branch with this key. */
106
+ navigateInto(key: string): boolean;
107
+ /** Move to the parent level. Returns false at the root. */
108
+ navigateUp(): boolean;
109
+ disconnectedCallback(): void;
110
+ protected willUpdate(changed: PropertyValues): void;
111
+ protected updated(changed: PropertyValues): void;
112
+ protected render(): import("lit").TemplateResult<1>;
113
+ static styles: import("lit").CSSResult[];
114
+ }
115
+ declare global {
116
+ interface HTMLElementTagNameMap {
117
+ 'ixfx-flat-list': FlatListElement;
118
+ }
119
+ }
120
+ interface FlatListElement {
121
+ addEventListener<K extends keyof FlatListElementEventMap>(type: K, listener: (this: FlatListElement, event: FlatListElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
122
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
123
+ }
124
+ //#endregion
125
+ export { FlatListElementEventMap as a, FlatListSelectDetail as c, FlatListBranchOrder as i, FlatListSelectEvent as l, FlatListActivateDetail as n, FlatListNavigateDetail as o, FlatListActivateEvent as r, FlatListNavigateEvent as s, FlatListElement as t };
126
+ //# sourceMappingURL=flat-list-eYItri8-.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flat-list-eYItri8-.d.ts","names":[],"sources":["../src/flat-list/types.ts","../src/flat-list/flat-list.ts"],"mappings":";;;;;;;;;KAGY;KAEA;;WAED;;WAEA;;WAEA,MAAM;;WAEN;;KAGC;WACD,UAAU,YAAY;WACtB,cAAc;WACd,UAAU,YAAY;;KAGrB;WACD,MAAM;;KAGL,wBAAwB,YAAY;KACpC,sBAAsB,YAAY;KAClC,wBAAwB,YAAY;UAE/B;EACf,sBAAsB;EACtB,oBAAoB;EACpB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cCgGX,wBAAwB;;EAEnC,MAAM;EAGN,OAAO;;EAIP;;EAIA,cAAc;EAGd,iBAAiB;;EAIjB,QAAQ,GAAG,UAAU,GAAG;EAGxB,aAAa;EAGb,eAAe;EAGf,iBAAiB;EAGjB;EAGA;EAGA;EAGA;EAGA;;EAIA;;UAIQ;UAES;UACA;;MAcb,QAAQ;;MAKR,YAAY;;EAKhB,SAAS,mBAAmB,OAAO;;MAK/B,eAAe;MAIf,iBAAiB,YAAY;;EAWjC,WAAW;;EASX,aAAa;;EASb;EAqBS;YAQU,WAAW,SAAS;YAyBpB,QAAQ,SAAS;YAgNjB,wBAAM;SA0CT,sBAAM;;QA6EhB;YACI;IACR,kBAAkB;;;UAIL;EACf,iBAAiB,gBAAgB,yBAC/B,MAAM,GACN,WAAW,MAAM,iBAAiB,OAAO,wBAAwB,aACjE,oBAAoB;EAEtB,iBACE,cACA,UAAU,oCACV,oBAAoB"}
@@ -0,0 +1,2 @@
1
+ import { a as FlatListElementEventMap, c as FlatListSelectDetail, i as FlatListBranchOrder, l as FlatListSelectEvent, n as FlatListActivateDetail, o as FlatListNavigateDetail, r as FlatListActivateEvent, s as FlatListNavigateEvent, t as FlatListElement } from "./flat-list-eYItri8-.js";
2
+ export { type FlatListActivateDetail, type FlatListActivateEvent, type FlatListBranchOrder, FlatListElement, type FlatListElementEventMap, type FlatListNavigateDetail, type FlatListNavigateEvent, type FlatListSelectDetail, type FlatListSelectEvent };