@k2b/ui 0.9.1 → 0.11.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 (180) hide show
  1. package/dist/browser/actions/Button.js +15 -7
  2. package/dist/browser/actions/Button.js.map +1 -1
  3. package/dist/browser/actions/ContextMenu.js +55 -15
  4. package/dist/browser/actions/ContextMenu.js.map +1 -1
  5. package/dist/browser/actions/Dropdown.js +39 -15
  6. package/dist/browser/actions/Dropdown.js.map +1 -1
  7. package/dist/browser/actions/FilterChip.js +1 -7
  8. package/dist/browser/actions/FilterChip.js.map +1 -1
  9. package/dist/browser/actions/SplitButton.js +0 -3
  10. package/dist/browser/actions/SplitButton.js.map +1 -1
  11. package/dist/browser/chat/ChatComposer.js +78 -91
  12. package/dist/browser/chat/ChatComposer.js.map +1 -1
  13. package/dist/browser/chat/ChatContextPopup.js +47 -21
  14. package/dist/browser/chat/ChatContextPopup.js.map +1 -1
  15. package/dist/browser/chat/ChatPrimitives.js +221 -232
  16. package/dist/browser/chat/ChatPrimitives.js.map +1 -1
  17. package/dist/browser/chat/index.js +3 -2
  18. package/dist/browser/chat/index.js.map +1 -1
  19. package/dist/browser/content/Chart.js +99 -106
  20. package/dist/browser/content/Chart.js.map +1 -1
  21. package/dist/browser/content/ChartExplorer.js +3 -6
  22. package/dist/browser/content/ChartExplorer.js.map +1 -1
  23. package/dist/browser/content/FileBrowser.js +1 -1
  24. package/dist/browser/content/FileBrowser.js.map +1 -1
  25. package/dist/browser/content/FileTree.js +1 -1
  26. package/dist/browser/content/FileTree.js.map +1 -1
  27. package/dist/browser/content/FileView.js +304 -287
  28. package/dist/browser/content/FileView.js.map +1 -1
  29. package/dist/browser/content/Lightbox.js +18 -0
  30. package/dist/browser/content/Lightbox.js.map +1 -1
  31. package/dist/browser/content/PdfPreview.js +68 -43
  32. package/dist/browser/content/PdfPreview.js.map +1 -1
  33. package/dist/browser/content/ZoomPanViewport.js +51 -52
  34. package/dist/browser/content/ZoomPanViewport.js.map +1 -1
  35. package/dist/browser/feedback/HoverPreview.js +391 -0
  36. package/dist/browser/feedback/HoverPreview.js.map +1 -0
  37. package/dist/browser/feedback/Tooltip.js +50 -8
  38. package/dist/browser/feedback/Tooltip.js.map +1 -1
  39. package/dist/browser/feedback/dialog-core.js +21 -3
  40. package/dist/browser/feedback/dialog-core.js.map +1 -1
  41. package/dist/browser/feedback/index.js +1 -0
  42. package/dist/browser/feedback/index.js.map +1 -1
  43. package/dist/browser/inputs/AutocompleteEditor.js +5 -4
  44. package/dist/browser/inputs/AutocompleteEditor.js.map +1 -1
  45. package/dist/browser/inputs/DatePicker.js +10 -0
  46. package/dist/browser/inputs/DatePicker.js.map +1 -1
  47. package/dist/browser/inputs/FileInputs.js +46 -36
  48. package/dist/browser/inputs/FileInputs.js.map +1 -1
  49. package/dist/browser/inputs/SelectChip.js +2 -1
  50. package/dist/browser/inputs/SelectChip.js.map +1 -1
  51. package/dist/browser/inputs/choice.js +5 -1
  52. package/dist/browser/inputs/choice.js.map +1 -1
  53. package/dist/browser/inputs/markdown/MarkdownEditor.js +173 -173
  54. package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
  55. package/dist/browser/inputs/markdown/Toolbar.js +31 -34
  56. package/dist/browser/inputs/markdown/Toolbar.js.map +1 -1
  57. package/dist/browser/internal/focus-return.js +61 -0
  58. package/dist/browser/internal/focus-return.js.map +1 -0
  59. package/dist/browser/layout/AppOverview.js +1 -1
  60. package/dist/browser/layout/AppOverview.js.map +1 -1
  61. package/dist/browser/layout/AppWorkspace.js +105 -77
  62. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  63. package/dist/browser/layout/DetailPanel.js +16 -15
  64. package/dist/browser/layout/DetailPanel.js.map +1 -1
  65. package/dist/browser/layout/FloatingWindow.js +3 -1
  66. package/dist/browser/layout/FloatingWindow.js.map +1 -1
  67. package/dist/browser/layout/PanelDialog.js +10 -9
  68. package/dist/browser/layout/PanelDialog.js.map +1 -1
  69. package/dist/browser/layout/Panes.js +82 -81
  70. package/dist/browser/layout/Panes.js.map +1 -1
  71. package/dist/browser/layout/SidebarItemPreview.js +48 -136
  72. package/dist/browser/layout/SidebarItemPreview.js.map +1 -1
  73. package/dist/browser/layout/app-workspace-controller.js +35 -4
  74. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  75. package/dist/browser/surfaces/ProgressBar.js.map +1 -1
  76. package/dist/browser/surfaces/ProgressRing.js +72 -0
  77. package/dist/browser/surfaces/ProgressRing.js.map +1 -0
  78. package/dist/browser/surfaces/index.js +1 -0
  79. package/dist/browser/surfaces/index.js.map +1 -1
  80. package/dist/ssr/actions/Button.js +15 -7
  81. package/dist/ssr/actions/Button.js.map +1 -1
  82. package/dist/ssr/actions/ContextMenu.js +55 -15
  83. package/dist/ssr/actions/ContextMenu.js.map +1 -1
  84. package/dist/ssr/actions/Dropdown.js +31 -12
  85. package/dist/ssr/actions/Dropdown.js.map +1 -1
  86. package/dist/ssr/actions/FilterChip.js +1 -7
  87. package/dist/ssr/actions/FilterChip.js.map +1 -1
  88. package/dist/ssr/actions/SplitButton.js +0 -3
  89. package/dist/ssr/actions/SplitButton.js.map +1 -1
  90. package/dist/ssr/chat/ChatComposer.js +61 -10
  91. package/dist/ssr/chat/ChatComposer.js.map +1 -1
  92. package/dist/ssr/chat/ChatContextPopup.js +19 -5
  93. package/dist/ssr/chat/ChatContextPopup.js.map +1 -1
  94. package/dist/ssr/chat/ChatPrimitives.js +104 -74
  95. package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
  96. package/dist/ssr/chat/index.js +3 -2
  97. package/dist/ssr/chat/index.js.map +1 -1
  98. package/dist/ssr/content/Chart.js +22 -11
  99. package/dist/ssr/content/Chart.js.map +1 -1
  100. package/dist/ssr/content/ChartExplorer.js +3 -6
  101. package/dist/ssr/content/ChartExplorer.js.map +1 -1
  102. package/dist/ssr/content/FileBrowser.js +1 -1
  103. package/dist/ssr/content/FileBrowser.js.map +1 -1
  104. package/dist/ssr/content/FileTree.js +1 -1
  105. package/dist/ssr/content/FileTree.js.map +1 -1
  106. package/dist/ssr/content/FileView.js +105 -33
  107. package/dist/ssr/content/FileView.js.map +1 -1
  108. package/dist/ssr/content/Lightbox.js +17 -0
  109. package/dist/ssr/content/Lightbox.js.map +1 -1
  110. package/dist/ssr/content/PdfPreview.js +44 -14
  111. package/dist/ssr/content/PdfPreview.js.map +1 -1
  112. package/dist/ssr/content/ZoomPanViewport.js +11 -3
  113. package/dist/ssr/content/ZoomPanViewport.js.map +1 -1
  114. package/dist/ssr/feedback/HoverPreview.js +360 -0
  115. package/dist/ssr/feedback/HoverPreview.js.map +1 -0
  116. package/dist/ssr/feedback/Tooltip.js +50 -8
  117. package/dist/ssr/feedback/Tooltip.js.map +1 -1
  118. package/dist/ssr/feedback/dialog-core.js +21 -3
  119. package/dist/ssr/feedback/dialog-core.js.map +1 -1
  120. package/dist/ssr/feedback/index.js +1 -0
  121. package/dist/ssr/feedback/index.js.map +1 -1
  122. package/dist/ssr/inputs/AutocompleteEditor.js +5 -4
  123. package/dist/ssr/inputs/AutocompleteEditor.js.map +1 -1
  124. package/dist/ssr/inputs/DatePicker.js +5 -0
  125. package/dist/ssr/inputs/DatePicker.js.map +1 -1
  126. package/dist/ssr/inputs/FileInputs.js +29 -11
  127. package/dist/ssr/inputs/FileInputs.js.map +1 -1
  128. package/dist/ssr/inputs/SelectChip.js +2 -1
  129. package/dist/ssr/inputs/SelectChip.js.map +1 -1
  130. package/dist/ssr/inputs/choice.js +5 -1
  131. package/dist/ssr/inputs/choice.js.map +1 -1
  132. package/dist/ssr/inputs/markdown/MarkdownEditor.js +46 -10
  133. package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
  134. package/dist/ssr/inputs/markdown/Toolbar.js +30 -2
  135. package/dist/ssr/inputs/markdown/Toolbar.js.map +1 -1
  136. package/dist/ssr/internal/focus-return.js +61 -0
  137. package/dist/ssr/internal/focus-return.js.map +1 -0
  138. package/dist/ssr/layout/AppOverview.js +1 -1
  139. package/dist/ssr/layout/AppOverview.js.map +1 -1
  140. package/dist/ssr/layout/AppWorkspace.js +84 -66
  141. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  142. package/dist/ssr/layout/DetailPanel.js +16 -15
  143. package/dist/ssr/layout/DetailPanel.js.map +1 -1
  144. package/dist/ssr/layout/FloatingWindow.js +3 -1
  145. package/dist/ssr/layout/FloatingWindow.js.map +1 -1
  146. package/dist/ssr/layout/PanelDialog.js +10 -9
  147. package/dist/ssr/layout/PanelDialog.js.map +1 -1
  148. package/dist/ssr/layout/Panes.js +39 -8
  149. package/dist/ssr/layout/Panes.js.map +1 -1
  150. package/dist/ssr/layout/SidebarItemPreview.js +36 -108
  151. package/dist/ssr/layout/SidebarItemPreview.js.map +1 -1
  152. package/dist/ssr/layout/app-workspace-controller.js +35 -4
  153. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  154. package/dist/ssr/surfaces/ProgressBar.js.map +1 -1
  155. package/dist/ssr/surfaces/ProgressRing.js +31 -0
  156. package/dist/ssr/surfaces/ProgressRing.js.map +1 -0
  157. package/dist/ssr/surfaces/index.js +1 -0
  158. package/dist/ssr/surfaces/index.js.map +1 -1
  159. package/dist/styles.css +1 -1
  160. package/dist/types/actions/Button.d.ts +5 -0
  161. package/dist/types/actions/Dropdown.d.ts +5 -1
  162. package/dist/types/actions/SplitButton.d.ts +1 -0
  163. package/dist/types/chat/ChatContextPopup.d.ts +8 -0
  164. package/dist/types/chat/index.d.ts +3 -2
  165. package/dist/types/feedback/HoverPreview.d.ts +83 -0
  166. package/dist/types/feedback/Tooltip.d.ts +6 -0
  167. package/dist/types/feedback/index.d.ts +2 -0
  168. package/dist/types/feedback/prompts.d.ts +9 -6
  169. package/dist/types/inputs/SelectChip.d.ts +1 -0
  170. package/dist/types/inputs/completion/overlay.d.ts +3 -1
  171. package/dist/types/internal/focus-return.d.ts +20 -0
  172. package/dist/types/intl/Format.d.ts +16 -8
  173. package/dist/types/layout/AppWorkspace.d.ts +14 -0
  174. package/dist/types/layout/BottomSheet.d.ts +6 -1
  175. package/dist/types/layout/SidebarItemPreview.d.ts +1 -1
  176. package/dist/types/layout/app-workspace-controller.d.ts +5 -0
  177. package/dist/types/surfaces/ProgressBar.d.ts +1 -1
  178. package/dist/types/surfaces/ProgressRing.d.ts +13 -0
  179. package/dist/types/surfaces/index.d.ts +2 -0
  180. package/package.json +3 -2
