snice 2.5.4 → 3.2.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 (411) hide show
  1. package/README.md +537 -869
  2. package/bin/templates/base/src/components/counter-button.ts +13 -26
  3. package/bin/templates/base/src/controllers/counter-controller.ts +3 -3
  4. package/dist/components/accordion/snice-accordion-item.d.ts +4 -5
  5. package/dist/components/accordion/snice-accordion-item.js +37 -39
  6. package/dist/components/accordion/snice-accordion-item.js.map +1 -1
  7. package/dist/components/accordion/snice-accordion.d.ts +5 -11
  8. package/dist/components/accordion/snice-accordion.js +51 -52
  9. package/dist/components/accordion/snice-accordion.js.map +1 -1
  10. package/dist/components/alert/snice-alert.d.ts +2 -6
  11. package/dist/components/alert/snice-alert.js +41 -56
  12. package/dist/components/alert/snice-alert.js.map +1 -1
  13. package/dist/components/avatar/snice-avatar.d.ts +2 -6
  14. package/dist/components/avatar/snice-avatar.js +64 -71
  15. package/dist/components/avatar/snice-avatar.js.map +1 -1
  16. package/dist/components/badge/snice-badge.d.ts +2 -3
  17. package/dist/components/badge/snice-badge.js +22 -23
  18. package/dist/components/badge/snice-badge.js.map +1 -1
  19. package/dist/components/banner/snice-banner.d.ts +22 -0
  20. package/dist/components/banner/snice-banner.js +180 -0
  21. package/dist/components/banner/snice-banner.js.map +1 -0
  22. package/dist/components/banner/snice-banner.types.d.ts +14 -0
  23. package/dist/components/breadcrumbs/snice-breadcrumbs.d.ts +5 -12
  24. package/dist/components/breadcrumbs/snice-breadcrumbs.js +88 -89
  25. package/dist/components/breadcrumbs/snice-breadcrumbs.js.map +1 -1
  26. package/dist/components/button/snice-button.d.ts +3 -7
  27. package/dist/components/button/snice-button.js +37 -58
  28. package/dist/components/button/snice-button.js.map +1 -1
  29. package/dist/components/card/snice-card.d.ts +5 -8
  30. package/dist/components/card/snice-card.js +71 -56
  31. package/dist/components/card/snice-card.js.map +1 -1
  32. package/dist/components/checkbox/snice-checkbox.d.ts +4 -13
  33. package/dist/components/checkbox/snice-checkbox.js +66 -137
  34. package/dist/components/checkbox/snice-checkbox.js.map +1 -1
  35. package/dist/components/chip/snice-chip.d.ts +5 -11
  36. package/dist/components/chip/snice-chip.js +44 -47
  37. package/dist/components/chip/snice-chip.js.map +1 -1
  38. package/dist/components/color-display/snice-color-display.d.ts +14 -0
  39. package/dist/components/color-display/snice-color-display.js +151 -0
  40. package/dist/components/color-display/snice-color-display.js.map +1 -0
  41. package/dist/components/color-display/snice-color-display.types.d.ts +10 -0
  42. package/dist/components/color-picker/snice-color-picker.d.ts +50 -0
  43. package/dist/components/color-picker/snice-color-picker.js +489 -0
  44. package/dist/components/color-picker/snice-color-picker.js.map +1 -0
  45. package/dist/components/color-picker/snice-color-picker.types.d.ts +19 -0
  46. package/dist/components/date-picker/snice-date-picker.d.ts +11 -11
  47. package/dist/components/date-picker/snice-date-picker.js +134 -133
  48. package/dist/components/date-picker/snice-date-picker.js.map +1 -1
  49. package/dist/components/divider/snice-divider.d.ts +2 -4
  50. package/dist/components/divider/snice-divider.js +14 -22
  51. package/dist/components/divider/snice-divider.js.map +1 -1
  52. package/dist/components/drawer/snice-drawer.d.ts +4 -4
  53. package/dist/components/drawer/snice-drawer.js +25 -19
  54. package/dist/components/drawer/snice-drawer.js.map +1 -1
  55. package/dist/components/empty-state/snice-empty-state.d.ts +13 -0
  56. package/dist/components/empty-state/snice-empty-state.js +121 -0
  57. package/dist/components/empty-state/snice-empty-state.js.map +1 -0
  58. package/dist/components/empty-state/snice-empty-state.types.d.ts +9 -0
  59. package/dist/components/file-upload/snice-file-upload.d.ts +45 -0
  60. package/dist/components/file-upload/snice-file-upload.js +394 -0
  61. package/dist/components/file-upload/snice-file-upload.js.map +1 -0
  62. package/dist/components/file-upload/snice-file-upload.types.d.ts +22 -0
  63. package/dist/components/image/snice-image.d.ts +22 -0
  64. package/dist/components/image/snice-image.js +201 -0
  65. package/dist/components/image/snice-image.js.map +1 -0
  66. package/dist/components/image/snice-image.types.d.ts +17 -0
  67. package/dist/components/input/snice-input.d.ts +8 -6
  68. package/dist/components/input/snice-input.js +122 -105
  69. package/dist/components/input/snice-input.js.map +1 -1
  70. package/dist/components/kpi/snice-kpi.d.ts +16 -0
  71. package/dist/components/kpi/snice-kpi.js +162 -0
  72. package/dist/components/kpi/snice-kpi.js.map +1 -0
  73. package/dist/components/kpi/snice-kpi.types.d.ts +12 -0
  74. package/dist/components/layout/snice-layout-blog.d.ts +4 -4
  75. package/dist/components/layout/snice-layout-blog.js +21 -19
  76. package/dist/components/layout/snice-layout-blog.js.map +1 -1
  77. package/dist/components/layout/snice-layout-card.d.ts +2 -2
  78. package/dist/components/layout/snice-layout-card.js +16 -9
  79. package/dist/components/layout/snice-layout-card.js.map +1 -1
  80. package/dist/components/layout/snice-layout-centered.d.ts +2 -2
  81. package/dist/components/layout/snice-layout-centered.js +14 -7
  82. package/dist/components/layout/snice-layout-centered.js.map +1 -1
  83. package/dist/components/layout/snice-layout-dashboard.d.ts +5 -5
  84. package/dist/components/layout/snice-layout-dashboard.js +38 -30
  85. package/dist/components/layout/snice-layout-dashboard.js.map +1 -1
  86. package/dist/components/layout/snice-layout-fullscreen.d.ts +2 -2
  87. package/dist/components/layout/snice-layout-fullscreen.js +17 -10
  88. package/dist/components/layout/snice-layout-fullscreen.js.map +1 -1
  89. package/dist/components/layout/snice-layout-landing.d.ts +4 -4
  90. package/dist/components/layout/snice-layout-landing.js +21 -19
  91. package/dist/components/layout/snice-layout-landing.js.map +1 -1
  92. package/dist/components/layout/snice-layout-minimal.d.ts +2 -2
  93. package/dist/components/layout/snice-layout-minimal.js +17 -6
  94. package/dist/components/layout/snice-layout-minimal.js.map +1 -1
  95. package/dist/components/layout/snice-layout-sidebar.d.ts +5 -4
  96. package/dist/components/layout/snice-layout-sidebar.js +42 -20
  97. package/dist/components/layout/snice-layout-sidebar.js.map +1 -1
  98. package/dist/components/layout/snice-layout-split.d.ts +2 -2
  99. package/dist/components/layout/snice-layout-split.js +14 -7
  100. package/dist/components/layout/snice-layout-split.js.map +1 -1
  101. package/dist/components/layout/snice-layout.d.ts +4 -4
  102. package/dist/components/layout/snice-layout.js +16 -10
  103. package/dist/components/layout/snice-layout.js.map +1 -1
  104. package/dist/components/link/snice-link.d.ts +13 -0
  105. package/dist/components/link/snice-link.js +137 -0
  106. package/dist/components/link/snice-link.js.map +1 -0
  107. package/dist/components/link/snice-link.types.d.ts +11 -0
  108. package/dist/components/login/snice-login.d.ts +6 -11
  109. package/dist/components/login/snice-login.js +97 -71
  110. package/dist/components/login/snice-login.js.map +1 -1
  111. package/dist/components/modal/snice-modal.d.ts +5 -9
  112. package/dist/components/modal/snice-modal.js +47 -78
  113. package/dist/components/modal/snice-modal.js.map +1 -1
  114. package/dist/components/nav/snice-nav.d.ts +13 -7
  115. package/dist/components/nav/snice-nav.js +191 -100
  116. package/dist/components/nav/snice-nav.js.map +1 -1
  117. package/dist/components/nav/snice-nav.types.d.ts +3 -3
  118. package/dist/components/pagination/snice-pagination.d.ts +6 -7
  119. package/dist/components/pagination/snice-pagination.js +94 -81
  120. package/dist/components/pagination/snice-pagination.js.map +1 -1
  121. package/dist/components/progress/snice-progress.d.ts +2 -7
  122. package/dist/components/progress/snice-progress.js +41 -98
  123. package/dist/components/progress/snice-progress.js.map +1 -1
  124. package/dist/components/radio/snice-radio.d.ts +4 -4
  125. package/dist/components/radio/snice-radio.js +52 -44
  126. package/dist/components/radio/snice-radio.js.map +1 -1
  127. package/dist/components/select/snice-option.d.ts +2 -1
  128. package/dist/components/select/snice-option.js +12 -5
  129. package/dist/components/select/snice-option.js.map +1 -1
  130. package/dist/components/select/snice-select.d.ts +9 -21
  131. package/dist/components/select/snice-select.js +98 -170
  132. package/dist/components/select/snice-select.js.map +1 -1
  133. package/dist/components/skeleton/snice-skeleton.d.ts +2 -6
  134. package/dist/components/skeleton/snice-skeleton.js +18 -49
  135. package/dist/components/skeleton/snice-skeleton.js.map +1 -1
  136. package/dist/components/slider/snice-slider.d.ts +53 -0
  137. package/dist/components/slider/snice-slider.js +479 -0
  138. package/dist/components/slider/snice-slider.js.map +1 -0
  139. package/dist/components/slider/snice-slider.types.d.ts +26 -0
  140. package/dist/components/snice-cell-C0slgOpe.js +4 -0
  141. package/dist/components/snice-cell-C0slgOpe.js.map +1 -0
  142. package/dist/components/sparkline/snice-sparkline.d.ts +21 -0
  143. package/dist/components/sparkline/snice-sparkline.js +228 -0
  144. package/dist/components/sparkline/snice-sparkline.js.map +1 -0
  145. package/dist/components/sparkline/snice-sparkline.types.d.ts +16 -0
  146. package/dist/components/spinner/snice-spinner.d.ts +10 -0
  147. package/dist/components/spinner/snice-spinner.js +109 -0
  148. package/dist/components/spinner/snice-spinner.js.map +1 -0
  149. package/dist/components/spinner/snice-spinner.types.d.ts +8 -0
  150. package/dist/components/stepper/snice-stepper-panel.d.ts +8 -0
  151. package/dist/components/stepper/snice-stepper-panel.js +70 -0
  152. package/dist/components/stepper/snice-stepper-panel.js.map +1 -0
  153. package/dist/components/stepper/snice-stepper-panel.types.d.ts +4 -0
  154. package/dist/components/stepper/snice-stepper.d.ts +15 -0
  155. package/dist/components/stepper/snice-stepper.js +163 -0
  156. package/dist/components/stepper/snice-stepper.js.map +1 -0
  157. package/dist/components/stepper/snice-stepper.types.d.ts +13 -0
  158. package/dist/components/switch/snice-switch.d.ts +2 -2
  159. package/dist/components/switch/snice-switch.js +38 -26
  160. package/dist/components/switch/snice-switch.js.map +1 -1
  161. package/dist/components/table/snice-cell-actions.d.ts +24 -0
  162. package/dist/components/table/snice-cell-actions.js +149 -0
  163. package/dist/components/table/snice-cell-actions.js.map +1 -0
  164. package/dist/components/table/snice-cell-boolean.d.ts +2 -2
  165. package/dist/components/table/snice-cell-boolean.js +13 -7
  166. package/dist/components/table/snice-cell-boolean.js.map +1 -1
  167. package/dist/components/table/snice-cell-color.d.ts +18 -0
  168. package/dist/components/table/snice-cell-color.js +149 -0
  169. package/dist/components/table/snice-cell-color.js.map +1 -0
  170. package/dist/components/table/snice-cell-currency.d.ts +24 -0
  171. package/dist/components/table/snice-cell-currency.js +235 -0
  172. package/dist/components/table/snice-cell-currency.js.map +1 -0
  173. package/dist/components/table/snice-cell-date.d.ts +2 -2
  174. package/dist/components/table/snice-cell-date.js +14 -8
  175. package/dist/components/table/snice-cell-date.js.map +1 -1
  176. package/dist/components/table/snice-cell-duration.d.ts +2 -2
  177. package/dist/components/table/snice-cell-duration.js +12 -6
  178. package/dist/components/table/snice-cell-duration.js.map +1 -1
  179. package/dist/components/table/snice-cell-email.d.ts +15 -0
  180. package/dist/components/table/snice-cell-email.js +125 -0
  181. package/dist/components/table/snice-cell-email.js.map +1 -0
  182. package/dist/components/table/snice-cell-filesize.d.ts +2 -2
  183. package/dist/components/table/snice-cell-filesize.js +12 -6
  184. package/dist/components/table/snice-cell-filesize.js.map +1 -1
  185. package/dist/components/table/snice-cell-image.d.ts +20 -0
  186. package/dist/components/table/snice-cell-image.js +162 -0
  187. package/dist/components/table/snice-cell-image.js.map +1 -0
  188. package/dist/components/table/snice-cell-json.d.ts +20 -0
  189. package/dist/components/table/snice-cell-json.js +186 -0
  190. package/dist/components/table/snice-cell-json.js.map +1 -0
  191. package/dist/components/table/snice-cell-link.d.ts +17 -0
  192. package/dist/components/table/snice-cell-link.js +142 -0
  193. package/dist/components/table/snice-cell-link.js.map +1 -0
  194. package/dist/components/table/snice-cell-location.d.ts +19 -0
  195. package/dist/components/table/snice-cell-location.js +185 -0
  196. package/dist/components/table/snice-cell-location.js.map +1 -0
  197. package/dist/components/table/snice-cell-number.d.ts +2 -2
  198. package/dist/components/table/snice-cell-number.js +12 -6
  199. package/dist/components/table/snice-cell-number.js.map +1 -1
  200. package/dist/components/table/snice-cell-percentage.d.ts +22 -0
  201. package/dist/components/table/snice-cell-percentage.js +208 -0
  202. package/dist/components/table/snice-cell-percentage.js.map +1 -0
  203. package/dist/components/table/snice-cell-phone.d.ts +18 -0
  204. package/dist/components/table/snice-cell-phone.js +153 -0
  205. package/dist/components/table/snice-cell-phone.js.map +1 -0
  206. package/dist/components/table/snice-cell-progress.d.ts +2 -2
  207. package/dist/components/table/snice-cell-progress.js +12 -6
  208. package/dist/components/table/snice-cell-progress.js.map +1 -1
  209. package/dist/components/table/snice-cell-rating.d.ts +2 -2
  210. package/dist/components/table/snice-cell-rating.js +12 -6
  211. package/dist/components/table/snice-cell-rating.js.map +1 -1
  212. package/dist/components/table/snice-cell-sparkline.d.ts +2 -2
  213. package/dist/components/table/snice-cell-sparkline.js +13 -7
  214. package/dist/components/table/snice-cell-sparkline.js.map +1 -1
  215. package/dist/components/table/snice-cell-status.d.ts +17 -0
  216. package/dist/components/table/snice-cell-status.js +144 -0
  217. package/dist/components/table/snice-cell-status.js.map +1 -0
  218. package/dist/components/table/snice-cell-tag.d.ts +16 -0
  219. package/dist/components/table/snice-cell-tag.js +131 -0
  220. package/dist/components/table/snice-cell-tag.js.map +1 -0
  221. package/dist/components/table/snice-cell-text.d.ts +2 -2
  222. package/dist/components/table/snice-cell-text.js +14 -8
  223. package/dist/components/table/snice-cell-text.js.map +1 -1
  224. package/dist/components/table/snice-cell.d.ts +2 -2
  225. package/dist/components/table/snice-cell.js +12 -6
  226. package/dist/components/table/snice-cell.js.map +1 -1
  227. package/dist/components/table/snice-column.d.ts +1 -1
  228. package/dist/components/table/snice-column.js +6 -3
  229. package/dist/components/table/snice-column.js.map +1 -1
  230. package/dist/components/table/snice-header.d.ts +5 -5
  231. package/dist/components/table/snice-header.js +60 -50
  232. package/dist/components/table/snice-header.js.map +1 -1
  233. package/dist/components/table/snice-progress.d.ts +2 -2
  234. package/dist/components/table/snice-progress.js +18 -11
  235. package/dist/components/table/snice-progress.js.map +1 -1
  236. package/dist/components/table/snice-rating.d.ts +2 -2
  237. package/dist/components/table/snice-rating.js +15 -8
  238. package/dist/components/table/snice-rating.js.map +1 -1
  239. package/dist/components/table/snice-row.d.ts +17 -6
  240. package/dist/components/table/snice-row.js +95 -44
  241. package/dist/components/table/snice-row.js.map +1 -1
  242. package/dist/components/table/snice-table.d.ts +18 -10
  243. package/dist/components/table/snice-table.js +355 -173
  244. package/dist/components/table/snice-table.js.map +1 -1
  245. package/dist/components/table/snice-table.types.d.ts +101 -2
  246. package/dist/components/tabs/snice-tab-panel.d.ts +2 -2
  247. package/dist/components/tabs/snice-tab-panel.js +12 -6
  248. package/dist/components/tabs/snice-tab-panel.js.map +1 -1
  249. package/dist/components/tabs/snice-tab.d.ts +6 -5
  250. package/dist/components/tabs/snice-tab.js +36 -19
  251. package/dist/components/tabs/snice-tab.js.map +1 -1
  252. package/dist/components/tabs/snice-tabs.d.ts +5 -5
  253. package/dist/components/tabs/snice-tabs.js +38 -28
  254. package/dist/components/tabs/snice-tabs.js.map +1 -1
  255. package/dist/components/textarea/snice-textarea.d.ts +52 -0
  256. package/dist/components/textarea/snice-textarea.js +407 -0
  257. package/dist/components/textarea/snice-textarea.js.map +1 -0
  258. package/dist/components/textarea/snice-textarea.types.d.ts +30 -0
  259. package/dist/components/timeline/snice-timeline.d.ts +11 -0
  260. package/dist/components/timeline/snice-timeline.js +112 -0
  261. package/dist/components/timeline/snice-timeline.js.map +1 -0
  262. package/dist/components/timeline/snice-timeline.types.d.ts +16 -0
  263. package/dist/components/toast/snice-toast-container.d.ts +7 -7
  264. package/dist/components/toast/snice-toast-container.js +19 -12
  265. package/dist/components/toast/snice-toast-container.js.map +1 -1
  266. package/dist/components/toast/snice-toast.d.ts +3 -15
  267. package/dist/components/toast/snice-toast.js +49 -108
  268. package/dist/components/toast/snice-toast.js.map +1 -1
  269. package/dist/components/tooltip/snice-tooltip.d.ts +2 -2
  270. package/dist/components/tooltip/snice-tooltip.js +15 -8
  271. package/dist/components/tooltip/snice-tooltip.js.map +1 -1
  272. package/dist/context.d.ts +44 -0
  273. package/dist/element-ready.d.ts +40 -0
  274. package/dist/{types/element.d.ts → element.d.ts} +2 -8
  275. package/dist/{types/events.d.ts → events.d.ts} +0 -4
  276. package/dist/index.cjs +2556 -605
  277. package/dist/index.cjs.map +1 -1
  278. package/dist/index.d.ts +21 -0
  279. package/dist/index.esm.js +2535 -604
  280. package/dist/index.esm.js.map +1 -1
  281. package/dist/index.iife.js +2556 -605
  282. package/dist/index.iife.js.map +1 -1
  283. package/dist/method-decorators.d.ts +121 -0
  284. package/dist/on.d.ts +59 -0
  285. package/dist/parts.d.ts +156 -0
  286. package/dist/render-debug.d.ts +27 -0
  287. package/dist/render-tracker.d.ts +14 -0
  288. package/dist/render.d.ts +96 -0
  289. package/dist/symbols.cjs +163 -0
  290. package/dist/symbols.cjs.map +1 -1
  291. package/dist/{types/symbols.d.ts → symbols.d.ts} +22 -0
  292. package/dist/symbols.esm.js +27 -3
  293. package/dist/symbols.esm.js.map +1 -1
  294. package/dist/template.d.ts +99 -0
  295. package/dist/transitions.cjs +219 -0
  296. package/dist/transitions.esm.js +2 -2
  297. package/dist/types/context.d.ts +48 -0
  298. package/dist/types/element-options.d.ts +26 -0
  299. package/dist/types/index.d.ts +25 -9
  300. package/dist/types/nav-context.d.ts +19 -0
  301. package/dist/types/{types/on-options.d.ts → on-options.d.ts} +2 -0
  302. package/dist/types/{types/placard.d.ts → placard.d.ts} +0 -1
  303. package/docs/ai/README.md +26 -0
  304. package/docs/ai/api.md +175 -0
  305. package/docs/ai/architecture.md +160 -0
  306. package/docs/ai/components/accordion.md +174 -0
  307. package/docs/ai/components/alert.md +77 -0
  308. package/docs/ai/components/avatar.md +61 -0
  309. package/docs/ai/components/badge.md +69 -0
  310. package/docs/ai/components/banner.md +84 -0
  311. package/docs/ai/components/breadcrumbs.md +74 -0
  312. package/docs/ai/components/button.md +75 -0
  313. package/docs/ai/components/card.md +61 -0
  314. package/docs/ai/components/checkbox.md +74 -0
  315. package/docs/ai/components/chip.md +73 -0
  316. package/docs/ai/components/color-display.md +48 -0
  317. package/docs/ai/components/color-picker.md +75 -0
  318. package/docs/ai/components/date-picker.md +75 -0
  319. package/docs/ai/components/divider.md +66 -0
  320. package/docs/ai/components/drawer.md +80 -0
  321. package/docs/ai/components/empty-state.md +72 -0
  322. package/docs/ai/components/file-upload.md +93 -0
  323. package/docs/ai/components/image.md +60 -0
  324. package/docs/ai/components/input.md +111 -0
  325. package/docs/ai/components/kpi.md +158 -0
  326. package/docs/ai/components/link.md +77 -0
  327. package/docs/ai/components/login.md +109 -0
  328. package/docs/ai/components/modal.md +67 -0
  329. package/docs/ai/components/nav.md +76 -0
  330. package/docs/ai/components/pagination.md +55 -0
  331. package/docs/ai/components/progress.md +72 -0
  332. package/docs/ai/components/radio.md +79 -0
  333. package/docs/ai/components/select.md +92 -0
  334. package/docs/ai/components/skeleton.md +57 -0
  335. package/docs/ai/components/slider.md +87 -0
  336. package/docs/ai/components/sparkline.md +168 -0
  337. package/docs/ai/components/spinner.md +47 -0
  338. package/docs/ai/components/stepper.md +216 -0
  339. package/docs/ai/components/switch.md +53 -0
  340. package/docs/ai/components/table.md +227 -0
  341. package/docs/ai/components/tabs.md +83 -0
  342. package/docs/ai/components/textarea.md +87 -0
  343. package/docs/ai/components/timeline.md +77 -0
  344. package/docs/ai/components/toast.md +140 -0
  345. package/docs/ai/components/tooltip.md +146 -0
  346. package/docs/ai/patterns.md +244 -0
  347. package/docs/components/accordion.md +558 -0
  348. package/docs/components/banner.md +106 -0
  349. package/docs/components/color-display.md +96 -0
  350. package/docs/components/color-picker.md +81 -0
  351. package/docs/components/drawer.md +602 -0
  352. package/docs/components/empty-state.md +79 -0
  353. package/docs/components/file-upload.md +263 -0
  354. package/docs/components/image.md +110 -0
  355. package/docs/components/kpi.md +251 -0
  356. package/docs/components/link.md +229 -0
  357. package/docs/components/modal.md +558 -0
  358. package/docs/components/nav.md +239 -0
  359. package/docs/components/pagination.md +289 -0
  360. package/docs/components/select.md +599 -0
  361. package/docs/components/slider.md +297 -0
  362. package/docs/components/sparkline.md +293 -0
  363. package/docs/components/spinner.md +63 -0
  364. package/docs/components/stepper.md +410 -0
  365. package/docs/components/switch.md +354 -0
  366. package/docs/components/tabs.md +546 -0
  367. package/docs/components/textarea.md +235 -0
  368. package/docs/components/timeline.md +192 -0
  369. package/docs/components/toast.md +506 -0
  370. package/docs/components/tooltip.md +523 -0
  371. package/docs/controllers.md +744 -0
  372. package/docs/elements.md +855 -0
  373. package/docs/events.md +807 -0
  374. package/docs/migration-v2-to-v3.md +569 -0
  375. package/docs/observe.md +588 -0
  376. package/docs/placards.md +401 -0
  377. package/docs/request-response.md +852 -0
  378. package/docs/routing.md +1186 -0
  379. package/package.json +11 -11
  380. package/dist/components/snice-cell-C9N6yGxQ.js +0 -4
  381. package/dist/components/snice-cell-C9N6yGxQ.js.map +0 -1
  382. package/dist/types/types/index.d.ts +0 -23
  383. /package/dist/{types/controller.d.ts → controller.d.ts} +0 -0
  384. /package/dist/{types/global.d.ts → global.d.ts} +0 -0
  385. /package/dist/{types/observe.d.ts → observe.d.ts} +0 -0
  386. /package/dist/{types/request-response.d.ts → request-response.d.ts} +0 -0
  387. /package/dist/{types/router.d.ts → router.d.ts} +0 -0
  388. /package/dist/{types/testing.d.ts → testing.d.ts} +0 -0
  389. /package/dist/{types/transitions.d.ts → transitions.d.ts} +0 -0
  390. /package/dist/types/{types/adopted-options.d.ts → adopted-options.d.ts} +0 -0
  391. /package/dist/types/{types/app-context.d.ts → app-context.d.ts} +0 -0
  392. /package/dist/types/{types/dispatch-options.d.ts → dispatch-options.d.ts} +0 -0
  393. /package/dist/types/{types/guard.d.ts → guard.d.ts} +0 -0
  394. /package/dist/types/{types/i-controller.d.ts → i-controller.d.ts} +0 -0
  395. /package/dist/types/{types/moved-options.d.ts → moved-options.d.ts} +0 -0
  396. /package/dist/types/{types/observe-options.d.ts → observe-options.d.ts} +0 -0
  397. /package/dist/types/{types/page-options.d.ts → page-options.d.ts} +0 -0
  398. /package/dist/types/{types/part-options.d.ts → part-options.d.ts} +0 -0
  399. /package/dist/types/{types/property-converter.d.ts → property-converter.d.ts} +0 -0
  400. /package/dist/types/{types/property-options.d.ts → property-options.d.ts} +0 -0
  401. /package/dist/types/{types/query-options.d.ts → query-options.d.ts} +0 -0
  402. /package/dist/types/{types/request-options.d.ts → request-options.d.ts} +0 -0
  403. /package/dist/types/{types/respond-options.d.ts → respond-options.d.ts} +0 -0
  404. /package/dist/types/{types/route-params.d.ts → route-params.d.ts} +0 -0
  405. /package/dist/types/{types/router-instance.d.ts → router-instance.d.ts} +0 -0
  406. /package/dist/types/{types/router-options.d.ts → router-options.d.ts} +0 -0
  407. /package/dist/types/{types/simple-array.d.ts → simple-array.d.ts} +0 -0
  408. /package/dist/types/{types/snice-element.d.ts → snice-element.d.ts} +0 -0
  409. /package/dist/types/{types/snice-global.d.ts → snice-global.d.ts} +0 -0
  410. /package/dist/types/{types/transition.d.ts → transition.d.ts} +0 -0
  411. /package/dist/{types/utils.d.ts → utils.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
- import { __esDecorate, __runInitializers } from 'tslib';
2
- import { element, property, part } from 'snice';
1
+ import { __runInitializers, __esDecorate } from 'tslib';
2
+ import { element, property, context, watch } from 'snice';
3
3
 
4
- var css = ":host {\n display: block;\n font-family: var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);\n contain: layout style paint;\n}\n\n.nav {\n display: flex;\n gap: var(--snice-spacing-md, 1rem);\n}\n\n.nav--horizontal {\n flex-direction: row;\n align-items: center;\n}\n\n.nav--vertical {\n flex-direction: column;\n align-items: stretch;\n}\n\n.nav__item {\n position: relative;\n}\n\n.nav__link {\n display: flex;\n align-items: center;\n gap: var(--snice-spacing-sm, 0.75rem);\n padding: var(--snice-spacing-sm, 0.75rem) var(--snice-spacing-md, 1rem);\n color: var(--snice-color-text-secondary, rgb(107 114 128));\n text-decoration: none;\n border-radius: var(--snice-border-radius-md, 0.375rem);\n font-size: var(--snice-font-size-md, 1rem);\n font-weight: var(--snice-font-weight-medium, 500);\n transition:\n background-color var(--snice-transition-fast, 150ms) ease,\n color var(--snice-transition-fast, 150ms) ease;\n}\n\n.nav__link:hover {\n background-color: var(--snice-color-background-secondary, rgb(243 244 246));\n color: var(--snice-color-text, rgb(23 23 23));\n}\n\n.nav__link:focus-visible {\n outline: var(--snice-focus-ring-width, 2px) solid var(--snice-focus-ring-color, rgb(59 130 246 / 0.5));\n outline-offset: var(--snice-focus-ring-offset, 2px);\n}\n\n.nav__link--active {\n background-color: var(--snice-color-primary, rgb(37 99 235));\n color: var(--snice-color-text-inverse, rgb(250 250 250));\n}\n\n.nav__link--active:hover {\n background-color: var(--snice-color-primary-dark, rgb(29 78 216));\n color: var(--snice-color-text-inverse, rgb(250 250 250));\n}\n\n.nav__icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: var(--snice-font-size-lg, 1.125rem);\n}\n\n.nav__label {\n white-space: nowrap;\n}\n\n/* Hierarchical variant */\n.nav--hierarchical {\n flex-direction: column;\n gap: var(--snice-spacing-xs, 0.5rem);\n}\n\n.nav--hierarchical .nav__group {\n display: flex;\n flex-direction: column;\n gap: var(--snice-spacing-xs, 0.5rem);\n}\n\n.nav--hierarchical .nav__submenu {\n list-style: none;\n margin: 0;\n padding: 0 0 0 var(--snice-spacing-xl, 2rem);\n display: flex;\n flex-direction: column;\n gap: var(--snice-spacing-2xs, 0.25rem);\n}\n\n.nav--hierarchical .nav__submenu .nav__item {\n margin: 0;\n}\n\n.nav--hierarchical .nav__submenu .nav__link {\n font-size: var(--snice-font-size-sm, 0.875rem);\n padding: var(--snice-spacing-xs, 0.5rem) var(--snice-spacing-md, 1rem);\n}\n\n/* Grouped variant */\n.nav--grouped {\n flex-direction: column;\n gap: var(--snice-spacing-lg, 1.5rem);\n}\n\n.nav--grouped .nav__group {\n display: flex;\n flex-direction: column;\n gap: var(--snice-spacing-xs, 0.5rem);\n}\n\n.nav--grouped .nav__group-label {\n font-size: var(--snice-font-size-xs, 0.75rem);\n font-weight: var(--snice-font-weight-semibold, 600);\n color: var(--snice-color-text-tertiary, rgb(115 115 115));\n text-transform: uppercase;\n letter-spacing: 0.05em;\n padding: 0 var(--snice-spacing-md, 1rem);\n margin-bottom: var(--snice-spacing-2xs, 0.25rem);\n}\n\n/* Vertical orientation specific */\n.nav--vertical .nav__item,\n.nav--vertical .nav__link {\n width: 100%;\n}\n\n/* Responsive adjustments */\n@media (max-width: 768px) {\n .nav--horizontal {\n flex-wrap: wrap;\n }\n\n .nav__label {\n font-size: var(--snice-font-size-sm, 0.875rem);\n }\n}\n";
4
+ var cssContent = ":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style paint}.nav{display:flex;gap:var(--snice-spacing-md,1rem)}.nav--horizontal{flex-direction:row;align-items:center}.nav--vertical{flex-direction:column;align-items:stretch}.nav__item{position:relative}.nav__link{display:flex;align-items:center;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem);color:var(--snice-color-text-secondary,rgb(107 114 128));text-decoration:none;border-radius:var(--snice-border-radius-md,.375rem);font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-medium,500);transition:background-color var(--snice-transition-fast, 150ms) ease,color var(--snice-transition-fast, 150ms) ease}.nav__link:hover{background-color:var(--snice-color-background-secondary,rgb(243 244 246));color:var(--snice-color-text,rgb(23 23 23))}.nav__link:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.nav__link--active{background-color:var(--snice-color-background-tertiary,rgb(243 244 246));color:var(--snice-color-primary,rgb(37 99 235))}.nav__link--active:hover{background-color:var(--snice-color-background-secondary,rgb(249 250 251));color:var(--snice-color-primary-hover,rgb(29 78 216))}.nav__icon{display:inline-flex;align-items:center;justify-content:center;font-size:var(--snice-font-size-lg, 1.125rem)}.nav__label{white-space:nowrap}.nav--hierarchical{flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.nav--hierarchical .nav__group{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.nav--hierarchical .nav__submenu{list-style:none;margin:0;padding:0 0 0 var(--snice-spacing-xl,2rem);display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem)}.nav--hierarchical .nav__submenu .nav__item{margin:0}.nav--hierarchical .nav__submenu .nav__link{font-size:var(--snice-font-size-sm, .875rem);padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem)}.nav--grouped{flex-direction:column;gap:var(--snice-spacing-lg,1.5rem)}.nav--grouped .nav__group{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.nav--grouped .nav__group-label{font-size:var(--snice-font-size-xs, .75rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text-tertiary,rgb(115 115 115));text-transform:uppercase;letter-spacing:.05em;padding:0 var(--snice-spacing-md,1rem);margin-bottom:var(--snice-spacing-2xs,.25rem)}.nav--vertical .nav__item,.nav--vertical .nav__link{width:100%}@media (max-width:768px){.nav--horizontal{flex-wrap:wrap}.nav__label{font-size:var(--snice-font-size-sm, .875rem)}}";
5
5
 
6
6
  let SniceNav = (() => {
7
7
  let _classDecorators = [element('snice-nav')];
@@ -10,73 +10,131 @@ let SniceNav = (() => {
10
10
  let _classThis;
11
11
  let _classSuper = HTMLElement;
12
12
  let _instanceExtraInitializers = [];
13
- let _currentRoute_decorators;
14
- let _currentRoute_initializers = [];
15
- let _currentRoute_extraInitializers = [];
16
13
  let _variant_decorators;
17
14
  let _variant_initializers = [];
18
15
  let _variant_extraInitializers = [];
19
16
  let _orientation_decorators;
20
17
  let _orientation_initializers = [];
21
18
  let _orientation_extraInitializers = [];
22
- let _renderNavContent_decorators;
19
+ let _isTopLevel_decorators;
20
+ let _isTopLevel_initializers = [];
21
+ let _isTopLevel_extraInitializers = [];
22
+ let _handleContext_decorators;
23
+ let _handleChange_decorators;
23
24
  (class extends _classSuper {
24
25
  static { _classThis = this; }
26
+ constructor() {
27
+ super(...arguments);
28
+ this.variant = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _variant_initializers, 'flat'));
29
+ this.orientation = (__runInitializers(this, _variant_extraInitializers), __runInitializers(this, _orientation_initializers, 'horizontal'));
30
+ this.isTopLevel = (__runInitializers(this, _orientation_extraInitializers), __runInitializers(this, _isTopLevel_initializers, false));
31
+ this.placards = (__runInitializers(this, _isTopLevel_extraInitializers), []);
32
+ this.currentRoute = '';
33
+ this.routeParams = {};
34
+ this.appContext = null;
35
+ }
25
36
  static {
26
37
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
27
- _currentRoute_decorators = [property()];
28
38
  _variant_decorators = [property()];
29
39
  _orientation_decorators = [property()];
30
- _renderNavContent_decorators = [part('nav-content')];
31
- __esDecorate(this, null, _renderNavContent_decorators, { kind: "method", name: "renderNavContent", static: false, private: false, access: { has: obj => "renderNavContent" in obj, get: obj => obj.renderNavContent }, metadata: _metadata }, null, _instanceExtraInitializers);
32
- __esDecorate(null, null, _currentRoute_decorators, { kind: "field", name: "currentRoute", static: false, private: false, access: { has: obj => "currentRoute" in obj, get: obj => obj.currentRoute, set: (obj, value) => { obj.currentRoute = value; } }, metadata: _metadata }, _currentRoute_initializers, _currentRoute_extraInitializers);
40
+ _isTopLevel_decorators = [property({ type: Boolean })];
41
+ _handleContext_decorators = [context()];
42
+ _handleChange_decorators = [watch('variant'), watch('orientation')];
43
+ __esDecorate(this, null, _handleContext_decorators, { kind: "method", name: "handleContext", static: false, private: false, access: { has: obj => "handleContext" in obj, get: obj => obj.handleContext }, metadata: _metadata }, null, _instanceExtraInitializers);
44
+ __esDecorate(this, null, _handleChange_decorators, { kind: "method", name: "handleChange", static: false, private: false, access: { has: obj => "handleChange" in obj, get: obj => obj.handleChange }, metadata: _metadata }, null, _instanceExtraInitializers);
33
45
  __esDecorate(null, null, _variant_decorators, { kind: "field", name: "variant", static: false, private: false, access: { has: obj => "variant" in obj, get: obj => obj.variant, set: (obj, value) => { obj.variant = value; } }, metadata: _metadata }, _variant_initializers, _variant_extraInitializers);
34
46
  __esDecorate(null, null, _orientation_decorators, { kind: "field", name: "orientation", static: false, private: false, access: { has: obj => "orientation" in obj, get: obj => obj.orientation, set: (obj, value) => { obj.orientation = value; } }, metadata: _metadata }, _orientation_initializers, _orientation_extraInitializers);
47
+ __esDecorate(null, null, _isTopLevel_decorators, { kind: "field", name: "isTopLevel", static: false, private: false, access: { has: obj => "isTopLevel" in obj, get: obj => obj.isTopLevel, set: (obj, value) => { obj.isTopLevel = value; } }, metadata: _metadata }, _isTopLevel_initializers, _isTopLevel_extraInitializers);
35
48
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
36
49
  _classThis = _classDescriptor.value;
37
50
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
38
51
  __runInitializers(_classThis, _classExtraInitializers);
39
52
  }
40
- html() {
41
- return /*html*/ `<div part="nav-content"></div><slot></slot>`;
53
+ connectedCallback() {
54
+ this.attachShadow({ mode: 'open' });
55
+ this.applyStyles();
56
+ this.render();
42
57
  }
43
- css() {
44
- return css;
58
+ handleContext(ctx) {
59
+ // Only update from context if this is a top-level nav
60
+ if (this.isTopLevel) {
61
+ this.update(ctx.navigation.placards, ctx.application, ctx.navigation.route, ctx.navigation.params);
62
+ }
63
+ }
64
+ handleChange() {
65
+ this.render();
66
+ }
67
+ applyStyles() {
68
+ if (!this.shadowRoot)
69
+ return;
70
+ const style = document.createElement('style');
71
+ style.textContent = cssContent;
72
+ this.shadowRoot.appendChild(style);
73
+ }
74
+ render() {
75
+ if (!this.shadowRoot)
76
+ return;
77
+ this.shadowRoot.innerHTML = '';
78
+ this.applyStyles();
79
+ const wrapper = document.createElement('div');
80
+ wrapper.className = 'nav-content';
81
+ const navItems = this.placards
82
+ .filter(p => !p.parent && p.show !== false && this.isVisible(p))
83
+ .sort((a, b) => (a.order || 0) - (b.order || 0));
84
+ if (navItems.length > 0) {
85
+ if (this.variant === 'grouped') {
86
+ wrapper.appendChild(this.renderGrouped(navItems));
87
+ }
88
+ else if (this.variant === 'hierarchical') {
89
+ wrapper.appendChild(this.renderHierarchical(navItems));
90
+ }
91
+ else {
92
+ wrapper.appendChild(this.renderFlat(navItems));
93
+ }
94
+ }
95
+ this.shadowRoot.appendChild(wrapper);
96
+ const slot = document.createElement('slot');
97
+ this.shadowRoot.appendChild(slot);
45
98
  }
46
99
  renderFlat(navItems) {
47
- return /*html*/ `
48
- <nav class="nav nav--${this.variant} nav--${this.orientation}" role="navigation">
49
- ${navItems.map(placard => this.renderNavItem(placard)).join('')}
50
- </nav>
51
- `;
100
+ const nav = document.createElement('nav');
101
+ nav.className = `nav nav--${this.variant} nav--${this.orientation}`;
102
+ nav.setAttribute('role', 'navigation');
103
+ navItems.forEach(placard => {
104
+ nav.appendChild(this.renderNavItem(placard));
105
+ });
106
+ return nav;
52
107
  }
53
108
  renderHierarchical(navItems) {
54
- return /*html*/ `
55
- <nav class="nav nav--${this.variant} nav--${this.orientation}" role="navigation">
56
- ${navItems.map(placard => {
109
+ const nav = document.createElement('nav');
110
+ nav.className = `nav nav--${this.variant} nav--${this.orientation}`;
111
+ nav.setAttribute('role', 'navigation');
112
+ navItems.forEach(placard => {
57
113
  const children = this.placards
58
- .filter(p => p.parent === placard.name && p.show !== false)
114
+ .filter(p => p.parent === placard.name && p.show !== false && this.isVisible(p))
59
115
  .sort((a, b) => (a.order || 0) - (b.order || 0));
60
- const childrenHtml = children.length > 0 ? /*html*/ `
61
- <ul class="nav__submenu">
62
- ${children.map(child => /*html*/ `
63
- <li class="nav__item ${this.isActive(child) ? 'nav__item--active' : ''}">
64
- ${this.renderNavLink(child)}
65
- </li>
66
- `).join('')}
67
- </ul>
68
- ` : '';
69
- return /*html*/ `
70
- <div class="nav__group ${this.isActive(placard) ? 'nav__group--active' : ''}">
71
- ${this.renderNavLink(placard)}
72
- ${childrenHtml}
73
- </div>
74
- `;
75
- }).join('')}
76
- </nav>
77
- `;
116
+ const groupDiv = document.createElement('div');
117
+ groupDiv.className = this.isActive(placard) ? 'nav__group nav__group--active' : 'nav__group';
118
+ groupDiv.appendChild(this.renderNavLink(placard));
119
+ if (children.length > 0) {
120
+ const submenu = document.createElement('ul');
121
+ submenu.className = 'nav__submenu';
122
+ children.forEach(child => {
123
+ const li = document.createElement('li');
124
+ li.className = this.isActive(child) ? 'nav__item nav__item--active' : 'nav__item';
125
+ li.appendChild(this.renderNavLink(child));
126
+ submenu.appendChild(li);
127
+ });
128
+ groupDiv.appendChild(submenu);
129
+ }
130
+ nav.appendChild(groupDiv);
131
+ });
132
+ return nav;
78
133
  }
79
134
  renderGrouped(navItems) {
135
+ const nav = document.createElement('nav');
136
+ nav.className = `nav nav--${this.variant} nav--${this.orientation}`;
137
+ nav.setAttribute('role', 'navigation');
80
138
  const groups = new Map();
81
139
  navItems.forEach(placard => {
82
140
  const groupName = placard.group || 'default';
@@ -85,77 +143,110 @@ let SniceNav = (() => {
85
143
  }
86
144
  groups.get(groupName).push(placard);
87
145
  });
88
- return /*html*/ `
89
- <nav class="nav nav--${this.variant} nav--${this.orientation}" role="navigation">
90
- ${Array.from(groups.entries()).map(([groupName, items]) => {
146
+ groups.forEach((items, groupName) => {
91
147
  const sortedItems = items.sort((a, b) => (a.order || 0) - (b.order || 0));
92
- return /*html*/ `
93
- <div class="nav__group" data-group="${groupName}">
94
- ${groupName !== 'default' ? /*html*/ `
95
- <div class="nav__group-label">${groupName}</div>
96
- ` : ''}
97
- ${sortedItems.map(placard => this.renderNavItem(placard)).join('')}
98
- </div>
99
- `;
100
- }).join('')}
101
- </nav>
102
- `;
148
+ const groupDiv = document.createElement('div');
149
+ groupDiv.className = 'nav__group';
150
+ groupDiv.setAttribute('data-group', groupName);
151
+ if (groupName !== 'default') {
152
+ const label = document.createElement('div');
153
+ label.className = 'nav__group-label';
154
+ label.textContent = groupName;
155
+ groupDiv.appendChild(label);
156
+ }
157
+ sortedItems.forEach(placard => {
158
+ groupDiv.appendChild(this.renderNavItem(placard));
159
+ });
160
+ nav.appendChild(groupDiv);
161
+ });
162
+ return nav;
103
163
  }
104
164
  renderNavItem(placard) {
105
- const isActive = this.isActive(placard);
106
- return /*html*/ `
107
- <div class="nav__item ${isActive ? 'nav__item--active' : ''}">
108
- ${this.renderNavLink(placard)}
109
- </div>
110
- `;
165
+ const div = document.createElement('div');
166
+ div.className = this.isActive(placard) ? 'nav__item nav__item--active' : 'nav__item';
167
+ div.appendChild(this.renderNavLink(placard));
168
+ return div;
111
169
  }
112
170
  renderNavLink(placard) {
113
- const isActive = this.isActive(placard);
114
- const icon = placard.icon ? /*html*/ `<span class="nav__icon">${placard.icon}</span>` : '';
115
- const tooltip = placard.tooltip ? `title="${placard.tooltip}"` : '';
171
+ const a = document.createElement('a');
116
172
  const href = placard.name === 'home' ? '#/' : `#/${placard.name}`;
117
- return /*html*/ `
118
- <a href="${href}"
119
- class="nav__link ${isActive ? 'nav__link--active' : ''}"
120
- aria-current="${isActive ? 'page' : ''}"
121
- ${tooltip}>
122
- ${icon}
123
- <span class="nav__label">${placard.title}</span>
124
- </a>
125
- `;
173
+ a.href = href;
174
+ a.className = this.isActive(placard) ? 'nav__link nav__link--active' : 'nav__link';
175
+ // Accessibility
176
+ if (this.isActive(placard)) {
177
+ a.setAttribute('aria-current', 'page');
178
+ }
179
+ // Use description for aria-label if available, otherwise fall back to title
180
+ if (placard.description) {
181
+ a.setAttribute('aria-label', placard.description);
182
+ }
183
+ // Tooltip (prefers tooltip, falls back to description)
184
+ if (placard.tooltip) {
185
+ a.title = placard.tooltip;
186
+ }
187
+ else if (placard.description) {
188
+ a.title = placard.description;
189
+ }
190
+ // Keyboard shortcuts - add data attribute for external hotkey handlers
191
+ if (placard.hotkeys && placard.hotkeys.length > 0) {
192
+ a.setAttribute('data-hotkeys', placard.hotkeys.join(','));
193
+ }
194
+ // Help URL - add data attribute for external help systems
195
+ if (placard.helpUrl) {
196
+ a.setAttribute('data-help-url', placard.helpUrl);
197
+ }
198
+ // Search terms - add data attribute for search functionality
199
+ if (placard.searchTerms && placard.searchTerms.length > 0) {
200
+ a.setAttribute('data-search-terms', placard.searchTerms.join(','));
201
+ }
202
+ // Custom attributes - apply any custom data attributes
203
+ if (placard.attributes) {
204
+ Object.entries(placard.attributes).forEach(([key, value]) => {
205
+ a.setAttribute(`data-${key}`, String(value));
206
+ });
207
+ }
208
+ if (placard.icon) {
209
+ const iconSpan = document.createElement('span');
210
+ iconSpan.className = 'nav__icon';
211
+ iconSpan.textContent = placard.icon;
212
+ a.appendChild(iconSpan);
213
+ }
214
+ const labelSpan = document.createElement('span');
215
+ labelSpan.className = 'nav__label';
216
+ labelSpan.textContent = placard.title;
217
+ a.appendChild(labelSpan);
218
+ return a;
126
219
  }
127
220
  isActive(placard) {
128
- return this.currentRoute === placard.name ||
129
- this.currentRoute.startsWith(`/${placard.name}`) ||
130
- (placard.name === 'home' && this.currentRoute === '/');
221
+ // Normalize route - remove leading slash if present
222
+ const route = this.currentRoute.startsWith('/')
223
+ ? this.currentRoute.slice(1)
224
+ : this.currentRoute;
225
+ // Check exact match or starts with (for child routes)
226
+ return route === placard.name ||
227
+ route.startsWith(`${placard.name}/`) ||
228
+ (placard.name === 'home' && (this.currentRoute === '/' || this.currentRoute === ''));
131
229
  }
132
- update(placards, currentRoute) {
133
- this.placards = placards;
134
- this.currentRoute = currentRoute;
135
- this.renderNavContent();
230
+ isVisible(placard) {
231
+ if (!placard.visibleOn)
232
+ return true;
233
+ if (!this.appContext)
234
+ return true;
235
+ const guards = Array.isArray(placard.visibleOn) ? placard.visibleOn : [placard.visibleOn];
236
+ return guards.every(guard => guard(this.appContext, this.routeParams));
136
237
  }
137
- renderNavContent() {
138
- const navItems = this.placards
139
- .filter(p => !p.parent && p.show !== false)
140
- .sort((a, b) => (a.order || 0) - (b.order || 0));
141
- if (navItems.length === 0) {
142
- return '';
238
+ update(placards, appContext, currentRoute, routeParams) {
239
+ this.placards = [...placards];
240
+ if (appContext) {
241
+ this.appContext = appContext;
143
242
  }
144
- if (this.variant === 'grouped') {
145
- return this.renderGrouped(navItems);
243
+ if (currentRoute !== undefined) {
244
+ this.currentRoute = currentRoute;
146
245
  }
147
- if (this.variant === 'hierarchical') {
148
- return this.renderHierarchical(navItems);
246
+ if (routeParams) {
247
+ this.routeParams = routeParams;
149
248
  }
150
- return this.renderFlat(navItems);
151
- }
152
- constructor() {
153
- super(...arguments);
154
- this.placards = (__runInitializers(this, _instanceExtraInitializers), []);
155
- this.currentRoute = __runInitializers(this, _currentRoute_initializers, '');
156
- this.variant = (__runInitializers(this, _currentRoute_extraInitializers), __runInitializers(this, _variant_initializers, 'flat'));
157
- this.orientation = (__runInitializers(this, _variant_extraInitializers), __runInitializers(this, _orientation_initializers, 'horizontal'));
158
- __runInitializers(this, _orientation_extraInitializers);
249
+ this.render();
159
250
  }
160
251
  });
161
252
  return _classThis;
@@ -1 +1 @@
1
- {"version":3,"file":"snice-nav.js","sources":["../../../components/nav/snice-nav.css?inline","../../../../components/nav/snice-nav.ts"],"sourcesContent":["export default \":host {\\n display: block;\\n font-family: var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);\\n contain: layout style paint;\\n}\\n\\n.nav {\\n display: flex;\\n gap: var(--snice-spacing-md, 1rem);\\n}\\n\\n.nav--horizontal {\\n flex-direction: row;\\n align-items: center;\\n}\\n\\n.nav--vertical {\\n flex-direction: column;\\n align-items: stretch;\\n}\\n\\n.nav__item {\\n position: relative;\\n}\\n\\n.nav__link {\\n display: flex;\\n align-items: center;\\n gap: var(--snice-spacing-sm, 0.75rem);\\n padding: var(--snice-spacing-sm, 0.75rem) var(--snice-spacing-md, 1rem);\\n color: var(--snice-color-text-secondary, rgb(107 114 128));\\n text-decoration: none;\\n border-radius: var(--snice-border-radius-md, 0.375rem);\\n font-size: var(--snice-font-size-md, 1rem);\\n font-weight: var(--snice-font-weight-medium, 500);\\n transition:\\n background-color var(--snice-transition-fast, 150ms) ease,\\n color var(--snice-transition-fast, 150ms) ease;\\n}\\n\\n.nav__link:hover {\\n background-color: var(--snice-color-background-secondary, rgb(243 244 246));\\n color: var(--snice-color-text, rgb(23 23 23));\\n}\\n\\n.nav__link:focus-visible {\\n outline: var(--snice-focus-ring-width, 2px) solid var(--snice-focus-ring-color, rgb(59 130 246 / 0.5));\\n outline-offset: var(--snice-focus-ring-offset, 2px);\\n}\\n\\n.nav__link--active {\\n background-color: var(--snice-color-primary, rgb(37 99 235));\\n color: var(--snice-color-text-inverse, rgb(250 250 250));\\n}\\n\\n.nav__link--active:hover {\\n background-color: var(--snice-color-primary-dark, rgb(29 78 216));\\n color: var(--snice-color-text-inverse, rgb(250 250 250));\\n}\\n\\n.nav__icon {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n font-size: var(--snice-font-size-lg, 1.125rem);\\n}\\n\\n.nav__label {\\n white-space: nowrap;\\n}\\n\\n/* Hierarchical variant */\\n.nav--hierarchical {\\n flex-direction: column;\\n gap: var(--snice-spacing-xs, 0.5rem);\\n}\\n\\n.nav--hierarchical .nav__group {\\n display: flex;\\n flex-direction: column;\\n gap: var(--snice-spacing-xs, 0.5rem);\\n}\\n\\n.nav--hierarchical .nav__submenu {\\n list-style: none;\\n margin: 0;\\n padding: 0 0 0 var(--snice-spacing-xl, 2rem);\\n display: flex;\\n flex-direction: column;\\n gap: var(--snice-spacing-2xs, 0.25rem);\\n}\\n\\n.nav--hierarchical .nav__submenu .nav__item {\\n margin: 0;\\n}\\n\\n.nav--hierarchical .nav__submenu .nav__link {\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n padding: var(--snice-spacing-xs, 0.5rem) var(--snice-spacing-md, 1rem);\\n}\\n\\n/* Grouped variant */\\n.nav--grouped {\\n flex-direction: column;\\n gap: var(--snice-spacing-lg, 1.5rem);\\n}\\n\\n.nav--grouped .nav__group {\\n display: flex;\\n flex-direction: column;\\n gap: var(--snice-spacing-xs, 0.5rem);\\n}\\n\\n.nav--grouped .nav__group-label {\\n font-size: var(--snice-font-size-xs, 0.75rem);\\n font-weight: var(--snice-font-weight-semibold, 600);\\n color: var(--snice-color-text-tertiary, rgb(115 115 115));\\n text-transform: uppercase;\\n letter-spacing: 0.05em;\\n padding: 0 var(--snice-spacing-md, 1rem);\\n margin-bottom: var(--snice-spacing-2xs, 0.25rem);\\n}\\n\\n/* Vertical orientation specific */\\n.nav--vertical .nav__item,\\n.nav--vertical .nav__link {\\n width: 100%;\\n}\\n\\n/* Responsive adjustments */\\n@media (max-width: 768px) {\\n .nav--horizontal {\\n flex-wrap: wrap;\\n }\\n\\n .nav__label {\\n font-size: var(--snice-font-size-sm, 0.875rem);\\n }\\n}\\n\";",null],"names":[],"mappings":";;;AAAA,UAAe,q5GAAq5G;;ICMv5G,QAAQ,GAAA,CAAA,MAAA;4BADpB,OAAO,CAAC,WAAW,CAAC,CAAA;;;;sBACS,WAAW;;;;;;;;;;;;AAAnB,KAAA,cAAQ,WAAW,CAAA;;;;AAItC,YAAA,wBAAA,GAAA,CAAA,QAAQ,EAAE,CAAA;AAGV,YAAA,mBAAA,GAAA,CAAA,QAAQ,EAAE,CAAA;AAGV,YAAA,uBAAA,GAAA,CAAA,QAAQ,EAAE,CAAA;4CAoHV,IAAI,CAAC,aAAa,CAAC,CAAA;AACpB,YAAA,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,4BAAA,EAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,kBAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,gBAAgB,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,0BAAA,CAAA;YA1HhB,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,wBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,cAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,cAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,YAAY,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAZ,YAAY,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,0BAAA,EAAA,+BAAA,CAAA;YAGZ,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,SAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,OAAO,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAP,OAAO,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,qBAAA,EAAA,0BAAA,CAAA;YAGP,YAAA,CAAA,IAAA,EAAA,IAAA,EAAA,uBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,IAAA,aAAA,IAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,GAAA,CAAA,WAAW,EAAA,GAAA,EAAA,CAAA,GAAA,EAAA,KAAA,KAAA,EAAA,GAAA,CAAX,WAAW,GAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,yBAAA,EAAA,8BAAA,CAAA;YAXb,YAAA,CAAA,IAAA,EAAA,gBAAA,GAAA,EAAA,KAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,IAAA,EAAA,UAAA,CAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,uBAAA,CAAA;;;YAAa,iBAAA,CAAA,UAAA,EAAA,uBAAA,CAAA;;QAaX,IAAI,GAAA;YACF,gBAAe,CAAA,2CAAA,CAA6C;QAC9D;QAEA,GAAG,GAAA;AACD,YAAA,OAAO,GAAG;QACZ;AAEQ,QAAA,UAAU,CAAC,QAAmB,EAAA;AACpC,YAAA,gBAAe;AACU,2BAAA,EAAA,IAAI,CAAC,OAAO,CAAA,MAAA,EAAS,IAAI,CAAC,WAAW,CAAA;AACxD,QAAA,EAAA,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;KAElE;QACH;AAEQ,QAAA,kBAAkB,CAAC,QAAmB,EAAA;AAC5C,YAAA,gBAAe;AACU,2BAAA,EAAA,IAAI,CAAC,OAAO,CAAA,MAAA,EAAS,IAAI,CAAC,WAAW,CAAA;AACxD,QAAA,EAAA,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAG;AACvB,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC;AACnB,qBAAA,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;qBACzD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBAElD,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,YAAW;;gBAE7C,QAAQ,CAAC,GAAG,CAAC,KAAK,aAAY;AACP,qCAAA,EAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,mBAAmB,GAAG,EAAE,CAAA;AAClE,kBAAA,EAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;;AAE9B,cAAA,CAAA,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;WAEd,GAAG,EAAE;AAEN,gBAAA,gBAAe;AACY,mCAAA,EAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,oBAAoB,GAAG,EAAE,CAAA;AACvE,cAAA,EAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;gBAC3B,YAAY;;WAEjB;AACH,YAAA,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;KAEd;QACH;AAEQ,QAAA,aAAa,CAAC,QAAmB,EAAA;AACvC,YAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqB;AAE3C,YAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AACzB,gBAAA,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS;gBAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AAC1B,oBAAA,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC3B;gBACA,MAAM,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,YAAA,CAAC,CAAC;AAEF,YAAA,gBAAe;AACU,2BAAA,EAAA,IAAI,CAAC,OAAO,CAAA,MAAA,EAAS,IAAI,CAAC,WAAW,CAAA;AACxD,QAAA,EAAA,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,KAAI;AACxD,gBAAA,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AAEzE,gBAAA,gBAAe;kDACyB,SAAS,CAAA;AAC3C,cAAA,EAAA,SAAS,KAAK,SAAS,YAAW;gDACF,SAAS,CAAA;eAC1C,GAAG,EAAE;AACJ,cAAA,EAAA,WAAW,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;WAErE;AACH,YAAA,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;KAEd;QACH;AAEQ,QAAA,aAAa,CAAC,OAAgB,EAAA;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAEvC,YAAA,gBAAe;AACW,4BAAA,EAAA,QAAQ,GAAG,mBAAmB,GAAG,EAAE,CAAA;AACvD,QAAA,EAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;;KAEhC;QACH;AAEQ,QAAA,aAAa,CAAC,OAAgB,EAAA;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AACvC,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,YAAW,CAAA,wBAAA,EAA2B,OAAO,CAAC,IAAI,CAAA,OAAA,CAAS,GAAG,EAAE;AACzF,YAAA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,CAAA,OAAA,EAAU,OAAO,CAAC,OAAO,CAAA,CAAA,CAAG,GAAG,EAAE;AACnE,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,CAAA,EAAA,EAAK,OAAO,CAAC,IAAI,EAAE;AAEjE,YAAA,gBAAe;iBACF,IAAI,CAAA;AACO,0BAAA,EAAA,QAAQ,GAAG,mBAAmB,GAAG,EAAE,CAAA;AACtC,uBAAA,EAAA,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAA;WACpC,OAAO,CAAA;UACR,IAAI;AACqB,iCAAA,EAAA,OAAO,CAAC,KAAK,CAAA;;KAE3C;QACH;AAEQ,QAAA,QAAQ,CAAC,OAAgB,EAAA;AAC/B,YAAA,OAAO,IAAI,CAAC,YAAY,KAAK,OAAO,CAAC,IAAI;gBAClC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAA,CAAE,CAAC;AAChD,iBAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,GAAG,CAAC;QAC/D;QAEA,MAAM,CAAC,QAAmB,EAAE,YAAoB,EAAA;AAC9C,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY;YAChC,IAAI,CAAC,gBAAgB,EAAE;QACzB;QAGA,gBAAgB,GAAA;AACd,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC;AACnB,iBAAA,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;iBACzC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AAElD,YAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACzB,gBAAA,OAAO,EAAE;YACX;AAEA,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AAC9B,gBAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;YACrC;AAEA,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,cAAc,EAAE;AACnC,gBAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YAC1C;AAEA,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAClC;;;AA/IA,YAAA,IAAA,CAAA,QAAQ,IAFG,iBAAA,CAAA,IAAA,EAAA,0BAAA,CAAQ,EAEG,EAAE,CAAA;YAGxB,IAAA,CAAA,YAAY,GAAA,iBAAA,CAAA,IAAA,EAAA,0BAAA,EAAG,EAAE,CAAA;YAGjB,IAAA,CAAA,OAAO,IAAA,iBAAA,CAAA,IAAA,EAAA,+BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,qBAAA,EAAe,MAAM,CAAA,CAAA;YAG5B,IAAA,CAAA,WAAW,IAAA,iBAAA,CAAA,IAAA,EAAA,0BAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,EAAA,yBAAA,EAAmB,YAAY,CAAA,CAAA;;;;;;;;;"}
1
+ {"version":3,"file":"snice-nav.js","sources":["../../../components/nav/snice-nav.css?inline","../../../../components/nav/snice-nav.ts"],"sourcesContent":["export default \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style paint}.nav{display:flex;gap:var(--snice-spacing-md,1rem)}.nav--horizontal{flex-direction:row;align-items:center}.nav--vertical{flex-direction:column;align-items:stretch}.nav__item{position:relative}.nav__link{display:flex;align-items:center;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem);color:var(--snice-color-text-secondary,rgb(107 114 128));text-decoration:none;border-radius:var(--snice-border-radius-md,.375rem);font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-medium,500);transition:background-color var(--snice-transition-fast, 150ms) ease,color var(--snice-transition-fast, 150ms) ease}.nav__link:hover{background-color:var(--snice-color-background-secondary,rgb(243 244 246));color:var(--snice-color-text,rgb(23 23 23))}.nav__link:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.nav__link--active{background-color:var(--snice-color-background-tertiary,rgb(243 244 246));color:var(--snice-color-primary,rgb(37 99 235))}.nav__link--active:hover{background-color:var(--snice-color-background-secondary,rgb(249 250 251));color:var(--snice-color-primary-hover,rgb(29 78 216))}.nav__icon{display:inline-flex;align-items:center;justify-content:center;font-size:var(--snice-font-size-lg, 1.125rem)}.nav__label{white-space:nowrap}.nav--hierarchical{flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.nav--hierarchical .nav__group{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.nav--hierarchical .nav__submenu{list-style:none;margin:0;padding:0 0 0 var(--snice-spacing-xl,2rem);display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem)}.nav--hierarchical .nav__submenu .nav__item{margin:0}.nav--hierarchical .nav__submenu .nav__link{font-size:var(--snice-font-size-sm, .875rem);padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem)}.nav--grouped{flex-direction:column;gap:var(--snice-spacing-lg,1.5rem)}.nav--grouped .nav__group{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.nav--grouped .nav__group-label{font-size:var(--snice-font-size-xs, .75rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text-tertiary,rgb(115 115 115));text-transform:uppercase;letter-spacing:.05em;padding:0 var(--snice-spacing-md,1rem);margin-bottom:var(--snice-spacing-2xs,.25rem)}.nav--vertical .nav__item,.nav--vertical .nav__link{width:100%}@media (max-width:768px){.nav--horizontal{flex-wrap:wrap}.nav__label{font-size:var(--snice-font-size-sm, .875rem)}}\";",null],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import type { Placard } from 'snice';
1
+ import type { Placard, AppContext } from 'snice';
2
2
  export type NavVariant = 'flat' | 'hierarchical' | 'grouped';
3
3
  export type NavOrientation = 'horizontal' | 'vertical';
4
4
  export interface SniceNavElement extends HTMLElement {
5
- placards: Placard[];
6
- currentRoute: string;
7
5
  variant: NavVariant;
8
6
  orientation: NavOrientation;
7
+ isTopLevel: boolean;
8
+ update(placards: Placard[], appContext?: AppContext, currentRoute?: string, routeParams?: Record<string, string>): void;
9
9
  html?(): string | Promise<string>;
10
10
  css?(): string | string[] | Promise<string | string[]>;
11
11
  }
@@ -8,16 +8,15 @@ export declare class SnicePagination extends HTMLElement {
8
8
  showNext: boolean;
9
9
  size: 'small' | 'medium' | 'large';
10
10
  variant: 'default' | 'rounded' | 'text';
11
- html(): string;
12
- css(): string;
11
+ renderContent(): import("snice").TemplateResult;
12
+ componentStyles(): import("snice").CSSResult;
13
13
  private getPageNumbers;
14
- handleFirst(): void;
15
- handlePrev(): void;
16
- handleNext(): void;
17
- handleLast(): void;
14
+ handleFirst(event: Event): void;
15
+ handlePrev(event: Event): void;
16
+ handleNext(event: Event): void;
17
+ handleLast(event: Event): void;
18
18
  handlePageClick(event: Event): void;
19
19
  private changePage;
20
- private updateView;
21
20
  goToPage(page: number): void;
22
21
  nextPage(): void;
23
22
  previousPage(): void;