snice 1.13.2 → 1.13.4

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 (295) hide show
  1. package/bin/templates/base/README.md +1 -1
  2. package/dist/components/accordion/snice-accordion-item.d.ts +25 -0
  3. package/dist/components/accordion/snice-accordion-item.js +260 -0
  4. package/dist/components/accordion/snice-accordion-item.js.map +1 -0
  5. package/dist/components/accordion/snice-accordion.d.ts +28 -0
  6. package/dist/components/accordion/snice-accordion.js +221 -0
  7. package/dist/components/accordion/snice-accordion.js.map +1 -0
  8. package/dist/components/accordion/snice-accordion.types.d.ts +29 -0
  9. package/dist/components/accordion/snice-accordion.types.js +2 -0
  10. package/dist/components/accordion/snice-accordion.types.js.map +1 -0
  11. package/dist/components/alert/snice-alert.d.ts +26 -0
  12. package/dist/components/alert/snice-alert.js +191 -0
  13. package/dist/components/alert/snice-alert.js.map +1 -0
  14. package/dist/components/alert/snice-alert.types.d.ts +11 -0
  15. package/dist/components/alert/snice-alert.types.js +2 -0
  16. package/dist/components/alert/snice-alert.types.js.map +1 -0
  17. package/dist/components/avatar/snice-avatar.d.ts +24 -0
  18. package/dist/components/avatar/snice-avatar.js +177 -0
  19. package/dist/components/avatar/snice-avatar.js.map +1 -0
  20. package/dist/components/avatar/snice-avatar.types.d.ts +12 -0
  21. package/dist/components/avatar/snice-avatar.types.js +2 -0
  22. package/dist/components/avatar/snice-avatar.types.js.map +1 -0
  23. package/dist/components/badge/snice-badge.d.ts +25 -0
  24. package/dist/components/badge/snice-badge.js +157 -0
  25. package/dist/components/badge/snice-badge.js.map +1 -0
  26. package/dist/components/badge/snice-badge.types.d.ts +15 -0
  27. package/dist/components/badge/snice-badge.types.js +2 -0
  28. package/dist/components/badge/snice-badge.types.js.map +1 -0
  29. package/dist/components/breadcrumbs/snice-breadcrumbs.d.ts +27 -0
  30. package/dist/components/breadcrumbs/snice-breadcrumbs.js +212 -0
  31. package/dist/components/breadcrumbs/snice-breadcrumbs.js.map +1 -0
  32. package/dist/components/breadcrumbs/snice-breadcrumbs.types.d.ts +23 -0
  33. package/dist/components/breadcrumbs/snice-breadcrumbs.types.js +2 -0
  34. package/dist/components/breadcrumbs/snice-breadcrumbs.types.js.map +1 -0
  35. package/dist/components/breadcrumbs/snice-crumb.d.ts +9 -0
  36. package/dist/components/breadcrumbs/snice-crumb.js +50 -0
  37. package/dist/components/breadcrumbs/snice-crumb.js.map +1 -0
  38. package/dist/components/button/snice-button.d.ts +32 -0
  39. package/dist/components/button/snice-button.js +212 -0
  40. package/dist/components/button/snice-button.js.map +1 -0
  41. package/dist/components/button/snice-button.types.d.ts +23 -0
  42. package/dist/components/button/snice-button.types.js +2 -0
  43. package/dist/components/button/snice-button.types.js.map +1 -0
  44. package/dist/components/card/snice-card.d.ts +19 -0
  45. package/dist/components/card/snice-card.js +132 -0
  46. package/dist/components/card/snice-card.js.map +1 -0
  47. package/dist/components/card/snice-card.types.d.ts +9 -0
  48. package/dist/components/card/snice-card.types.js +2 -0
  49. package/dist/components/card/snice-card.types.js.map +1 -0
  50. package/dist/components/checkbox/snice-checkbox.d.ts +34 -0
  51. package/dist/components/checkbox/snice-checkbox.js +289 -0
  52. package/dist/components/checkbox/snice-checkbox.js.map +1 -0
  53. package/dist/components/checkbox/snice-checkbox.types.d.ts +20 -0
  54. package/dist/components/checkbox/snice-checkbox.types.js +2 -0
  55. package/dist/components/checkbox/snice-checkbox.types.js.map +1 -0
  56. package/dist/components/chip/snice-chip.d.ts +28 -0
  57. package/dist/components/chip/snice-chip.js +203 -0
  58. package/dist/components/chip/snice-chip.js.map +1 -0
  59. package/dist/components/chip/snice-chip.types.d.ts +14 -0
  60. package/dist/components/chip/snice-chip.types.js +2 -0
  61. package/dist/components/chip/snice-chip.types.js.map +1 -0
  62. package/dist/components/date-picker/snice-date-picker.d.ts +82 -0
  63. package/dist/components/date-picker/snice-date-picker.js +880 -0
  64. package/dist/components/date-picker/snice-date-picker.js.map +1 -0
  65. package/dist/components/date-picker/snice-date-picker.types.d.ts +71 -0
  66. package/dist/components/date-picker/snice-date-picker.types.js +2 -0
  67. package/dist/components/date-picker/snice-date-picker.types.js.map +1 -0
  68. package/dist/components/divider/snice-divider.d.ts +17 -0
  69. package/dist/components/divider/snice-divider.js +111 -0
  70. package/dist/components/divider/snice-divider.js.map +1 -0
  71. package/dist/components/divider/snice-divider.types.d.ts +14 -0
  72. package/dist/components/divider/snice-divider.types.js +2 -0
  73. package/dist/components/divider/snice-divider.types.js.map +1 -0
  74. package/dist/components/drawer/snice-drawer.d.ts +37 -0
  75. package/dist/components/drawer/snice-drawer.js +335 -0
  76. package/dist/components/drawer/snice-drawer.js.map +1 -0
  77. package/dist/components/drawer/snice-drawer.types.d.ts +16 -0
  78. package/dist/components/drawer/snice-drawer.types.js +2 -0
  79. package/dist/components/drawer/snice-drawer.types.js.map +1 -0
  80. package/dist/components/input/snice-input.d.ts +65 -0
  81. package/dist/components/input/snice-input.js +603 -0
  82. package/dist/components/input/snice-input.js.map +1 -0
  83. package/dist/components/input/snice-input.types.d.ts +53 -0
  84. package/dist/components/input/snice-input.types.js +2 -0
  85. package/dist/components/input/snice-input.types.js.map +1 -0
  86. package/dist/components/layout/snice-layout-blog.d.ts +4 -0
  87. package/dist/components/layout/snice-layout-blog.js +56 -0
  88. package/dist/components/layout/snice-layout-blog.js.map +1 -0
  89. package/dist/components/layout/snice-layout-card.d.ts +6 -0
  90. package/dist/components/layout/snice-layout-card.js +53 -0
  91. package/dist/components/layout/snice-layout-card.js.map +1 -0
  92. package/dist/components/layout/snice-layout-centered.d.ts +5 -0
  93. package/dist/components/layout/snice-layout-centered.js +38 -0
  94. package/dist/components/layout/snice-layout-centered.js.map +1 -0
  95. package/dist/components/layout/snice-layout-dashboard.d.ts +4 -0
  96. package/dist/components/layout/snice-layout-dashboard.js +53 -0
  97. package/dist/components/layout/snice-layout-dashboard.js.map +1 -0
  98. package/dist/components/layout/snice-layout-fullscreen.d.ts +5 -0
  99. package/dist/components/layout/snice-layout-fullscreen.js +50 -0
  100. package/dist/components/layout/snice-layout-fullscreen.js.map +1 -0
  101. package/dist/components/layout/snice-layout-landing.d.ts +4 -0
  102. package/dist/components/layout/snice-layout-landing.js +55 -0
  103. package/dist/components/layout/snice-layout-landing.js.map +1 -0
  104. package/dist/components/layout/snice-layout-minimal.d.ts +4 -0
  105. package/dist/components/layout/snice-layout-minimal.js +27 -0
  106. package/dist/components/layout/snice-layout-minimal.js.map +1 -0
  107. package/dist/components/layout/snice-layout-sidebar.d.ts +5 -0
  108. package/dist/components/layout/snice-layout-sidebar.js +64 -0
  109. package/dist/components/layout/snice-layout-sidebar.js.map +1 -0
  110. package/dist/components/layout/snice-layout-split.d.ts +6 -0
  111. package/dist/components/layout/snice-layout-split.js +47 -0
  112. package/dist/components/layout/snice-layout-split.js.map +1 -0
  113. package/dist/components/layout/snice-layout.d.ts +4 -0
  114. package/dist/components/layout/snice-layout.js +43 -0
  115. package/dist/components/layout/snice-layout.js.map +1 -0
  116. package/dist/components/layout/snice-layout.types.d.ts +3 -0
  117. package/dist/components/layout/snice-layout.types.js +2 -0
  118. package/dist/components/layout/snice-layout.types.js.map +1 -0
  119. package/dist/components/login/snice-login.d.ts +45 -0
  120. package/dist/components/login/snice-login.js +385 -0
  121. package/dist/components/login/snice-login.js.map +1 -0
  122. package/dist/components/login/snice-login.types.d.ts +31 -0
  123. package/dist/components/login/snice-login.types.js +2 -0
  124. package/dist/components/login/snice-login.types.js.map +1 -0
  125. package/dist/components/modal/snice-modal.d.ts +32 -0
  126. package/dist/components/modal/snice-modal.js +288 -0
  127. package/dist/components/modal/snice-modal.js.map +1 -0
  128. package/dist/components/modal/snice-modal.types.d.ts +18 -0
  129. package/dist/components/modal/snice-modal.types.js +2 -0
  130. package/dist/components/modal/snice-modal.types.js.map +1 -0
  131. package/dist/components/pagination/snice-pagination.d.ts +26 -0
  132. package/dist/components/pagination/snice-pagination.js +373 -0
  133. package/dist/components/pagination/snice-pagination.js.map +1 -0
  134. package/dist/components/pagination/snice-pagination.types.d.ts +18 -0
  135. package/dist/components/pagination/snice-pagination.types.js +2 -0
  136. package/dist/components/pagination/snice-pagination.types.js.map +1 -0
  137. package/dist/components/progress/snice-progress.d.ts +35 -0
  138. package/dist/components/progress/snice-progress.js +295 -0
  139. package/dist/components/progress/snice-progress.js.map +1 -0
  140. package/dist/components/progress/snice-progress.types.d.ts +18 -0
  141. package/dist/components/progress/snice-progress.types.js +2 -0
  142. package/dist/components/progress/snice-progress.types.js.map +1 -0
  143. package/dist/components/radio/snice-radio.d.ts +33 -0
  144. package/dist/components/radio/snice-radio.js +286 -0
  145. package/dist/components/radio/snice-radio.js.map +1 -0
  146. package/dist/components/radio/snice-radio.types.d.ts +19 -0
  147. package/dist/components/radio/snice-radio.types.js +2 -0
  148. package/dist/components/radio/snice-radio.types.js.map +1 -0
  149. package/dist/components/select/snice-option.d.ts +17 -0
  150. package/dist/components/select/snice-option.js +77 -0
  151. package/dist/components/select/snice-option.js.map +1 -0
  152. package/dist/components/select/snice-option.types.d.ts +14 -0
  153. package/dist/components/select/snice-option.types.js +2 -0
  154. package/dist/components/select/snice-option.types.js.map +1 -0
  155. package/dist/components/select/snice-select.d.ts +89 -0
  156. package/dist/components/select/snice-select.js +900 -0
  157. package/dist/components/select/snice-select.js.map +1 -0
  158. package/dist/components/select/snice-select.types.d.ts +49 -0
  159. package/dist/components/select/snice-select.types.js +2 -0
  160. package/dist/components/select/snice-select.types.js.map +1 -0
  161. package/dist/components/skeleton/snice-skeleton.d.ts +16 -0
  162. package/dist/components/skeleton/snice-skeleton.js +159 -0
  163. package/dist/components/skeleton/snice-skeleton.js.map +1 -0
  164. package/dist/components/skeleton/snice-skeleton.types.d.ts +10 -0
  165. package/dist/components/skeleton/snice-skeleton.types.js +2 -0
  166. package/dist/components/skeleton/snice-skeleton.types.js.map +1 -0
  167. package/dist/components/switch/snice-switch.d.ts +38 -0
  168. package/dist/components/switch/snice-switch.js +309 -0
  169. package/dist/components/switch/snice-switch.js.map +1 -0
  170. package/dist/components/switch/snice-switch.types.d.ts +21 -0
  171. package/dist/components/switch/snice-switch.types.js +2 -0
  172. package/dist/components/switch/snice-switch.types.js.map +1 -0
  173. package/dist/components/symbols.d.ts +1 -0
  174. package/dist/components/symbols.js +20 -0
  175. package/dist/components/symbols.js.map +1 -0
  176. package/dist/components/table/snice-cell-boolean.d.ts +21 -0
  177. package/dist/components/table/snice-cell-boolean.js +152 -0
  178. package/dist/components/table/snice-cell-boolean.js.map +1 -0
  179. package/dist/components/table/snice-cell-date.d.ts +24 -0
  180. package/dist/components/table/snice-cell-date.js +240 -0
  181. package/dist/components/table/snice-cell-date.js.map +1 -0
  182. package/dist/components/table/snice-cell-duration.d.ts +16 -0
  183. package/dist/components/table/snice-cell-duration.js +123 -0
  184. package/dist/components/table/snice-cell-duration.js.map +1 -0
  185. package/dist/components/table/snice-cell-filesize.d.ts +16 -0
  186. package/dist/components/table/snice-cell-filesize.js +119 -0
  187. package/dist/components/table/snice-cell-filesize.js.map +1 -0
  188. package/dist/components/table/snice-cell-number.d.ts +23 -0
  189. package/dist/components/table/snice-cell-number.js +202 -0
  190. package/dist/components/table/snice-cell-number.js.map +1 -0
  191. package/dist/components/table/snice-cell-progress.d.ts +17 -0
  192. package/dist/components/table/snice-cell-progress.js +114 -0
  193. package/dist/components/table/snice-cell-progress.js.map +1 -0
  194. package/dist/components/table/snice-cell-rating.d.ts +17 -0
  195. package/dist/components/table/snice-cell-rating.js +113 -0
  196. package/dist/components/table/snice-cell-rating.js.map +1 -0
  197. package/dist/components/table/snice-cell-sparkline.d.ts +29 -0
  198. package/dist/components/table/snice-cell-sparkline.js +290 -0
  199. package/dist/components/table/snice-cell-sparkline.js.map +1 -0
  200. package/dist/components/table/snice-cell-text.d.ts +19 -0
  201. package/dist/components/table/snice-cell-text.js +153 -0
  202. package/dist/components/table/snice-cell-text.js.map +1 -0
  203. package/dist/components/table/snice-cell.d.ts +32 -0
  204. package/dist/components/table/snice-cell.js +451 -0
  205. package/dist/components/table/snice-cell.js.map +1 -0
  206. package/dist/components/table/snice-column.d.ts +62 -0
  207. package/dist/components/table/snice-column.js +440 -0
  208. package/dist/components/table/snice-column.js.map +1 -0
  209. package/dist/components/table/snice-header.d.ts +33 -0
  210. package/dist/components/table/snice-header.js +303 -0
  211. package/dist/components/table/snice-header.js.map +1 -0
  212. package/dist/components/table/snice-progress.d.ts +10 -0
  213. package/dist/components/table/snice-progress.js +91 -0
  214. package/dist/components/table/snice-progress.js.map +1 -0
  215. package/dist/components/table/snice-rating.d.ts +9 -0
  216. package/dist/components/table/snice-rating.js +68 -0
  217. package/dist/components/table/snice-rating.js.map +1 -0
  218. package/dist/components/table/snice-row.d.ts +43 -0
  219. package/dist/components/table/snice-row.js +365 -0
  220. package/dist/components/table/snice-row.js.map +1 -0
  221. package/dist/components/table/snice-table.d.ts +69 -0
  222. package/dist/components/table/snice-table.js +814 -0
  223. package/dist/components/table/snice-table.js.map +1 -0
  224. package/dist/components/table/snice-table.types.d.ts +137 -0
  225. package/dist/components/table/snice-table.types.js +2 -0
  226. package/dist/components/table/snice-table.types.js.map +1 -0
  227. package/dist/components/tabs/snice-tab-panel.d.ts +12 -0
  228. package/dist/components/tabs/snice-tab-panel.js +78 -0
  229. package/dist/components/tabs/snice-tab-panel.js.map +1 -0
  230. package/dist/components/tabs/snice-tab.d.ts +13 -0
  231. package/dist/components/tabs/snice-tab.js +90 -0
  232. package/dist/components/tabs/snice-tab.js.map +1 -0
  233. package/dist/components/tabs/snice-tabs.d.ts +34 -0
  234. package/dist/components/tabs/snice-tabs.js +367 -0
  235. package/dist/components/tabs/snice-tabs.js.map +1 -0
  236. package/dist/components/tabs/snice-tabs.types.d.ts +23 -0
  237. package/dist/components/tabs/snice-tabs.types.js +2 -0
  238. package/dist/components/tabs/snice-tabs.types.js.map +1 -0
  239. package/dist/components/toast/snice-toast-container.d.ts +25 -0
  240. package/dist/components/toast/snice-toast-container.js +251 -0
  241. package/dist/components/toast/snice-toast-container.js.map +1 -0
  242. package/dist/components/toast/snice-toast.d.ts +23 -0
  243. package/dist/components/toast/snice-toast.js +316 -0
  244. package/dist/components/toast/snice-toast.js.map +1 -0
  245. package/dist/components/toast/snice-toast.types.d.ts +30 -0
  246. package/dist/components/toast/snice-toast.types.js +2 -0
  247. package/dist/components/toast/snice-toast.types.js.map +1 -0
  248. package/dist/components/tooltip/snice-tooltip.d.ts +50 -0
  249. package/dist/components/tooltip/snice-tooltip.js +656 -0
  250. package/dist/components/tooltip/snice-tooltip.js.map +1 -0
  251. package/dist/components/tooltip/snice-tooltip.types.d.ts +18 -0
  252. package/dist/components/tooltip/snice-tooltip.types.js +2 -0
  253. package/dist/components/tooltip/snice-tooltip.types.js.map +1 -0
  254. package/dist/components/transitions.d.ts +11 -0
  255. package/dist/components/transitions.js +69 -0
  256. package/dist/components/transitions.js.map +1 -0
  257. package/dist/src/controller.d.ts +61 -0
  258. package/dist/src/controller.js +297 -0
  259. package/dist/src/controller.js.map +1 -0
  260. package/dist/src/element.d.ts +77 -0
  261. package/dist/src/element.js +805 -0
  262. package/dist/src/element.js.map +1 -0
  263. package/dist/src/events.d.ts +37 -0
  264. package/dist/src/events.js +289 -0
  265. package/dist/src/events.js.map +1 -0
  266. package/dist/src/global.d.ts +7 -0
  267. package/dist/src/global.js +23 -0
  268. package/dist/src/global.js.map +1 -0
  269. package/{src/index.ts → dist/src/index.d.ts} +1 -1
  270. package/dist/src/index.js +8 -0
  271. package/dist/src/index.js.map +1 -0
  272. package/dist/src/observe.d.ts +26 -0
  273. package/dist/src/observe.js +329 -0
  274. package/dist/src/observe.js.map +1 -0
  275. package/dist/src/request-response.d.ts +46 -0
  276. package/dist/src/request-response.js +267 -0
  277. package/dist/src/request-response.js.map +1 -0
  278. package/dist/src/router.d.ts +87 -0
  279. package/dist/src/router.js +375 -0
  280. package/dist/src/router.js.map +1 -0
  281. package/dist/src/symbols.d.ts +29 -0
  282. package/{src/symbols.ts → dist/src/symbols.js} +2 -12
  283. package/dist/src/symbols.js.map +1 -0
  284. package/dist/src/transitions.d.ts +50 -0
  285. package/dist/src/transitions.js +199 -0
  286. package/dist/src/transitions.js.map +1 -0
  287. package/package.json +6 -8
  288. package/src/controller.ts +0 -347
  289. package/src/element.ts +0 -897
  290. package/src/events.ts +0 -349
  291. package/src/global.ts +0 -31
  292. package/src/observe.ts +0 -414
  293. package/src/request-response.ts +0 -336
  294. package/src/router.ts +0 -552
  295. package/src/transitions.ts +0 -264
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snice-tooltip.js","sourceRoot":"","sources":["../../../components/tooltip/snice-tooltip.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export type TooltipPosition = 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end';
2
+ export type TooltipTrigger = 'hover' | 'click' | 'focus' | 'manual';
3
+ export interface SniceTooltipElement extends HTMLElement {
4
+ content: string;
5
+ position: TooltipPosition;
6
+ trigger: TooltipTrigger;
7
+ delay: number;
8
+ hideDelay: number;
9
+ offset: number;
10
+ arrow: boolean;
11
+ open: boolean;
12
+ maxWidth: number;
13
+ zIndex: number;
14
+ show(): void;
15
+ hide(): void;
16
+ toggle(): void;
17
+ updatePosition(): void;
18
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=snice-tooltip.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snice-tooltip.types.js","sourceRoot":"","sources":["../../../components/tooltip/snice-tooltip.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { type Transition } from '../src/transitions';
2
+ /**
3
+ * Map of all transitions for components to use
4
+ * This is in components folder to avoid affecting tree-shaking in core library
5
+ */
6
+ export declare const transitions: Record<string, Transition>;
7
+ /**
8
+ * Perform a transition between two panels that need to stay in the DOM
9
+ * Unlike performTransition, this doesn't add/remove elements
10
+ */
11
+ export declare function performPanelTransition(oldPanel: HTMLElement, newPanel: HTMLElement, transition?: Transition): Promise<void>;
@@ -0,0 +1,69 @@
1
+ // Import all transitions from core
2
+ import { fadeTransition, slideTransition, slideRightTransition, slideUpTransition, slideDownTransition, scaleTransition, rotateTransition, flipTransition, zoomTransition, noneTransition, performTransition } from '../src/transitions';
3
+ /**
4
+ * Map of all transitions for components to use
5
+ * This is in components folder to avoid affecting tree-shaking in core library
6
+ */
7
+ export const transitions = {
8
+ fade: fadeTransition,
9
+ slide: slideTransition,
10
+ 'slide-right': slideRightTransition,
11
+ 'slide-up': slideUpTransition,
12
+ 'slide-down': slideDownTransition,
13
+ scale: scaleTransition,
14
+ rotate: rotateTransition,
15
+ flip: flipTransition,
16
+ zoom: zoomTransition,
17
+ none: noneTransition
18
+ };
19
+ /**
20
+ * Perform a transition between two panels that need to stay in the DOM
21
+ * Unlike performTransition, this doesn't add/remove elements
22
+ */
23
+ export async function performPanelTransition(oldPanel, newPanel, transition = {}) {
24
+ // If panels are the same, just return
25
+ if (oldPanel === newPanel)
26
+ return;
27
+ // Get parent container
28
+ const parent = oldPanel.parentElement;
29
+ if (!parent)
30
+ return;
31
+ // Create temporary container to perform the transition
32
+ const container = document.createElement('div');
33
+ container.style.position = 'relative';
34
+ container.style.width = '100%';
35
+ container.style.overflow = 'hidden';
36
+ // Calculate container height to prevent layout shift
37
+ const oldHeight = oldPanel.offsetHeight;
38
+ container.style.minHeight = `${oldHeight}px`;
39
+ // Clone the panels for transition
40
+ const oldClone = oldPanel.cloneNode(true);
41
+ const newClone = newPanel.cloneNode(true);
42
+ // Insert container before old panel
43
+ parent.insertBefore(container, oldPanel);
44
+ // Add the old clone to the container first
45
+ container.appendChild(oldClone);
46
+ // Hide the original panels during transition
47
+ oldPanel.style.visibility = 'hidden';
48
+ oldPanel.style.position = 'absolute';
49
+ newPanel.hidden = false;
50
+ newPanel.style.visibility = 'hidden';
51
+ newPanel.style.position = 'absolute';
52
+ try {
53
+ // Perform the transition with clones
54
+ // performTransition expects oldClone to already be in container
55
+ await performTransition(container, oldClone, newClone, transition);
56
+ }
57
+ catch (error) {
58
+ console.error('Transition error:', error);
59
+ }
60
+ // Restore original panels
61
+ oldPanel.style.visibility = '';
62
+ oldPanel.style.position = '';
63
+ oldPanel.hidden = true;
64
+ newPanel.style.visibility = '';
65
+ newPanel.style.position = '';
66
+ // Remove temporary container
67
+ container.remove();
68
+ }
69
+ //# sourceMappingURL=transitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../components/transitions.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,OAAO,EACL,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,cAAc,EAEd,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAA+B;IACrD,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,eAAe;IACtB,aAAa,EAAE,oBAAoB;IACnC,UAAU,EAAE,iBAAiB;IAC7B,YAAY,EAAE,mBAAmB;IACjC,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,gBAAgB;IACxB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;CACrB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAqB,EACrB,QAAqB,EACrB,aAAyB,EAAE;IAE3B,sCAAsC;IACtC,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO;IAElC,uBAAuB;IACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,uDAAuD;IACvD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IACtC,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;IAC/B,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAEpC,qDAAqD;IACrD,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC;IACxC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,SAAS,IAAI,CAAC;IAE7C,kCAAkC;IAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAgB,CAAC;IACzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAgB,CAAC;IAEzD,oCAAoC;IACpC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEzC,2CAA2C;IAC3C,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEhC,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IACrC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IAErC,IAAI,CAAC;QACH,qCAAqC;QACrC,gEAAgE;QAChE,MAAM,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,0BAA0B;IAC1B,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;IAC7B,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;IAE7B,6BAA6B;IAC7B,SAAS,CAAC,MAAM,EAAE,CAAC;AACrB,CAAC"}
@@ -0,0 +1,61 @@
1
+ type Maybe<T> = T | null | undefined;
2
+ export interface IController<T extends HTMLElement = HTMLElement> {
3
+ element: Maybe<T>;
4
+ attach(element: T): void | Promise<void>;
5
+ detach(element: T): void | Promise<void>;
6
+ }
7
+ export type ControllerClass<T extends HTMLElement = HTMLElement> = new () => IController<T>;
8
+ declare class ControllerScope {
9
+ private cleanupFns;
10
+ private pendingOperations;
11
+ register(key: string, cleanup: Function): void;
12
+ unregister(key: string): void;
13
+ cleanup(): Promise<void>;
14
+ runOperation<T>(operation: () => Promise<T>): Promise<T>;
15
+ }
16
+ /**
17
+ * Decorator to register a controller class with a name
18
+ * @param name The name to register the controller under
19
+ */
20
+ export declare function controller(name: string): <T extends ControllerClass>(constructor: T) => T;
21
+ /**
22
+ * Attaches a controller to an element
23
+ * @param element The element to attach the controller to
24
+ * @param controllerName The name of the controller to attach
25
+ */
26
+ export declare function attachController(element: HTMLElement, controllerName: string): Promise<void>;
27
+ /**
28
+ * Detaches a controller from an element
29
+ * @param element The element to detach the controller from
30
+ */
31
+ export declare function detachController(element: HTMLElement): Promise<void>;
32
+ /**
33
+ * Gets the controller instance attached to an element
34
+ * @param element The element to get the controller from
35
+ * @returns The controller instance or undefined
36
+ */
37
+ export declare function getController<T extends IController = IController>(element: HTMLElement): T | undefined;
38
+ /**
39
+ * Gets the controller scope for an element
40
+ * @param element The element to get the scope from
41
+ * @returns The controller scope or undefined
42
+ */
43
+ export declare function getControllerScope(element: HTMLElement): ControllerScope | undefined;
44
+ /**
45
+ * Enable controller support for native HTML elements
46
+ * This sets up a MutationObserver to watch for controller attributes
47
+ * on non-custom elements (elements without hyphens in their tag names)
48
+ */
49
+ export declare function useNativeElementControllers(): void;
50
+ /**
51
+ * Stop watching for native element controllers
52
+ */
53
+ export declare function cleanupNativeElementControllers(): void;
54
+ /**
55
+ * Registers a cleanup function for the current controller
56
+ * @param controller The controller instance
57
+ * @param key A unique key for this cleanup function
58
+ * @param cleanup The cleanup function to register
59
+ */
60
+ export declare function registerControllerCleanup(controller: IController, key: string, cleanup: Function): void;
61
+ export {};
@@ -0,0 +1,297 @@
1
+ import { setupEventHandlers, cleanupEventHandlers } from './events';
2
+ import { setupObservers, cleanupObservers } from './observe';
3
+ import { setupResponseHandlers, cleanupResponseHandlers } from './request-response';
4
+ import { IS_CONTROLLER_CLASS, IS_CONTROLLER_INSTANCE, CONTROLLER_KEY, CONTROLLER_NAME_KEY, CONTROLLER_ID, CONTROLLER_OPERATIONS, NATIVE_CONTROLLER, IS_ELEMENT_CLASS, ROUTER_CONTEXT } from './symbols';
5
+ import { snice } from './global';
6
+ // Controller-scoped cleanup registry
7
+ class ControllerScope {
8
+ constructor() {
9
+ this.cleanupFns = new Map();
10
+ this.pendingOperations = new Set();
11
+ }
12
+ register(key, cleanup) {
13
+ this.cleanupFns.set(key, cleanup);
14
+ }
15
+ unregister(key) {
16
+ this.cleanupFns.delete(key);
17
+ }
18
+ async cleanup() {
19
+ // Wait for all pending operations
20
+ await Promise.all(this.pendingOperations);
21
+ // Run all cleanup functions
22
+ for (const cleanup of this.cleanupFns.values()) {
23
+ try {
24
+ await cleanup();
25
+ }
26
+ catch (error) {
27
+ console.error('Error during cleanup:', error);
28
+ }
29
+ }
30
+ this.cleanupFns.clear();
31
+ }
32
+ async runOperation(operation) {
33
+ const promise = operation();
34
+ const voidPromise = promise.then(() => { }, () => { });
35
+ this.pendingOperations.add(voidPromise);
36
+ try {
37
+ const result = await promise;
38
+ this.pendingOperations.delete(voidPromise);
39
+ return result;
40
+ }
41
+ catch (error) {
42
+ this.pendingOperations.delete(voidPromise);
43
+ throw error;
44
+ }
45
+ }
46
+ }
47
+ /**
48
+ * Decorator to register a controller class with a name
49
+ * @param name The name to register the controller under
50
+ */
51
+ export function controller(name) {
52
+ return function (constructor) {
53
+ snice.controllerRegistry.set(name, constructor);
54
+ // Mark as controller class for channel decorator detection
55
+ constructor.prototype[IS_CONTROLLER_CLASS] = true;
56
+ return constructor;
57
+ };
58
+ }
59
+ /**
60
+ * Attaches a controller to an element
61
+ * @param element The element to attach the controller to
62
+ * @param controllerName The name of the controller to attach
63
+ */
64
+ export async function attachController(element, controllerName) {
65
+ const existingController = element[CONTROLLER_KEY];
66
+ const existingName = element[CONTROLLER_NAME_KEY];
67
+ // For native elements, check if this is actually the desired controller
68
+ const nativeController = element[NATIVE_CONTROLLER];
69
+ if (nativeController !== undefined && nativeController !== controllerName) {
70
+ // This attachment is outdated, skip it
71
+ return;
72
+ }
73
+ if (existingName === controllerName && existingController) {
74
+ // Already attached and controller exists
75
+ return;
76
+ }
77
+ // If there's an existing controller, detach it first
78
+ if (existingController) {
79
+ await detachController(element);
80
+ }
81
+ const ControllerClass = snice.controllerRegistry.get(controllerName);
82
+ if (!ControllerClass) {
83
+ throw new Error(`Controller "${controllerName}" not found in registry`);
84
+ }
85
+ // Create controller instance with unique ID and scope
86
+ const controllerInstance = new ControllerClass();
87
+ snice.controllerIdCounter += 1;
88
+ const controllerId = snice.controllerIdCounter;
89
+ const scope = new ControllerScope();
90
+ // Mark this as a controller instance
91
+ controllerInstance[IS_CONTROLLER_INSTANCE] = true;
92
+ controllerInstance[CONTROLLER_ID] = controllerId;
93
+ controllerInstance.element = element;
94
+ // Pass router context from element to controller if it exists
95
+ const routerContext = element[ROUTER_CONTEXT];
96
+ if (routerContext !== undefined) {
97
+ controllerInstance[ROUTER_CONTEXT] = routerContext;
98
+ }
99
+ // Store references
100
+ element[CONTROLLER_KEY] = controllerInstance;
101
+ element[CONTROLLER_NAME_KEY] = controllerName;
102
+ element[CONTROLLER_OPERATIONS] = scope;
103
+ // Wait for element to be ready (required)
104
+ await element.ready;
105
+ // Run attach in the controller's scope
106
+ await scope.runOperation(async () => {
107
+ await controllerInstance.attach(element);
108
+ });
109
+ // Setup @on event handlers for controller
110
+ setupEventHandlers(controllerInstance, element);
111
+ // Setup @observe observers for controller
112
+ setupObservers(controllerInstance, element);
113
+ // Setup @channel handlers for controller
114
+ setupResponseHandlers(controllerInstance, element);
115
+ element.dispatchEvent(new CustomEvent('@snice/controller-attached', {
116
+ detail: { name: controllerName, controller: controllerInstance }
117
+ }));
118
+ }
119
+ /**
120
+ * Detaches a controller from an element
121
+ * @param element The element to detach the controller from
122
+ */
123
+ export async function detachController(element) {
124
+ const controllerInstance = element[CONTROLLER_KEY];
125
+ const controllerName = element[CONTROLLER_NAME_KEY];
126
+ const scope = element[CONTROLLER_OPERATIONS];
127
+ if (!controllerInstance) {
128
+ return;
129
+ }
130
+ // Run detach in the controller's scope
131
+ if (scope) {
132
+ await scope.runOperation(async () => {
133
+ await controllerInstance.detach(element);
134
+ });
135
+ }
136
+ else {
137
+ await controllerInstance.detach(element);
138
+ }
139
+ controllerInstance.element = null;
140
+ // Cleanup @on event handlers for controller
141
+ cleanupEventHandlers(controllerInstance);
142
+ // Cleanup @observe observers for controller
143
+ cleanupObservers(controllerInstance);
144
+ // Cleanup @channel handlers for controller
145
+ cleanupResponseHandlers(controllerInstance);
146
+ // Cleanup the controller scope
147
+ if (scope) {
148
+ await scope.cleanup();
149
+ }
150
+ // Clean up router context reference
151
+ delete controllerInstance[ROUTER_CONTEXT];
152
+ delete element[CONTROLLER_KEY];
153
+ delete element[CONTROLLER_NAME_KEY];
154
+ delete element[CONTROLLER_OPERATIONS];
155
+ element.dispatchEvent(new CustomEvent('@snice/controller-detached', {
156
+ detail: { name: controllerName, controller: controllerInstance }
157
+ }));
158
+ }
159
+ /**
160
+ * Gets the controller instance attached to an element
161
+ * @param element The element to get the controller from
162
+ * @returns The controller instance or undefined
163
+ */
164
+ export function getController(element) {
165
+ return element[CONTROLLER_KEY];
166
+ }
167
+ /**
168
+ * Gets the controller scope for an element
169
+ * @param element The element to get the scope from
170
+ * @returns The controller scope or undefined
171
+ */
172
+ export function getControllerScope(element) {
173
+ return element[CONTROLLER_OPERATIONS];
174
+ }
175
+ /**
176
+ * Enable controller support for native HTML elements
177
+ * This sets up a MutationObserver to watch for controller attributes
178
+ * on non-custom elements (elements without hyphens in their tag names)
179
+ */
180
+ export function useNativeElementControllers() {
181
+ // Return if already initialized
182
+ if (globalThis.sniceNativeControllersInitialized) {
183
+ return;
184
+ }
185
+ globalThis.sniceNativeControllersInitialized = true;
186
+ // Process elements that already have controller attribute
187
+ function processElement(element) {
188
+ if (!(element instanceof HTMLElement))
189
+ return;
190
+ // Skip custom elements (they handle controllers themselves)
191
+ if (element.tagName.includes('-'))
192
+ return;
193
+ // Skip elements that are @element decorated (they have their own controller handling)
194
+ if (element[IS_ELEMENT_CLASS])
195
+ return;
196
+ const controllerName = element.getAttribute('controller');
197
+ const currentControllerName = element[NATIVE_CONTROLLER];
198
+ if (controllerName && controllerName !== currentControllerName) {
199
+ // Controller added or changed
200
+ element[NATIVE_CONTROLLER] = controllerName;
201
+ // For non-custom elements, we need to add the ready promise
202
+ if (!element.ready) {
203
+ element.ready = Promise.resolve();
204
+ }
205
+ // Detach old controller if exists (don't await - let it run async)
206
+ if (currentControllerName) {
207
+ detachController(element).catch(error => {
208
+ console.error(`Failed to detach old controller from native element:`, error);
209
+ });
210
+ }
211
+ // Attach the new controller
212
+ attachController(element, controllerName).catch(error => {
213
+ console.error(`Failed to attach controller "${controllerName}" to native element:`, error);
214
+ });
215
+ }
216
+ else if (!controllerName && currentControllerName) {
217
+ // Controller was removed
218
+ delete element[NATIVE_CONTROLLER];
219
+ // Clear the controller name immediately to allow re-attachment
220
+ delete element[CONTROLLER_NAME_KEY];
221
+ detachController(element).catch(error => {
222
+ console.error(`Failed to detach controller from native element:`, error);
223
+ });
224
+ }
225
+ }
226
+ // Set up MutationObserver to watch for controller attributes
227
+ const observer = new MutationObserver((mutations) => {
228
+ for (const mutation of mutations) {
229
+ if (mutation.type === 'attributes' && mutation.attributeName === 'controller') {
230
+ processElement(mutation.target);
231
+ }
232
+ else if (mutation.type === 'childList') {
233
+ // Process added nodes
234
+ mutation.addedNodes.forEach(node => {
235
+ if (node instanceof HTMLElement) {
236
+ // Process the node itself
237
+ processElement(node);
238
+ // Process all descendants with controller attribute
239
+ node.querySelectorAll('[controller]:not([class*="-"])').forEach(processElement);
240
+ }
241
+ });
242
+ }
243
+ }
244
+ });
245
+ // Start observing when DOM is ready
246
+ if (document.readyState === 'loading') {
247
+ document.addEventListener('DOMContentLoaded', () => {
248
+ // Process existing elements (excluding custom elements)
249
+ document.querySelectorAll('[controller]:not([class*="-"])').forEach(processElement);
250
+ // Start observing
251
+ observer.observe(document.body, {
252
+ attributes: true,
253
+ attributeFilter: ['controller'],
254
+ childList: true,
255
+ subtree: true
256
+ });
257
+ });
258
+ }
259
+ else {
260
+ // DOM already loaded
261
+ document.querySelectorAll('[controller]:not([class*="-"])').forEach(processElement);
262
+ observer.observe(document.body, {
263
+ attributes: true,
264
+ attributeFilter: ['controller'],
265
+ childList: true,
266
+ subtree: true
267
+ });
268
+ }
269
+ // Store observer reference for cleanup if needed
270
+ globalThis.sniceNativeControllerObserver = observer;
271
+ }
272
+ /**
273
+ * Stop watching for native element controllers
274
+ */
275
+ export function cleanupNativeElementControllers() {
276
+ const observer = globalThis.sniceNativeControllerObserver;
277
+ if (observer) {
278
+ observer.disconnect();
279
+ delete globalThis.sniceNativeControllerObserver;
280
+ delete globalThis.sniceNativeControllersInitialized;
281
+ }
282
+ }
283
+ /**
284
+ * Registers a cleanup function for the current controller
285
+ * @param controller The controller instance
286
+ * @param key A unique key for this cleanup function
287
+ * @param cleanup The cleanup function to register
288
+ */
289
+ export function registerControllerCleanup(controller, key, cleanup) {
290
+ if (!controller.element)
291
+ return;
292
+ const scope = getControllerScope(controller.element);
293
+ if (scope) {
294
+ scope.register(key, cleanup);
295
+ }
296
+ }
297
+ //# sourceMappingURL=controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Applies core element functionality to a constructor
3
+ * This is shared between @element and @page decorators
4
+ */
5
+ export declare function applyElementFunctionality(constructor: any): void;
6
+ export declare function element(tagName: string): (constructor: any) => void;
7
+ export declare function layout(tagName: string): (constructor: any) => void;
8
+ export declare function property(options?: PropertyOptions): (target: any, propertyKey: string) => void;
9
+ export interface QueryOptions {
10
+ light?: boolean;
11
+ shadow?: boolean;
12
+ }
13
+ export declare function query(selector: string, options?: QueryOptions): (target: any, propertyKey: string) => void;
14
+ export declare function queryAll(selector: string, options?: QueryOptions): (target: any, propertyKey: string) => void;
15
+ /**
16
+ * SimpleArray type for arrays that can be safely reflected to attributes
17
+ * Supports arrays of: string, number, boolean
18
+ * Uses full-width comma (,) as separator to avoid conflicts
19
+ * Strings cannot contain the full-width comma character
20
+ */
21
+ export declare class SimpleArray {
22
+ static readonly SEPARATOR = "\uFF0C";
23
+ /**
24
+ * Serialize array to string for attribute storage
25
+ */
26
+ static serialize(arr: (string | number | boolean)[]): string;
27
+ /**
28
+ * Parse string from attribute back to array
29
+ */
30
+ static parse(str: string | null): (string | number | boolean)[];
31
+ }
32
+ export interface PropertyOptions {
33
+ type?: StringConstructor | NumberConstructor | BooleanConstructor | ArrayConstructor | ObjectConstructor | DateConstructor | BigIntConstructor | typeof SimpleArray;
34
+ reflect?: boolean;
35
+ attribute?: string | boolean;
36
+ converter?: PropertyConverter;
37
+ hasChanged?: (value: any, oldValue: any) => boolean;
38
+ }
39
+ export interface PropertyConverter {
40
+ fromAttribute?(value: string | null, type?: any): any;
41
+ toAttribute?(value: any, type?: any): string | null;
42
+ }
43
+ /**
44
+ * Interface for Snice elements with all the framework-provided properties and methods
45
+ */
46
+ export interface SniceElement extends HTMLElement {
47
+ ready: Promise<void>;
48
+ html?(): string | Promise<string>;
49
+ css?(): string | string[] | Promise<string | string[]>;
50
+ }
51
+ export interface PartOptions {
52
+ throttle?: number;
53
+ debounce?: number;
54
+ }
55
+ export declare function watch(...propertyNames: string[]): (target: any, methodName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
56
+ /**
57
+ * Decorator that injects router context into a property
58
+ * The context is automatically provided to page components by the router
59
+ */
60
+ export declare function context(): (target: any, propertyKey: string) => void;
61
+ /**
62
+ * Decorator for methods that should run when element is ready
63
+ * Runs after shadow DOM, controller attachment, and event setup
64
+ * Supports async methods
65
+ */
66
+ export declare function ready(): (target: any, methodName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
67
+ /**
68
+ * Decorator for methods that should run when element is being disposed
69
+ * Used for cleanup tasks when element is removed from DOM
70
+ */
71
+ export declare function dispose(): (target: any, methodName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
72
+ /**
73
+ * Decorator for methods that render specific parts of the template
74
+ * Parts are identified by the 'part' attribute in the HTML template
75
+ * When the decorated method is called, it automatically re-renders its part
76
+ */
77
+ export declare function part(partName: string, options?: PartOptions): (target: any, methodName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;