@@ -3,7 +3,7 @@ import { memo as _$memo } from "solid-js/web";
3
3
  import { createComponent as _$createComponent } from "solid-js/web";
4
4
  import { ssr as _$ssr } from "solid-js/web";
5
5
  import { escape as _$escape } from "solid-js/web";
6
- var _tmpl$ = ["<p>", "</p>"],
6
+ var _tmpl$ = ["<p class=\"k2b-app-overview__panel-description\">", "</p>"],
7
7
  _tmpl$2 = ["<div class=\"k2b-app-overview__toolbar\">", "</div>"],
8
8
  _tmpl$3 = ["<div class=\"k2b-app-overview__panel-header\"><div><h2>", "</h2>", "</div>", "</div>"],
9
9
  _tmpl$4 = ["<section class=\"", "\">", "", "</section>"],
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["layout/AppOverview.tsx"],"sourcesContent":["import { type JSX, Show } from \"solid-js\";\nimport Placeholder from \"../surfaces/Placeholder\";\nimport { PanelHeader } from \"./PanelHeader\";\n\nexport type AppOverviewProps = {\n title: string;\n subtitle?: string;\n icon: string;\n /** The page's single primary action, such as a create button or menu. */\n actions?: JSX.Element;\n class?: string;\n children: JSX.Element;\n};\n\nexport type AppOverviewPanelProps = {\n title: string;\n description?: JSX.Element;\n toolbar?: JSX.Element;\n class?: string;\n children: JSX.Element;\n};\n\nexport type AppOverviewEmptyStateProps = {\n title: string;\n description?: JSX.Element;\n icon?: string;\n class?: string;\n children?: JSX.Element;\n};\n\nexport type AppOverviewCardsProps = {\n class?: string;\n children: JSX.Element;\n};\n\ntype AppOverviewComponent = ((props: AppOverviewProps) => JSX.Element) & {\n Main: (props: AppOverviewPanelProps) => JSX.Element;\n Aside: (props: AppOverviewPanelProps) => JSX.Element;\n Cards: (props: AppOverviewCardsProps) => JSX.Element;\n EmptyState: (props: AppOverviewEmptyStateProps) => JSX.Element;\n};\n\nconst tablerIconClass = (icon: string | null | undefined, fallback: string): string => {\n const value = icon?.trim() || fallback;\n return value.startsWith(\"ti \") ? value : `ti ${value}`;\n};\n\nconst AppOverviewPanelHeader = (props: Pick<AppOverviewPanelProps, \"title\" | \"description\" | \"toolbar\">): JSX.Element => (\n <div class=\"k2b-app-overview__panel-header\">\n <div>\n <h2>{props.title}</h2>\n <Show when={props.description}>\n <p>{props.description}</p>\n </Show>\n </div>\n <Show when={props.toolbar}>\n <div class=\"k2b-app-overview__toolbar\">{props.toolbar}</div>\n </Show>\n </div>\n);\n\nconst AppOverviewMain = (props: AppOverviewPanelProps): JSX.Element => (\n <section class={`k2b-app-overview__main ${props.class ?? \"\"}`}>\n <AppOverviewPanelHeader title={props.title} description={props.description} toolbar={props.toolbar} />\n {props.children}\n </section>\n);\n\nconst AppOverviewAside = (props: AppOverviewPanelProps): JSX.Element => (\n <aside class={`k2b-app-overview__aside ${props.class ?? \"\"}`}>\n <AppOverviewPanelHeader title={props.title} description={props.description} toolbar={props.toolbar} />\n {props.children}\n </aside>\n);\n\nconst AppOverviewCards = (props: AppOverviewCardsProps): JSX.Element => (\n <div class={`k2b-app-overview__cards ${props.class ?? \"\"}`}>{props.children}</div>\n);\n\nconst AppOverviewEmptyState = (props: AppOverviewEmptyStateProps): JSX.Element => (\n <Placeholder\n surface=\"paper\"\n variant=\"panel\"\n title={props.title}\n description={props.description}\n icon={props.icon ? tablerIconClass(props.icon, \"ti-inbox\") : undefined}\n action={props.children}\n class={props.class}\n />\n);\n\nconst AppOverview = ((props: AppOverviewProps): JSX.Element => (\n <div class={`k2b-app-overview ${props.class ?? \"\"}`}>\n <header class=\"k2b-app-overview__header\">\n <span class=\"k2b-app-overview__icon\" aria-hidden=\"true\">\n <i class={tablerIconClass(props.icon, \"ti-apps\")} />\n </span>\n <PanelHeader as=\"h1\" size=\"lg\" title={props.title} subtitle={props.subtitle} actions={props.actions} />\n </header>\n <div class=\"k2b-app-overview__columns\">{props.children}</div>\n </div>\n)) as AppOverviewComponent;\n\nAppOverview.Main = AppOverviewMain;\nAppOverview.Aside = AppOverviewAside;\nAppOverview.Cards = AppOverviewCards;\nAppOverview.EmptyState = AppOverviewEmptyState;\n\nexport default AppOverview;\n"],"mappings":";;;;;;;;;;;;AAAA,SAAmB,IAAI,QAAQ,UAAU;AACzC,OAAO,WAAW,MAAM,yBAAyB;AACjD,SAAS,WAAW,QAAQ,eAAe;AAwC3C,MAAM,eAAe,GAAG,CAAC,IAA+B,EAAE,QAAgB,KAAa;EACrF,MAAM,KAAK,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,QAAQ;EACtC,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,MAAM,KAAK,EAAE;AACxD,CAAC;AAED,MAAM,sBAAsB,GAAI,KAAuE,4BAG5F,KAAK,CAAC,KAAK,8BACf,IAAI;EAAA,IAAC,IAAI;IAAA,OAAE,KAAK,CAAC,WAAW;EAAA;EAAA;IAAA,8BACvB,KAAK,CAAC,WAAW;EAAA;AAAA,gCAGxB,IAAI;EAAA,IAAC,IAAI;IAAA,OAAE,KAAK,CAAC,OAAO;EAAA;EAAA;IAAA,+BACiB,KAAK,CAAC,OAAO;EAAA;AAAA,IAG1D;AAED,MAAM,eAAe,GAAI,KAA4B,mBACnC,mCAA0B,KAAK,CAAC,KAAK,IAAI,EAAE,SAAE,6BAC1D,sBAAsB;EAAA,IAAC,KAAK;IAAA,OAAE,KAAK,CAAC,KAAK;EAAA;EAAA,IAAE,WAAW;IAAA,OAAE,KAAK,CAAC,WAAW;EAAA;EAAA,IAAE,OAAO;IAAA,OAAE,KAAK,CAAC,OAAO;EAAA;AAAA,cACjG,KAAK,CAAC,QAAQ,EAElB;AAED,MAAM,gBAAgB,GAAI,KAA4B,mBACtC,oCAA2B,KAAK,CAAC,KAAK,IAAI,EAAE,SAAE,6BACzD,sBAAsB;EAAA,IAAC,KAAK;IAAA,OAAE,KAAK,CAAC,KAAK;EAAA;EAAA,IAAE,WAAW;IAAA,OAAE,KAAK,CAAC,WAAW;EAAA;EAAA,IAAE,OAAO;IAAA,OAAE,KAAK,CAAC,OAAO;EAAA;AAAA,cACjG,KAAK,CAAC,QAAQ,EAElB;AAED,MAAM,gBAAgB,GAAI,KAA4B,mBACxC,oCAA2B,KAAK,CAAC,KAAK,IAAI,EAAE,SAAE,WAAG,KAAK,CAAC,QAAQ,EAC5E;AAED,MAAM,qBAAqB,GAAI,KAAiC,sBAC7D,WAAW;EACV,OAAO;EACP,OAAO;EAAA,IACP,KAAK;IAAA,OAAE,KAAK,CAAC,KAAK;EAAA;EAAA,IAClB,WAAW;IAAA,OAAE,KAAK,CAAC,WAAW;EAAA;EAAA,IAC9B,IAAI;IAAA,OAAE,oBAAK,CAAC,IAAI,MAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,SAAS;EAAA;EAAA,IACtE,MAAM;IAAA,OAAE,KAAK,CAAC,QAAQ;EAAA;EAAA;IAAA,OACf,KAAK,CAAC,KAAK;EAAA;AAAA,EAErB;AAED,MAAM,WAAW,GAAK,KAAuB,mBAC/B,6BAAoB,KAAK,CAAC,KAAK,IAAI,EAAE,SAAE,mCAGnC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,4CAEjD,WAAW;EAAC,EAAE;EAAM,IAAI;EAAA,IAAM,KAAK;IAAA,OAAE,KAAK,CAAC,KAAK;EAAA;EAAA,IAAE,QAAQ;IAAA,OAAE,KAAK,CAAC,QAAQ;EAAA;EAAA,IAAE,OAAO;IAAA,OAAE,KAAK,CAAC,OAAO;EAAA;AAAA,cAE7D,KAAK,CAAC,QAAQ,EAEhC;AAE1B,WAAW,CAAC,IAAI,GAAG,eAAe;AAClC,WAAW,CAAC,KAAK,GAAG,gBAAgB;AACpC,WAAW,CAAC,KAAK,GAAG,gBAAgB;AACpC,WAAW,CAAC,UAAU,GAAG,qBAAqB;AAE9C,eAAe,WAAW","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["layout/AppOverview.tsx"],"sourcesContent":["import { type JSX, Show } from \"solid-js\";\nimport Placeholder from \"../surfaces/Placeholder\";\nimport { PanelHeader } from \"./PanelHeader\";\n\nexport type AppOverviewProps = {\n title: string;\n subtitle?: string;\n icon: string;\n /** The page's single primary action, such as a create button or menu. */\n actions?: JSX.Element;\n class?: string;\n children: JSX.Element;\n};\n\nexport type AppOverviewPanelProps = {\n title: string;\n description?: JSX.Element;\n toolbar?: JSX.Element;\n class?: string;\n children: JSX.Element;\n};\n\nexport type AppOverviewEmptyStateProps = {\n title: string;\n description?: JSX.Element;\n icon?: string;\n class?: string;\n children?: JSX.Element;\n};\n\nexport type AppOverviewCardsProps = {\n class?: string;\n children: JSX.Element;\n};\n\ntype AppOverviewComponent = ((props: AppOverviewProps) => JSX.Element) & {\n Main: (props: AppOverviewPanelProps) => JSX.Element;\n Aside: (props: AppOverviewPanelProps) => JSX.Element;\n Cards: (props: AppOverviewCardsProps) => JSX.Element;\n EmptyState: (props: AppOverviewEmptyStateProps) => JSX.Element;\n};\n\nconst tablerIconClass = (icon: string | null | undefined, fallback: string): string => {\n const value = icon?.trim() || fallback;\n return value.startsWith(\"ti \") ? value : `ti ${value}`;\n};\n\nconst AppOverviewPanelHeader = (props: Pick<AppOverviewPanelProps, \"title\" | \"description\" | \"toolbar\">): JSX.Element => (\n <div class=\"k2b-app-overview__panel-header\">\n <div>\n <h2>{props.title}</h2>\n <Show when={props.description}>\n <p class=\"k2b-app-overview__panel-description\">{props.description}</p>\n </Show>\n </div>\n <Show when={props.toolbar}>\n <div class=\"k2b-app-overview__toolbar\">{props.toolbar}</div>\n </Show>\n </div>\n);\n\nconst AppOverviewMain = (props: AppOverviewPanelProps): JSX.Element => (\n <section class={`k2b-app-overview__main ${props.class ?? \"\"}`}>\n <AppOverviewPanelHeader title={props.title} description={props.description} toolbar={props.toolbar} />\n {props.children}\n </section>\n);\n\nconst AppOverviewAside = (props: AppOverviewPanelProps): JSX.Element => (\n <aside class={`k2b-app-overview__aside ${props.class ?? \"\"}`}>\n <AppOverviewPanelHeader title={props.title} description={props.description} toolbar={props.toolbar} />\n {props.children}\n </aside>\n);\n\nconst AppOverviewCards = (props: AppOverviewCardsProps): JSX.Element => (\n <div class={`k2b-app-overview__cards ${props.class ?? \"\"}`}>{props.children}</div>\n);\n\nconst AppOverviewEmptyState = (props: AppOverviewEmptyStateProps): JSX.Element => (\n <Placeholder\n surface=\"paper\"\n variant=\"panel\"\n title={props.title}\n description={props.description}\n icon={props.icon ? tablerIconClass(props.icon, \"ti-inbox\") : undefined}\n action={props.children}\n class={props.class}\n />\n);\n\nconst AppOverview = ((props: AppOverviewProps): JSX.Element => (\n <div class={`k2b-app-overview ${props.class ?? \"\"}`}>\n <header class=\"k2b-app-overview__header\">\n <span class=\"k2b-app-overview__icon\" aria-hidden=\"true\">\n <i class={tablerIconClass(props.icon, \"ti-apps\")} />\n </span>\n <PanelHeader as=\"h1\" size=\"lg\" title={props.title} subtitle={props.subtitle} actions={props.actions} />\n </header>\n <div class=\"k2b-app-overview__columns\">{props.children}</div>\n </div>\n)) as AppOverviewComponent;\n\nAppOverview.Main = AppOverviewMain;\nAppOverview.Aside = AppOverviewAside;\nAppOverview.Cards = AppOverviewCards;\nAppOverview.EmptyState = AppOverviewEmptyState;\n\nexport default AppOverview;\n"],"mappings":";;;;;;;;;;;;AAAA,SAAmB,IAAI,QAAQ,UAAU;AACzC,OAAO,WAAW,MAAM,yBAAyB;AACjD,SAAS,WAAW,QAAQ,eAAe;AAwC3C,MAAM,eAAe,GAAG,CAAC,IAA+B,EAAE,QAAgB,KAAa;EACrF,MAAM,KAAK,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,QAAQ;EACtC,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,MAAM,KAAK,EAAE;AACxD,CAAC;AAED,MAAM,sBAAsB,GAAI,KAAuE,4BAG5F,KAAK,CAAC,KAAK,8BACf,IAAI;EAAA,IAAC,IAAI;IAAA,OAAE,KAAK,CAAC,WAAW;EAAA;EAAA;IAAA,8BACqB,KAAK,CAAC,WAAW;EAAA;AAAA,gCAGpE,IAAI;EAAA,IAAC,IAAI;IAAA,OAAE,KAAK,CAAC,OAAO;EAAA;EAAA;IAAA,+BACiB,KAAK,CAAC,OAAO;EAAA;AAAA,IAG1D;AAED,MAAM,eAAe,GAAI,KAA4B,mBACnC,mCAA0B,KAAK,CAAC,KAAK,IAAI,EAAE,SAAE,6BAC1D,sBAAsB;EAAA,IAAC,KAAK;IAAA,OAAE,KAAK,CAAC,KAAK;EAAA;EAAA,IAAE,WAAW;IAAA,OAAE,KAAK,CAAC,WAAW;EAAA;EAAA,IAAE,OAAO;IAAA,OAAE,KAAK,CAAC,OAAO;EAAA;AAAA,cACjG,KAAK,CAAC,QAAQ,EAElB;AAED,MAAM,gBAAgB,GAAI,KAA4B,mBACtC,oCAA2B,KAAK,CAAC,KAAK,IAAI,EAAE,SAAE,6BACzD,sBAAsB;EAAA,IAAC,KAAK;IAAA,OAAE,KAAK,CAAC,KAAK;EAAA;EAAA,IAAE,WAAW;IAAA,OAAE,KAAK,CAAC,WAAW;EAAA;EAAA,IAAE,OAAO;IAAA,OAAE,KAAK,CAAC,OAAO;EAAA;AAAA,cACjG,KAAK,CAAC,QAAQ,EAElB;AAED,MAAM,gBAAgB,GAAI,KAA4B,mBACxC,oCAA2B,KAAK,CAAC,KAAK,IAAI,EAAE,SAAE,WAAG,KAAK,CAAC,QAAQ,EAC5E;AAED,MAAM,qBAAqB,GAAI,KAAiC,sBAC7D,WAAW;EACV,OAAO;EACP,OAAO;EAAA,IACP,KAAK;IAAA,OAAE,KAAK,CAAC,KAAK;EAAA;EAAA,IAClB,WAAW;IAAA,OAAE,KAAK,CAAC,WAAW;EAAA;EAAA,IAC9B,IAAI;IAAA,OAAE,oBAAK,CAAC,IAAI,MAAG,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,SAAS;EAAA;EAAA,IACtE,MAAM;IAAA,OAAE,KAAK,CAAC,QAAQ;EAAA;EAAA;IAAA,OACf,KAAK,CAAC,KAAK;EAAA;AAAA,EAErB;AAED,MAAM,WAAW,GAAK,KAAuB,mBAC/B,6BAAoB,KAAK,CAAC,KAAK,IAAI,EAAE,SAAE,mCAGnC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,4CAEjD,WAAW;EAAC,EAAE;EAAM,IAAI;EAAA,IAAM,KAAK;IAAA,OAAE,KAAK,CAAC,KAAK;EAAA;EAAA,IAAE,QAAQ;IAAA,OAAE,KAAK,CAAC,QAAQ;EAAA;EAAA,IAAE,OAAO;IAAA,OAAE,KAAK,CAAC,OAAO;EAAA;AAAA,cAE7D,KAAK,CAAC,QAAQ,EAEhC;AAE1B,WAAW,CAAC,IAAI,GAAG,eAAe;AAClC,WAAW,CAAC,KAAK,GAAG,gBAAgB;AACpC,WAAW,CAAC,KAAK,GAAG,gBAAgB;AACpC,WAAW,CAAC,UAAU,GAAG,qBAAqB;AAE9C,eAAe,WAAW","ignoreList":[]}
@@ -11,40 +11,41 @@ var _tmpl$ = ["<button type=\"button\" class=\"k2b-app-workspace__resize\" role=
11
11
  _tmpl$2 = ["<div class=\"k2b-app-workspace__main-primary\" data-workspace-main-region=\"main\"", ">", "</div>"],
12
12
  _tmpl$3 = ["<section", " class=\"", "\"", " style=\"", "\">", "</section>"],
13
13
  _tmpl$4 = ["<aside", " class=\"", "\"", "", " style=\"", "\">", "</aside>"],
14
- _tmpl$5 = ["<aside", " class=\"", "\"", "><div class=\"k2b-app-workspace__sidebar-desktop\">", "</div></aside>"],
15
- _tmpl$6 = ["<script>", "</script>"],
16
- _tmpl$7 = ["<span aria-hidden=\"true\"><i", "></i></span>"],
17
- _tmpl$8 = ["<span class=\"k2b-app-workspace__sidebar-section-count\">", "</span>"],
18
- _tmpl$9 = ["<button type=\"button\" class=\"k2b-app-workspace__sidebar-section-toggle\"", ">", "<i", " aria-hidden=\"true\"></i></button>"],
19
- _tmpl$0 = ["<div class=\"k2b-app-workspace__sidebar-section-actions\">", "</div>"],
20
- _tmpl$1 = ["<header class=\"k2b-app-workspace__sidebar-section-header\">", "", "</header>"],
21
- _tmpl$10 = ["<div", "", " class=\"k2b-app-workspace__sidebar-section-content\">", "</div>"],
22
- _tmpl$11 = ["<h2>", "</h2>"],
23
- _tmpl$12 = ["<div class=\"k2b-app-workspace__sidebar-item-actions\"", ">", "</div>"],
24
- _tmpl$13 = ["<span class=\"k2b-app-workspace__sidebar-item-icon\" aria-hidden=\"true\">", "</span>"],
25
- _tmpl$14 = ["<span class=\"k2b-app-workspace__sidebar-item-context-meta\">", "</span>"],
26
- _tmpl$15 = ["<span class=\"k2b-app-workspace__sidebar-item-context\"><span class=\"k2b-app-workspace__sidebar-item-context-label\">", "</span>", "</span>"],
27
- _tmpl$16 = ["<span class=\"k2b-app-workspace__sidebar-item-description\">", "</span>"],
28
- _tmpl$17 = ["<span class=\"k2b-app-workspace__sidebar-item-copy\">", "<span class=\"k2b-app-workspace__sidebar-item-label\"", "><span class=\"k2b-app-workspace__sidebar-item-label-text\">", "</span></span>", "</span>"],
29
- _tmpl$18 = ["<i", "></i>"],
30
- _tmpl$19 = ["<span class=\"k2b-app-workspace__sidebar-item-meta\"", ">", "</span>"],
31
- _tmpl$20 = ["<a", " class=\"k2b-app-workspace__sidebar-item-action\"", ">", "</a>"],
32
- _tmpl$21 = ["<button type=\"button\" class=\"k2b-app-workspace__sidebar-item-action\"", ">", "</button>"],
33
- _tmpl$22 = ["<span class=\"k2b-app-workspace__sidebar-item-icon\"", " aria-hidden=\"true\"><i", "></i></span>"],
34
- _tmpl$23 = ["<span class=\"k2b-app-workspace__sidebar-item-label\"><span class=\"k2b-app-workspace__sidebar-item-label-text\">", "</span></span>"],
35
- _tmpl$24 = ["<span class=\"", "\"", ">", "</span>"],
36
- _tmpl$25 = ["<span class=\"k2b-app-workspace__nav-tree-toggle\" data-k2b-nav-tree-toggle aria-hidden=\"true\"><i class=\"", "\"></i></span>"],
37
- _tmpl$26 = ["<div class=\"k2b-app-workspace__nav-tree-group\" role=\"group\">", "</div>"],
38
- _tmpl$27 = ["<div class=\"k2b-app-workspace__nav-tree-node\" role=\"treeitem\"", ">", "", "</div>"],
39
- _tmpl$28 = ["<div class=\"", "\" role=\"tree\"", ">", "</div>"],
40
- _tmpl$29 = ["<div class=\"k2b-app-workspace__sidebar-icon-grid\"", ">", "</div>"],
41
- _tmpl$30 = ["<i", " aria-hidden=\"true\"></i>"],
42
- _tmpl$31 = ["<div class=\"", "\" data-k2b-app-workspace", " style=\"", "\">", "</div>"],
43
- _tmpl$32 = ["<div class=\"", "\">", "</div>"];
14
+ _tmpl$5 = ["<div class=\"k2b-app-workspace__sidebar-desktop\">", "</div>"],
15
+ _tmpl$6 = ["<aside", " class=\"", "\"", "", ">", "</aside>"],
16
+ _tmpl$7 = ["<script>", "</script>"],
17
+ _tmpl$8 = ["<span aria-hidden=\"true\"><i", "></i></span>"],
18
+ _tmpl$9 = ["<span class=\"k2b-app-workspace__sidebar-section-count\">", "</span>"],
19
+ _tmpl$0 = ["<button type=\"button\" class=\"k2b-app-workspace__sidebar-section-toggle\"", ">", "<i", " aria-hidden=\"true\"></i></button>"],
20
+ _tmpl$1 = ["<div class=\"k2b-app-workspace__sidebar-section-actions\">", "</div>"],
21
+ _tmpl$10 = ["<header class=\"k2b-app-workspace__sidebar-section-header\">", "", "</header>"],
22
+ _tmpl$11 = ["<div", "", " class=\"k2b-app-workspace__sidebar-section-content\">", "</div>"],
23
+ _tmpl$12 = ["<h2>", "</h2>"],
24
+ _tmpl$13 = ["<div class=\"k2b-app-workspace__sidebar-item-actions\"", ">", "</div>"],
25
+ _tmpl$14 = ["<span class=\"k2b-app-workspace__sidebar-item-icon\" aria-hidden=\"true\">", "</span>"],
26
+ _tmpl$15 = ["<span class=\"k2b-app-workspace__sidebar-item-context-meta\">", "</span>"],
27
+ _tmpl$16 = ["<span class=\"k2b-app-workspace__sidebar-item-context\"><span class=\"k2b-app-workspace__sidebar-item-context-label\">", "</span>", "</span>"],
28
+ _tmpl$17 = ["<span class=\"k2b-app-workspace__sidebar-item-description\">", "</span>"],
29
+ _tmpl$18 = ["<span class=\"k2b-app-workspace__sidebar-item-copy\">", "<span class=\"k2b-app-workspace__sidebar-item-label\"", "><span class=\"k2b-app-workspace__sidebar-item-label-text\">", "</span></span>", "</span>"],
30
+ _tmpl$19 = ["<i", "></i>"],
31
+ _tmpl$20 = ["<span class=\"k2b-app-workspace__sidebar-item-meta\"", ">", "</span>"],
32
+ _tmpl$21 = ["<a", " class=\"k2b-app-workspace__sidebar-item-action\"", ">", "</a>"],
33
+ _tmpl$22 = ["<button type=\"button\" class=\"k2b-app-workspace__sidebar-item-action\"", ">", "</button>"],
34
+ _tmpl$23 = ["<span class=\"k2b-app-workspace__sidebar-item-icon\"", " aria-hidden=\"true\"><i", "></i></span>"],
35
+ _tmpl$24 = ["<span class=\"k2b-app-workspace__sidebar-item-label\"><span class=\"k2b-app-workspace__sidebar-item-label-text\">", "</span></span>"],
36
+ _tmpl$25 = ["<span class=\"", "\"", ">", "</span>"],
37
+ _tmpl$26 = ["<span class=\"k2b-app-workspace__nav-tree-toggle\" data-k2b-nav-tree-toggle aria-hidden=\"true\"><i class=\"", "\"></i></span>"],
38
+ _tmpl$27 = ["<div class=\"k2b-app-workspace__nav-tree-group\" role=\"group\">", "</div>"],
39
+ _tmpl$28 = ["<div class=\"k2b-app-workspace__nav-tree-node\" role=\"treeitem\"", ">", "", "</div>"],
40
+ _tmpl$29 = ["<div class=\"", "\" role=\"tree\"", ">", "</div>"],
41
+ _tmpl$30 = ["<div class=\"k2b-app-workspace__sidebar-icon-grid\"", ">", "</div>"],
42
+ _tmpl$31 = ["<i", " aria-hidden=\"true\"></i>"],
43
+ _tmpl$32 = ["<div class=\"", "\" data-k2b-app-workspace", " style=\"", "\">", "</div>"],
44
+ _tmpl$33 = ["<div class=\"", "\">", "</div>"];
44
45
  import { Link } from "@k2b/ssr/nav";
45
46
  import { children, createContext, createMemo, createSignal, createUniqueId, For, mergeProps, onCleanup, onMount, Show, useContext } from "solid-js";
46
47
  import { useUiMessages } from "../intl/messages";
47
- import { installAppWorkspaceController } from "./app-workspace-controller";
48
+ import { APP_WORKSPACE_SIDEBAR_HIDE_EVENT, installAppWorkspaceController } from "./app-workspace-controller";
48
49
  import { APP_WORKSPACE_DETAIL_DEFAULT, APP_WORKSPACE_DETAIL_MAX, APP_WORKSPACE_DETAIL_MIN, APP_WORKSPACE_DRAWER_DEFAULT, APP_WORKSPACE_DRAWER_MAX, APP_WORKSPACE_DRAWER_MIN, APP_WORKSPACE_PANE_DEFAULT, APP_WORKSPACE_PANE_MAX, APP_WORKSPACE_PANE_MIN, APP_WORKSPACE_SIDEBAR_COLLAPSED, APP_WORKSPACE_SIDEBAR_DEFAULT, APP_WORKSPACE_SIDEBAR_MAX, APP_WORKSPACE_SIDEBAR_MIN, appWorkspaceLayoutStyle, appWorkspacePanelVariable } from "./app-workspace-state";
49
50
  import { SidebarItemPreview } from "./SidebarItemPreview";
50
51
  import { createScrollFade } from "./scroll-fade";
@@ -336,19 +337,36 @@ function AppWorkspaceSidebar(props) {
336
337
  const minSize = () => props.minSize ?? (props.collapsible ? APP_WORKSPACE_SIDEBAR_COLLAPSED : APP_WORKSPACE_SIDEBAR_MIN);
337
338
  const maxSize = () => props.maxSize ?? APP_WORKSPACE_SIDEBAR_MAX;
338
339
  const generatedId = createUniqueId();
339
- const domId = `k2b-workspace-sidebar-${generatedId}`;
340
- const resolved = children(() => props.children);
340
+ const domId = () => props.id ?? `k2b-workspace-sidebar-${generatedId}`;
341
+ // Hidden navigation is not rendered at all, so its labels are neither shown
342
+ // nor reachable; reading the children lazily keeps them from being created.
343
+ const resolved = children(() => props.hidden ? undefined : props.children);
341
344
  const slots = createMemo(() => flatten(resolved()).filter(sidebarChildSlot));
342
345
  const desktop = createMemo(() => slots().find(slot => slot.kind === SIDEBAR_DESKTOP));
343
- return [_$ssr(_tmpl$5, _$ssrAttribute("id", _$escape(domId, true), false), `k2b-app-workspace__sidebar ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("aria-label", _$escape(props.label, true), false) + _$ssrAttribute("data-mobile", props.mobile === "stacked" ? "stacked" : _$escape(undefined, true), false) + _$ssrAttribute("data-workspace-resizable", resizable() ? "true" : "false", false) + _$ssrAttribute("data-workspace-collapsible", props.collapsible ? "true" : "false", false), _$escape(desktop()?.children)), _$createComponent(Show, {
346
+ let aside;
347
+ onMount(() => {
348
+ const requestHide = () => props.onHiddenChange?.(true);
349
+ aside?.addEventListener(APP_WORKSPACE_SIDEBAR_HIDE_EVENT, requestHide);
350
+ onCleanup(() => aside?.removeEventListener(APP_WORKSPACE_SIDEBAR_HIDE_EVENT, requestHide));
351
+ });
352
+ return [_$ssr(_tmpl$6, _$ssrAttribute("id", _$escape(domId(), true), false), `k2b-app-workspace__sidebar ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("aria-label", _$escape(props.label, true), false), _$ssrAttribute("hidden", props.hidden || undefined, true) + _$ssrAttribute("data-mobile", props.mobile === "stacked" ? "stacked" : _$escape(undefined, true), false) + _$ssrAttribute("data-workspace-resizable", resizable() ? "true" : "false", false) + _$ssrAttribute("data-workspace-collapsible", props.collapsible ? "true" : "false", false) + _$ssrAttribute("data-workspace-hideable", props.onHiddenChange ? "true" : _$escape(undefined, true), false), _$escape(_$createComponent(Show, {
344
353
  get when() {
345
- return resizable();
354
+ return !props.hidden;
355
+ },
356
+ get children() {
357
+ return _$ssr(_tmpl$5, _$escape(desktop()?.children));
358
+ }
359
+ }))), _$createComponent(Show, {
360
+ get when() {
361
+ return _$memo(() => !!resizable())() && !props.hidden;
346
362
  },
347
363
  get children() {
348
364
  return _$createComponent(ResizeHandle, {
349
365
  kind: "sidebar",
350
366
  edge: "end",
351
- controls: domId,
367
+ get controls() {
368
+ return domId();
369
+ },
352
370
  get defaultSize() {
353
371
  return defaultSize();
354
372
  },
@@ -390,7 +408,7 @@ const AppWorkspaceSidebarBody = props => {
390
408
  get ["data-scroll-fade-mode"]() {
391
409
  return props.scrollFade !== false ? "both" : undefined;
392
410
  }
393
- }, () => scrollAttrs(props.scrollPreserveKey), () => modeAttrs(props.sidebarMode)), _$escape(props.children), false), _$ssr(_tmpl$6, SIDEBAR_SCROLL_MEMORY_SCRIPT)];
411
+ }, () => scrollAttrs(props.scrollPreserveKey), () => modeAttrs(props.sidebarMode)), _$escape(props.children), false), _$ssr(_tmpl$7, SIDEBAR_SCROLL_MEMORY_SCRIPT)];
394
412
  };
395
413
  const AppWorkspaceSidebarFooter = props => _$ssrElement("footer", _$mergeProps({
396
414
  get ["class"]() {
@@ -406,14 +424,14 @@ const AppWorkspaceSidebarSection = props => {
406
424
  return props.icon;
407
425
  },
408
426
  get children() {
409
- return _$ssr(_tmpl$7, _$ssrAttribute("class", _$escape(iconClass(props.icon), true), false));
427
+ return _$ssr(_tmpl$8, _$ssrAttribute("class", _$escape(iconClass(props.icon), true), false));
410
428
  }
411
429
  }), props.title, _$createComponent(Show, {
412
430
  get when() {
413
431
  return props.count !== undefined;
414
432
  },
415
433
  get children() {
416
- return _$ssr(_tmpl$8, _$escape(props.count));
434
+ return _$ssr(_tmpl$9, _$escape(props.count));
417
435
  }
418
436
  })];
419
437
  return _$ssrElement("section", _$mergeProps({
@@ -428,7 +446,7 @@ const AppWorkspaceSidebarSection = props => {
428
446
  return props.title || props.actions;
429
447
  },
430
448
  get children() {
431
- return _$ssr(_tmpl$1, _$escape(_$createComponent(Show, {
449
+ return _$ssr(_tmpl$10, _$escape(_$createComponent(Show, {
432
450
  get when() {
433
451
  return props.collapsible;
434
452
  },
@@ -438,23 +456,23 @@ const AppWorkspaceSidebarSection = props => {
438
456
  return props.title;
439
457
  },
440
458
  get children() {
441
- return _$ssr(_tmpl$11, _$escape(title()));
459
+ return _$ssr(_tmpl$12, _$escape(title()));
442
460
  }
443
461
  });
444
462
  },
445
463
  get children() {
446
- return _$ssr(_tmpl$9, _$ssrAttribute("aria-expanded", _$escape(open(), true), false) + _$ssrAttribute("aria-controls", _$escape(id, true), false), _$escape(title()), _$ssrAttribute("class", open() ? "ti ti-chevron-down" : "ti ti-chevron-right", false));
464
+ return _$ssr(_tmpl$0, _$ssrAttribute("aria-expanded", _$escape(open(), true), false) + _$ssrAttribute("aria-controls", _$escape(id, true), false), _$escape(title()), _$ssrAttribute("class", open() ? "ti ti-chevron-down" : "ti ti-chevron-right", false));
447
465
  }
448
466
  })), _$escape(_$createComponent(Show, {
449
467
  get when() {
450
468
  return props.actions;
451
469
  },
452
470
  get children() {
453
- return _$ssr(_tmpl$0, _$escape(props.actions));
471
+ return _$ssr(_tmpl$1, _$escape(props.actions));
454
472
  }
455
473
  })));
456
474
  }
457
- })), _$ssr(_tmpl$10, _$ssrAttribute("id", _$escape(id, true), false), _$ssrAttribute("hidden", !open(), true), _$escape(props.children))], false);
475
+ })), _$ssr(_tmpl$11, _$ssrAttribute("id", _$escape(id, true), false), _$ssrAttribute("hidden", !open(), true), _$escape(props.children))], false);
458
476
  };
459
477
  const AppWorkspaceSidebarItemIcon = props => mergeProps({
460
478
  kind: SIDEBAR_ITEM_ICON
@@ -468,7 +486,7 @@ const AppWorkspaceSidebarItemMeta = props => mergeProps({
468
486
  const AppWorkspaceSidebarItemAction = props => mergeProps({
469
487
  kind: SIDEBAR_ITEM_ACTION
470
488
  }, props);
471
- const AppWorkspaceSidebarItemActions = props => _$ssr(_tmpl$12, _$ssrAttribute("data-visibility", props.visibility === "hover" ? "hover" : _$escape(undefined, true), false), _$escape(props.children));
489
+ const AppWorkspaceSidebarItemActions = props => _$ssr(_tmpl$13, _$ssrAttribute("data-visibility", props.visibility === "hover" ? "hover" : _$escape(undefined, true), false), _$escape(props.children));
472
490
  /** Shared visual and semantic row frame for flat sidebar items and tree items. */
473
491
  function AppWorkspaceSidebarRow(props) {
474
492
  const className = () => `k2b-app-workspace__sidebar-item ${props.hasActions ? "has-action" : ""} ${props.active ? props.activeClass ?? "is-active" : ""} ${props.class ?? ""}`;
@@ -600,19 +618,19 @@ function AppWorkspaceSidebarItem(props) {
600
618
  return iconContent() || icon();
601
619
  },
602
620
  get children() {
603
- return _$ssr(_tmpl$13, _$escape(iconContent() ?? _$ssr(_tmpl$18, _$ssrAttribute("class", _$escape(iconClass(icon()), true), false))));
621
+ return _$ssr(_tmpl$14, _$escape(iconContent() ?? _$ssr(_tmpl$19, _$ssrAttribute("class", _$escape(iconClass(icon()), true), false))));
604
622
  }
605
- }), _$ssr(_tmpl$17, _$escape(_$createComponent(Show, {
623
+ }), _$ssr(_tmpl$18, _$escape(_$createComponent(Show, {
606
624
  get when() {
607
625
  return props.context || props.contextMeta;
608
626
  },
609
627
  get children() {
610
- return _$ssr(_tmpl$15, _$escape(props.context), _$escape(_$createComponent(Show, {
628
+ return _$ssr(_tmpl$16, _$escape(props.context), _$escape(_$createComponent(Show, {
611
629
  get when() {
612
630
  return props.contextMeta;
613
631
  },
614
632
  get children() {
615
- return _$ssr(_tmpl$14, _$escape(props.contextMeta));
633
+ return _$ssr(_tmpl$15, _$escape(props.contextMeta));
616
634
  }
617
635
  })));
618
636
  }
@@ -621,13 +639,13 @@ function AppWorkspaceSidebarItem(props) {
621
639
  return props.description;
622
640
  },
623
641
  get children() {
624
- return _$ssr(_tmpl$16, _$escape(props.description));
642
+ return _$ssr(_tmpl$17, _$escape(props.description));
625
643
  }
626
644
  }))), _$createComponent(Show, {
627
645
  get when() {
628
646
  return meta();
629
647
  },
630
- children: value => _$ssr(_tmpl$19, _$ssrAttribute("data-visibility", metaVisibility() === "hover" ? "hover" : _$escape(undefined, true), false), _$escape(value()))
648
+ children: value => _$ssr(_tmpl$20, _$ssrAttribute("data-visibility", metaVisibility() === "hover" ? "hover" : _$escape(undefined, true), false), _$escape(value()))
631
649
  })];
632
650
  const singleAction = () => {
633
651
  const label = () => actionSlot()?.label ?? props.actionLabel ?? messages().rowAction;
@@ -641,7 +659,7 @@ function AppWorkspaceSidebarItem(props) {
641
659
  actionSlot()?.onSelect?.(event);
642
660
  props.onActionClick?.(event);
643
661
  };
644
- const content = () => actionSlot()?.children ?? _$ssr(_tmpl$18, _$ssrAttribute("class", _$escape(iconClass(actionSlot()?.icon ?? props.actionIcon, "ti-dots"), true), false));
662
+ const content = () => actionSlot()?.children ?? _$ssr(_tmpl$19, _$ssrAttribute("class", _$escape(iconClass(actionSlot()?.icon ?? props.actionIcon, "ti-dots"), true), false));
645
663
  return _$createComponent(Show, {
646
664
  get when() {
647
665
  return Boolean(actionSlot() || props.actionIcon);
@@ -652,10 +670,10 @@ function AppWorkspaceSidebarItem(props) {
652
670
  return _$memo(() => !!actionSlot()?.href)() && !actionSlot()?.disabled;
653
671
  },
654
672
  get fallback() {
655
- return _$ssr(_tmpl$21, _$ssrAttribute("disabled", actionSlot()?.disabled, true) + _$ssrAttribute("data-visibility", actionSlot()?.visibility === "hover" ? "hover" : _$escape(undefined, true), false) + _$ssrAttribute("aria-label", _$escape(label(), true), false), _$escape(content()));
673
+ return _$ssr(_tmpl$22, _$ssrAttribute("disabled", actionSlot()?.disabled, true) + _$ssrAttribute("data-visibility", actionSlot()?.visibility === "hover" ? "hover" : _$escape(undefined, true), false) + _$ssrAttribute("aria-label", _$escape(label(), true), false), _$escape(content()));
656
674
  },
657
675
  get children() {
658
- return _$ssr(_tmpl$20, _$ssrAttribute("href", _$escape(actionSlot()?.href, true), false), _$ssrAttribute("data-visibility", actionSlot()?.visibility === "hover" ? "hover" : _$escape(undefined, true), false) + _$ssrAttribute("aria-label", _$escape(label(), true), false), _$escape(content()));
676
+ return _$ssr(_tmpl$21, _$ssrAttribute("href", _$escape(actionSlot()?.href, true), false), _$ssrAttribute("data-visibility", actionSlot()?.visibility === "hover" ? "hover" : _$escape(undefined, true), false) + _$ssrAttribute("aria-label", _$escape(label(), true), false), _$escape(content()));
659
677
  }
660
678
  });
661
679
  }
@@ -891,21 +909,21 @@ const AppWorkspaceNavTree = props => {
891
909
  return rowIcon();
892
910
  },
893
911
  get children() {
894
- return _$ssr(_tmpl$22, _$ssrAttribute("data-k2b-nav-tree-toggle", usesIconDisclosure() ? "" : _$escape(undefined, true), false), _$ssrAttribute("class", _$escape(iconClass(rowIcon()), true), false));
912
+ return _$ssr(_tmpl$23, _$ssrAttribute("data-k2b-nav-tree-toggle", usesIconDisclosure() ? "" : _$escape(undefined, true), false), _$ssrAttribute("class", _$escape(iconClass(rowIcon()), true), false));
895
913
  }
896
- }), _$ssr(_tmpl$23, _$escape(item.label)), _$createComponent(Show, {
914
+ }), _$ssr(_tmpl$24, _$escape(item.label)), _$createComponent(Show, {
897
915
  get when() {
898
916
  return item.meta !== undefined;
899
917
  },
900
918
  get children() {
901
- return _$ssr(_tmpl$24, `k2b-app-workspace__sidebar-item-meta ${hasChildren() ? "" : "k2b-app-workspace__nav-tree-leaf-meta"}`, _$ssrAttribute("data-visibility", item.metaVisibility === "hover" ? "hover" : _$escape(undefined, true), false), _$escape(item.meta));
919
+ return _$ssr(_tmpl$25, `k2b-app-workspace__sidebar-item-meta ${hasChildren() ? "" : "k2b-app-workspace__nav-tree-leaf-meta"}`, _$ssrAttribute("data-visibility", item.metaVisibility === "hover" ? "hover" : _$escape(undefined, true), false), _$escape(item.meta));
902
920
  }
903
921
  }), _$createComponent(Show, {
904
922
  get when() {
905
923
  return _$memo(() => !!hasChildren())() && !usesIconDisclosure();
906
924
  },
907
925
  get children() {
908
- return _$ssr(_tmpl$25, `ti ${isExpanded(item.id) ? "ti-chevron-down" : "ti-chevron-right"}`);
926
+ return _$ssr(_tmpl$26, `ti ${isExpanded(item.id) ? "ti-chevron-down" : "ti-chevron-right"}`);
909
927
  }
910
928
  })];
911
929
  const row = () => _$createComponent(AppWorkspaceSidebarRow, {
@@ -960,17 +978,17 @@ const AppWorkspaceNavTree = props => {
960
978
  },
961
979
  children: rowContent
962
980
  });
963
- return _$ssr(_tmpl$27, _$ssrAttribute("aria-level", _$escape(depth, true) + 1, false) + _$ssrAttribute("aria-selected", _$escape(selected(), true), false) + _$ssrAttribute("aria-expanded", hasChildren() ? _$escape(isExpanded(item.id), true) : _$escape(undefined, true), false) + _$ssrAttribute("aria-disabled", item.disabled ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("tabindex", item.disabled ? -1 : tabStopId() === item.id ? 0 : -1, false) + _$ssrAttribute("data-k2b-nav-tree-id", _$escape(item.id, true), false) + _$ssrAttribute("data-k2b-nav-tree-parent-id", _$escape(parentId, true), false), _$escape(row()), _$escape(_$createComponent(Show, {
981
+ return _$ssr(_tmpl$28, _$ssrAttribute("aria-level", _$escape(depth, true) + 1, false) + _$ssrAttribute("aria-selected", _$escape(selected(), true), false) + _$ssrAttribute("aria-expanded", hasChildren() ? _$escape(isExpanded(item.id), true) : _$escape(undefined, true), false) + _$ssrAttribute("aria-disabled", item.disabled ? "true" : _$escape(undefined, true), false) + _$ssrAttribute("tabindex", item.disabled ? -1 : tabStopId() === item.id ? 0 : -1, false) + _$ssrAttribute("data-k2b-nav-tree-id", _$escape(item.id, true), false) + _$ssrAttribute("data-k2b-nav-tree-parent-id", _$escape(parentId, true), false), _$escape(row()), _$escape(_$createComponent(Show, {
964
982
  get when() {
965
983
  return _$memo(() => !!hasChildren())() && isExpanded(item.id);
966
984
  },
967
985
  get children() {
968
- return _$ssr(_tmpl$26, _$escape(renderItems(nested, depth + 1, item.id)));
986
+ return _$ssr(_tmpl$27, _$escape(renderItems(nested, depth + 1, item.id)));
969
987
  }
970
988
  })));
971
989
  }
972
990
  });
973
- return _$ssr(_tmpl$28, `k2b-app-workspace__nav-tree ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("aria-label", _$escape(props.ariaLabel, true), false), _$escape(renderItems(roots, 0)));
991
+ return _$ssr(_tmpl$29, `k2b-app-workspace__nav-tree ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("aria-label", _$escape(props.ariaLabel, true), false), _$escape(renderItems(roots, 0)));
974
992
  };
975
993
  AppWorkspaceNavTree.Item = AppWorkspaceNavTreeItem;
976
994
  const AppWorkspaceSidebarIconGrid = props => _$ssrElement("section", _$mergeProps({
@@ -981,10 +999,10 @@ const AppWorkspaceSidebarIconGrid = props => _$ssrElement("section", _$mergeProp
981
999
  get when() {
982
1000
  return props.title;
983
1001
  },
984
- children: title => _$ssr(_tmpl$11, _$escape(title()))
985
- })), _$ssr(_tmpl$29, _$ssrAttribute("data-columns", _$escape(props.columns ?? 2, true), false), _$escape(props.children))], false);
1002
+ children: title => _$ssr(_tmpl$12, _$escape(title()))
1003
+ })), _$ssr(_tmpl$30, _$ssrAttribute("data-columns", _$escape(props.columns ?? 2, true), false), _$escape(props.children))], false);
986
1004
  const AppWorkspaceSidebarIconAction = props => {
987
- const content = _$ssr(_tmpl$30, _$ssrAttribute("class", _$escape(iconClass(props.icon), true), false));
1005
+ const content = _$ssr(_tmpl$31, _$ssrAttribute("class", _$escape(iconClass(props.icon), true), false));
988
1006
  const attrs = () => ({
989
1007
  class: `k2b-app-workspace__sidebar-icon-action ${props.active ? "is-active" : ""}`,
990
1008
  title: props.label,
@@ -1050,7 +1068,7 @@ const AppWorkspace = props => {
1050
1068
  return props.resizable !== false;
1051
1069
  },
1052
1070
  get children() {
1053
- return _$ssr(_tmpl$31, `k2b-app-workspace ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("data-mobile-surface", _$escape(props.mobileSurface, true), false) + _$ssrAttribute("data-sidebar-collapsed", initialLayoutState()?.sidebarCollapsed === undefined ? _$escape(undefined, true) : _$escape(String(initialLayoutState()?.sidebarCollapsed), true), false) + _$ssrAttribute("data-workspace-resizable", props.resizable === false ? "false" : "true", false), _$ssrStyle(appWorkspaceLayoutStyle(initialLayoutState())), _$escape(props.children));
1071
+ return _$ssr(_tmpl$32, `k2b-app-workspace ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("data-mobile-surface", _$escape(props.mobileSurface, true), false) + _$ssrAttribute("data-sidebar-collapsed", initialLayoutState()?.sidebarCollapsed === undefined ? _$escape(undefined, true) : _$escape(String(initialLayoutState()?.sidebarCollapsed), true), false) + _$ssrAttribute("data-workspace-resizable", props.resizable === false ? "false" : "true", false), _$ssrStyle(appWorkspaceLayoutStyle(initialLayoutState())), _$escape(props.children));
1054
1072
  }
1055
1073
  });
1056
1074
  };
@@ -1062,7 +1080,7 @@ AppWorkspace.LayoutStateProvider = props => _$createComponent(LayoutStateContext
1062
1080
  return props.children;
1063
1081
  }
1064
1082
  });
1065
- AppWorkspace.Content = props => _$ssr(_tmpl$32, `k2b-app-workspace__content ${_$escape(props.class ?? "", true)}`, _$escape(props.children));
1083
+ AppWorkspace.Content = props => _$ssr(_tmpl$33, `k2b-app-workspace__content ${_$escape(props.class ?? "", true)}`, _$escape(props.children));
1066
1084
  AppWorkspace.Main = AppWorkspaceMain;
1067
1085
  AppWorkspace.MainPane = AppWorkspaceMainPane;
1068
1086
  AppWorkspace.Detail = AppWorkspaceDetail;