@api-client/ui 0.5.38 → 0.5.40

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 (299) hide show
  1. package/build/src/md/list/internals/ListItem.d.ts +24 -15
  2. package/build/src/md/list/internals/ListItem.d.ts.map +1 -1
  3. package/build/src/md/list/internals/ListItem.js +85 -59
  4. package/build/src/md/list/internals/ListItem.js.map +1 -1
  5. package/build/src/md/list/internals/ListItem.styles.js +11 -11
  6. package/build/src/md/list/internals/ListItem.styles.js.map +1 -1
  7. package/build/src/md/select/internals/Option.d.ts +4 -14
  8. package/build/src/md/select/internals/Option.d.ts.map +1 -1
  9. package/build/src/md/select/internals/Option.js +13 -28
  10. package/build/src/md/select/internals/Option.js.map +1 -1
  11. package/build/src/md/select/internals/Select.d.ts +1 -1
  12. package/build/src/md/select/internals/Select.d.ts.map +1 -1
  13. package/build/src/md/select/internals/Select.js +15 -5
  14. package/build/src/md/select/internals/Select.js.map +1 -1
  15. package/build/tsconfig.tsbuildinfo +1 -0
  16. package/package.json +1 -1
  17. package/src/md/list/internals/ListItem.styles.ts +11 -11
  18. package/src/md/list/internals/ListItem.ts +68 -43
  19. package/src/md/select/internals/Option.ts +14 -26
  20. package/src/md/select/internals/Select.ts +15 -5
  21. package/.aiexclude +0 -3
  22. package/.cursor/rules/html-and-css-best-practices.mdc +0 -63
  23. package/.cursor/rules/lit-best-practices.mdc +0 -89
  24. package/.editorconfig +0 -29
  25. package/.github/CONTRIBUTING.md +0 -24
  26. package/.github/instructions/html-and-css-best-practices.instructions.md +0 -70
  27. package/.github/instructions/lit-best-practices.instructions.md +0 -90
  28. package/.github/release.yml +0 -14
  29. package/.github/stale.yml +0 -23
  30. package/.github/workflows/auto-release.yml +0 -182
  31. package/.github/workflows/release.yml +0 -82
  32. package/.prettierrc.js +0 -14
  33. package/.vscode/settings.json +0 -18
  34. package/RELEASE.md +0 -163
  35. package/RELEASE_SETUP.md +0 -235
  36. package/build/src/demo/DemoPage.d.ts +0 -81
  37. package/build/src/demo/DemoPage.d.ts.map +0 -1
  38. package/build/src/demo/DemoPage.js +0 -175
  39. package/build/src/demo/DemoPage.js.map +0 -1
  40. package/build/src/demo/DemoStyles.d.ts +0 -3
  41. package/build/src/demo/DemoStyles.d.ts.map +0 -1
  42. package/build/src/demo/DemoStyles.js +0 -60
  43. package/build/src/demo/DemoStyles.js.map +0 -1
  44. package/build/test/elements/navigation/Navigation.test.d.ts +0 -3
  45. package/build/test/elements/navigation/Navigation.test.d.ts.map +0 -1
  46. package/build/test/elements/navigation/Navigation.test.js +0 -113
  47. package/build/test/elements/navigation/Navigation.test.js.map +0 -1
  48. package/commitlint.config.cjs +0 -2
  49. package/demo/elements/authorization/AuthPlugin.js +0 -57
  50. package/demo/elements/authorization/AuthProxy.js +0 -215
  51. package/demo/elements/authorization/api-key.html +0 -27
  52. package/demo/elements/authorization/api-key.ts +0 -44
  53. package/demo/elements/authorization/basic.html +0 -27
  54. package/demo/elements/authorization/basic.ts +0 -43
  55. package/demo/elements/authorization/bearer.html +0 -27
  56. package/demo/elements/authorization/bearer.ts +0 -43
  57. package/demo/elements/authorization/env.js +0 -8
  58. package/demo/elements/authorization/index.html +0 -44
  59. package/demo/elements/authorization/ntlm.html +0 -27
  60. package/demo/elements/authorization/ntlm.ts +0 -43
  61. package/demo/elements/authorization/oauth-authorize.html +0 -75
  62. package/demo/elements/authorization/oauth-authorize.ts +0 -40
  63. package/demo/elements/authorization/oauth-error.html +0 -18
  64. package/demo/elements/authorization/oauth-error.ts +0 -10
  65. package/demo/elements/authorization/oauth-popup.html +0 -36
  66. package/demo/elements/authorization/oauth2.html +0 -27
  67. package/demo/elements/authorization/oauth2.ts +0 -100
  68. package/demo/elements/authorization/oidc.html +0 -27
  69. package/demo/elements/authorization/oidc.ts +0 -139
  70. package/demo/elements/authorization/private.crt +0 -31
  71. package/demo/elements/authorization/private.csr +0 -28
  72. package/demo/elements/authorization/private.key +0 -51
  73. package/demo/elements/authorization/private.pem +0 -31
  74. package/demo/elements/authorization/redirect.html +0 -20
  75. package/demo/elements/authorization/ssl-commands.sh +0 -30
  76. package/demo/elements/authorization/ssl.conf +0 -24
  77. package/demo/elements/autocomplete/index.html +0 -64
  78. package/demo/elements/autocomplete/index.ts +0 -171
  79. package/demo/elements/code-editor/CodeEditorDemo.ts +0 -173
  80. package/demo/elements/code-editor/index.html +0 -19
  81. package/demo/elements/context-menu/DemoIcons.ts +0 -21
  82. package/demo/elements/context-menu/basic.html +0 -25
  83. package/demo/elements/context-menu/basic.ts +0 -119
  84. package/demo/elements/context-menu/custom-data.html +0 -25
  85. package/demo/elements/context-menu/custom-data.ts +0 -62
  86. package/demo/elements/context-menu/demo.css +0 -28
  87. package/demo/elements/context-menu/enabled-state.html +0 -25
  88. package/demo/elements/context-menu/enabled-state.ts +0 -73
  89. package/demo/elements/context-menu/icons.html +0 -25
  90. package/demo/elements/context-menu/icons.ts +0 -64
  91. package/demo/elements/context-menu/index.html +0 -43
  92. package/demo/elements/context-menu/nested.html +0 -25
  93. package/demo/elements/context-menu/nestedt.ts +0 -152
  94. package/demo/elements/context-menu/no-execute.html +0 -25
  95. package/demo/elements/context-menu/no-execute.ts +0 -134
  96. package/demo/elements/context-menu/radio-menu.html +0 -25
  97. package/demo/elements/context-menu/radio-menu.ts +0 -83
  98. package/demo/elements/context-menu/separators.html +0 -25
  99. package/demo/elements/context-menu/separators.ts +0 -172
  100. package/demo/elements/currency/index.html +0 -91
  101. package/demo/elements/currency/index.ts +0 -352
  102. package/demo/elements/environment/environment-editor.html +0 -20
  103. package/demo/elements/environment/environment-editor.ts +0 -49
  104. package/demo/elements/environment/index.html +0 -33
  105. package/demo/elements/environment/server-editor.html +0 -20
  106. package/demo/elements/environment/server-editor.ts +0 -67
  107. package/demo/elements/environment/variables-editor.html +0 -20
  108. package/demo/elements/environment/variables-editor.ts +0 -94
  109. package/demo/elements/har/har-viewer.html +0 -20
  110. package/demo/elements/har/har-viewer.ts +0 -76
  111. package/demo/elements/har/har1.har +0 -3044
  112. package/demo/elements/har/har2.json +0 -439
  113. package/demo/elements/har/index.html +0 -26
  114. package/demo/elements/highlight/example.md +0 -27
  115. package/demo/elements/highlight/index.html +0 -31
  116. package/demo/elements/highlight/marked-highlight.html +0 -132
  117. package/demo/elements/highlight/marked-highlight.ts +0 -22
  118. package/demo/elements/highlight/prism-highlight.html +0 -62
  119. package/demo/elements/highlight/prism-highlight.ts +0 -17
  120. package/demo/elements/http/body-editor.html +0 -17
  121. package/demo/elements/http/body-editor.ts +0 -115
  122. package/demo/elements/http/headers.html +0 -17
  123. package/demo/elements/http/headers.ts +0 -59
  124. package/demo/elements/http/http-assertions.html +0 -20
  125. package/demo/elements/http/http-assertions.ts +0 -89
  126. package/demo/elements/http/http-flows.html +0 -23
  127. package/demo/elements/http/http-flows.ts +0 -89
  128. package/demo/elements/http/index.html +0 -45
  129. package/demo/elements/http/request-editor.html +0 -26
  130. package/demo/elements/http/request-editor.ts +0 -197
  131. package/demo/elements/http/request-log.html +0 -16
  132. package/demo/elements/http/request-log.ts +0 -136
  133. package/demo/elements/http/url-editing.html +0 -17
  134. package/demo/elements/http/url-editing.ts +0 -112
  135. package/demo/elements/icons/index.html +0 -81
  136. package/demo/elements/icons/index.ts +0 -52
  137. package/demo/elements/index.html +0 -72
  138. package/demo/elements/mention-textarea/index.html +0 -19
  139. package/demo/elements/mention-textarea/index.ts +0 -205
  140. package/demo/elements/navigation/navigation-item.html +0 -49
  141. package/demo/elements/navigation/navigation-item.ts +0 -131
  142. package/demo/elements/navigation/navigation.html +0 -20
  143. package/demo/elements/navigation/navigation.ts +0 -45
  144. package/demo/elements/project/index.html +0 -29
  145. package/demo/elements/project/project-run-report.html +0 -20
  146. package/demo/elements/project/project-run-report.ts +0 -132
  147. package/demo/elements/project/request-editor.html +0 -23
  148. package/demo/elements/project/request-editor.ts +0 -232
  149. package/demo/elements/user/user-avatar.html +0 -17
  150. package/demo/elements/user/user-avatar.ts +0 -60
  151. package/demo/env.js +0 -4
  152. package/demo/index.html +0 -34
  153. package/demo/layout/index.html +0 -94
  154. package/demo/layout/index.ts +0 -190
  155. package/demo/md/DemoStyles.ts +0 -61
  156. package/demo/md/UiDemoPage.ts +0 -6
  157. package/demo/md/buttons/button.html +0 -121
  158. package/demo/md/buttons/button.ts +0 -246
  159. package/demo/md/buttons/group.html +0 -36
  160. package/demo/md/buttons/group.ts +0 -171
  161. package/demo/md/checkbox/index.html +0 -39
  162. package/demo/md/checkbox/index.ts +0 -220
  163. package/demo/md/chip/chip.html +0 -70
  164. package/demo/md/chip/chip.ts +0 -219
  165. package/demo/md/chip/pawel6c9a.jpg +0 -0
  166. package/demo/md/collapse/CustomDetail.ts +0 -89
  167. package/demo/md/collapse/collapse.html +0 -21
  168. package/demo/md/collapse/collapse.ts +0 -78
  169. package/demo/md/date-picker/date-picker.ts +0 -336
  170. package/demo/md/date-picker/index.html +0 -171
  171. package/demo/md/dialog/confirm-dialog.html +0 -49
  172. package/demo/md/dialog/confirm-dialog.ts +0 -121
  173. package/demo/md/dialog/dialog.html +0 -25
  174. package/demo/md/dialog/dialog.ts +0 -468
  175. package/demo/md/dropdown-list/index.html +0 -31
  176. package/demo/md/dropdown-list/index.ts +0 -158
  177. package/demo/md/icon-button/index.html +0 -122
  178. package/demo/md/icon-button/index.ts +0 -132
  179. package/demo/md/index.html +0 -73
  180. package/demo/md/inputs/input.html +0 -73
  181. package/demo/md/inputs/input.ts +0 -278
  182. package/demo/md/inputs/radio.html +0 -39
  183. package/demo/md/inputs/radio.ts +0 -156
  184. package/demo/md/inputs/switch.html +0 -45
  185. package/demo/md/inputs/switch.ts +0 -144
  186. package/demo/md/list/list.html +0 -65
  187. package/demo/md/list/list.ts +0 -204
  188. package/demo/md/listbox/listbox.html +0 -31
  189. package/demo/md/listbox/listbox.ts +0 -27
  190. package/demo/md/menu/index.html +0 -19
  191. package/demo/md/menu/index.ts +0 -514
  192. package/demo/md/notification/snack.html +0 -21
  193. package/demo/md/notification/snack.ts +0 -70
  194. package/demo/md/progress/progress.html +0 -46
  195. package/demo/md/progress/progress.ts +0 -161
  196. package/demo/md/segmented-button/index.html +0 -21
  197. package/demo/md/segmented-button/index.ts +0 -55
  198. package/demo/md/select/index.html +0 -16
  199. package/demo/md/select/index.ts +0 -207
  200. package/demo/md/tabs/tabs.html +0 -40
  201. package/demo/md/tabs/tabs.ts +0 -214
  202. package/demo/oauth-popup.html +0 -36
  203. package/demo/page.css +0 -8
  204. package/demo/resources/calendar-month.png +0 -0
  205. package/demo/resources/favorite.png +0 -0
  206. package/demo/resources/fingerprint.png +0 -0
  207. package/demo/resources/home-work.png +0 -0
  208. package/demo/resources/mood.png +0 -0
  209. package/demo/resources/print.png +0 -0
  210. package/demo/resources/stars.png +0 -0
  211. package/demo/resources/theaters.png +0 -0
  212. package/demo/tsconfig.json +0 -4
  213. package/eslint.config.js +0 -97
  214. package/scripts/copy-assets.js +0 -21
  215. package/scripts/release.js +0 -66
  216. package/src/demo/DemoPage.ts +0 -169
  217. package/src/demo/DemoStyles.ts +0 -60
  218. package/test/README.md +0 -375
  219. package/test/contextual-menu/ContextMenu.test.ts +0 -760
  220. package/test/contextual-menu/ContextMenuElement.test.ts +0 -569
  221. package/test/core/activity.spec.ts +0 -413
  222. package/test/core/activity_manager.spec.ts +0 -544
  223. package/test/core/application.spec.ts +0 -218
  224. package/test/core/fragment.spec.ts +0 -565
  225. package/test/core/fragment_manager.spec.ts +0 -404
  226. package/test/core/live_data.spec.ts +0 -558
  227. package/test/core/renderer.spec.ts +0 -113
  228. package/test/dom-assertions.test.ts +0 -182
  229. package/test/elements/MonacoSetup.ts +0 -65
  230. package/test/elements/authorization/basic-method.test.ts +0 -177
  231. package/test/elements/authorization/bearer-method.test.ts +0 -143
  232. package/test/elements/authorization/ntlm-method.test.ts +0 -219
  233. package/test/elements/authorization/oauth2-client-credentials-method.test.ts +0 -334
  234. package/test/elements/authorization/oauth2-code-method.test.ts +0 -320
  235. package/test/elements/authorization/oauth2-custom-grant-method.test.ts +0 -255
  236. package/test/elements/authorization/oauth2-device-code-method.test.ts +0 -371
  237. package/test/elements/authorization/oauth2-implicit-method.test.ts +0 -407
  238. package/test/elements/authorization/oauth2-jwt-method.test.ts +0 -217
  239. package/test/elements/authorization/oauth2-password-method.test.ts +0 -275
  240. package/test/elements/authorization/openid-method.test.ts +0 -591
  241. package/test/elements/autocomplete/autocomplete-input.spec.ts +0 -646
  242. package/test/elements/code-editor/code-editor.accessibility.test.ts +0 -298
  243. package/test/elements/code-editor/code-editor.test.ts +0 -574
  244. package/test/elements/currency/CurrencyPicker.accessibility.test.ts +0 -328
  245. package/test/elements/currency/CurrencyPicker.core.test.ts +0 -318
  246. package/test/elements/currency/CurrencyPicker.integration.test.ts +0 -482
  247. package/test/elements/currency/CurrencyPicker.test.ts +0 -486
  248. package/test/elements/data-table/DataTable.browser.test.ts +0 -649
  249. package/test/elements/har/HarUtils.test.ts +0 -45
  250. package/test/elements/har/HarViewerElement.test.ts +0 -687
  251. package/test/elements/har/test-data/har1.har +0 -3044
  252. package/test/elements/highlight/MarkedHighlightElement.test.ts +0 -452
  253. package/test/elements/highlight/PrismHighlightElement.test.ts +0 -79
  254. package/test/elements/highlight/PrismHighlighter.test.ts +0 -94
  255. package/test/elements/highlight/remoteSanitization.md +0 -1
  256. package/test/elements/highlight/test.md +0 -3
  257. package/test/elements/highlight/test1.md +0 -3
  258. package/test/elements/highlight/test2.md +0 -1
  259. package/test/elements/http/BodyFormdataEditorElement.test.ts +0 -482
  260. package/test/elements/http/BodyMultipartEditorElement.test.ts +0 -658
  261. package/test/elements/http/BodyRawEditorElement.test.ts +0 -90
  262. package/test/elements/http/CertificateAdd.test.ts +0 -457
  263. package/test/elements/http/HttpAssertions.test.ts +0 -994
  264. package/test/elements/http/HttpFlows.test.ts +0 -502
  265. package/test/elements/http/UrlEncodeUtils.test.ts +0 -202
  266. package/test/elements/layout/SplitItem.test.ts +0 -440
  267. package/test/elements/layout/SplitLayoutManager.test.ts +0 -1501
  268. package/test/elements/layout/SplitPanel.test.ts +0 -1109
  269. package/test/elements/mention-textarea/MentionTextArea.basic.test.ts +0 -114
  270. package/test/elements/mention-textarea/MentionTextArea.test.ts +0 -613
  271. package/test/elements/navigation/Navigation.test.ts +0 -120
  272. package/test/env.ts +0 -15
  273. package/test/events/EventTypes.test.ts +0 -363
  274. package/test/events/EventsTestHelpers.ts +0 -16
  275. package/test/helpers/TestUtils.ts +0 -243
  276. package/test/helpers/UiMock.ts +0 -185
  277. package/test/lib/Dom.test.ts +0 -231
  278. package/test/md/button/UiButton.test.ts +0 -347
  279. package/test/md/button/UiIconButton.test.ts +0 -155
  280. package/test/md/chip/UiChip.test.ts +0 -219
  281. package/test/md/collapse/UiCollapse.test.ts +0 -250
  282. package/test/md/collapse/flex-layout.test.ts +0 -105
  283. package/test/md/date-time/DateTime.test.ts +0 -348
  284. package/test/md/dialog/UiConfirmDialog.test.ts +0 -131
  285. package/test/md/dialog/UiDialog.test.ts +0 -759
  286. package/test/md/menu/Menu.test.ts +0 -855
  287. package/test/md/menu/MenuIntegration.test.ts +0 -426
  288. package/test/md/menu/MenuItem.test.ts +0 -652
  289. package/test/md/menu/SubMenu.test.ts +0 -410
  290. package/test/md/progress/UiCircularProgressElement.test.ts +0 -481
  291. package/test/md/progress/UiProgressElement.test.ts +0 -117
  292. package/test/md/progress/UiRangeElement.test.ts +0 -156
  293. package/test/md/select/Select.test.ts +0 -925
  294. package/test/plugins/takeScreenshotPlugin.js +0 -35
  295. package/test/setup.test.ts +0 -217
  296. package/test/setup.ts +0 -117
  297. package/test/tsconfig.json +0 -7
  298. package/web-dev-server.config.js +0 -21
  299. package/web-test-runner.config.js +0 -90
@@ -1,90 +0,0 @@
1
- ---
2
- applyTo: "src/{elements,md,styles}/**,demo/**"
3
- ---
4
-
5
- # Lit Element Best Practices
6
-
7
- You are an expert developer in web components using the Lit library and Material Design version 3, focusing on best practices, accessibility, and responsive design.
8
-
9
- ## Key Principles
10
-
11
- - Comply with web elements authoring standards when designing a web component.
12
- - Use accessibility best practices to produce semantically relevant web components.
13
- - Prioritize web standards over custom implementation.
14
- - Prioritize APIs that are passing the Web Platform Baseline
15
- - Minimize external dependencies, but also balance between custom code and widely known and trusted dependencies.
16
- - Everything must be ES compliant. Use the appropriate standards for module imports.
17
-
18
- ## Lit Web Components
19
-
20
- - Document public properties and public function for authors to understand what these properties and functions do.
21
- - Ensure the appropriate aria roles are applied to each element.
22
- - Document all events and their structure (for custom events).
23
- - Prioritize well-known events (like change, select) over custom events.
24
- - Provide examples of usage when producing component documentation.
25
- - Prioritize native elements over custom elements whenever possible.
26
- - Prioritize composition over attribute passed configuration (a dropdown should have a semantic HTML structure and not auto-generated structure from a complex configuration object).
27
- - Think of other use-cases and how the custom element can scale for future use cases.
28
- - Reuse existing components whenever possible.
29
- - Prefer to put lifecycle methods after the constructor and before the render and other methods.
30
- - Put render methods at the end of the class.
31
- - Use `@property` decorator for public properties and `@state` decorator for private properties.
32
- - Use `@query` decorator for querying elements in the shadow DOM.
33
- - Use `@queryAssignedElements` decorator for querying slotted elements.
34
- - Boolean properties should be initialized to `false` in the constructor.
35
- - Use `@eventOptions` decorator to specify event options like `capture`, `passive`, and `once`.
36
- - Use `@queryAsync` decorator for querying elements that may not be immediately available in the DOM.
37
- - Use `@state` decorator for properties that are internal to the component and should not be exposed to the outside world.
38
- - Avoid passing complex objects as properties. Instead, use simple types like `string`, `number`, or `boolean` and handle complex logic internally.
39
- - Use lifecycle methods like `connectedCallback`, `disconnectedCallback`, and `update` to manage component state and behavior.
40
- - Use `willUpdate` method to perform actions before the component updates, such as validating properties or preparing data.
41
- - Place the component definition under the `internals/` directory of a component folder. The components registration should be done in the component file in the main component directory.
42
- - Place the base material components under the `src/md/` directory.
43
- - Place composite components under the `src/elements/` directory.
44
-
45
- ## CSS and Styling
46
-
47
- - Prioritize native CSS over JavaScript implementation. Use Web Platform Baseline even if the editor says it's not supported.
48
- - Use anchoring and popover API whenever possible and applicable over JavaScript positioning.
49
- - Place lit component styles in a separate file with the `.styles.ts` extension.
50
- - Add styles to the component registration class, not the base class.
51
- - Declare the `part` attributes to expose custom styling.
52
- - When working on base components, use CSS variables to allow customization of the component styles.
53
- - Define component states via the `internals.states.add("--state-name")` method. These states can be used as `component-name:state(state-name) {}` in the CSS.
54
-
55
- ## Error handling
56
-
57
- - Components either communicate errors through rendering them internally or dispatch an error event with the error details to the parent component or application.
58
- - Prefer error states defined on the element internals over custom error styling.
59
-
60
- ## Naming Convention
61
-
62
- - Follow web authoring standards as closely as possible.
63
- - Minimize the the of "-" in attribute and event names
64
- - Use camelCase for properties and methods.
65
- - Do not prefix private or protected properties and methods with an underscore. Use the typescript `private` and `protected` keywords to indicate visibility.
66
-
67
- ## Testing
68
-
69
- - Use @open-wc/testing library.
70
- - Always add accessibility tests.
71
- - Create fixtures for different states of a component.
72
- - To run tests for a specific file, use the `--files` option in the test command. For example:
73
-
74
- ```bash
75
- npm test -- --files=".tmp/test/**/[test file name].test.js"
76
- ```
77
-
78
- - Prefer the Assert API over the Expect API for assertions. The Assert API is more performant and provides better error messages.
79
- - When updating an element's property, await for the update to complete using `await element.updateComplete` before making assertions. This ensures that the component has fully rendered before checking its state.
80
-
81
- ## Component Demoing
82
-
83
- - Always produce a demo page under the demo/ directory.
84
- - Use the `DemoPage` class to bootstrap the demo page.
85
- - Use material styles with the demo page. Minimize custom styling.
86
- - Try to render each state separately and minimize the use of complex configurations.
87
- - Start with simple states and progressively enhance the demo with more complex configurations.
88
- - If a component produces output, ensure that the demo page shows the output in a readable format. Use one output per component.
89
- - Document the states in a way that is obvious to the user. Use headings and paragraphs to explain the states.
90
- - Due to the nature how the demo pages are processed, ensure that typescript files that belong to the demo page are imported from the `/.tmp/demo/` directory. This is done automatically by the build process. Imports inside the typescript file should reference files from the `src/` folder directly.
@@ -1,14 +0,0 @@
1
- changelog:
2
- exclude:
3
- labels:
4
- - ignore-for-release
5
- categories:
6
- - title: 🏕 Features
7
- labels:
8
- - '*'
9
- exclude:
10
- labels:
11
- - dependencies
12
- - title: 👒 Dependencies
13
- labels:
14
- - dependencies
package/.github/stale.yml DELETED
@@ -1,23 +0,0 @@
1
- # Number of days of inactivity before an issue becomes stale
2
- daysUntilStale: 45
3
- # Number of days of inactivity before a stale issue is closed
4
- daysUntilClose: 7
5
- # Issues with these labels will never be considered stale
6
- exemptLabels:
7
- - bug
8
- - fixme/bug
9
- - fixme/security
10
- - blocked
11
- - needs-review
12
- - roadmap
13
- # Label to use when marking an issue as stale
14
- staleLabel: stale
15
- # Comment to post when marking an issue as stale. Set to `false` to disable
16
- markComment: >
17
- This issue has been automatically marked as stale because it has not had
18
- recent activity and is not currently prioritized. It will be closed
19
- in a week if no further activity occurs :)
20
- # Comment to post when closing a stale issue. Set to `false` to disable
21
- closeComment: >
22
- If you still think this issue is relevant, please ping a maintainer or
23
- leave a comment!
@@ -1,182 +0,0 @@
1
- name: Auto Release
2
-
3
- on:
4
- push:
5
- branches:
6
- - main
7
-
8
- env:
9
- FORCE_COLOR: 1
10
-
11
- jobs:
12
- test:
13
- name: Test
14
- runs-on: ubuntu-latest
15
- steps:
16
- - name: Checkout code
17
- uses: actions/checkout@v4
18
- with:
19
- fetch-depth: 0
20
-
21
- - name: Setup Node.js
22
- uses: actions/setup-node@v4
23
- with:
24
- node-version: 24
25
- cache: 'npm'
26
-
27
- - uses: google/wireit@setup-github-actions-caching/v2
28
-
29
- - name: Install dependencies
30
- run: npm ci
31
-
32
- - name: Install playwright browsers
33
- run: npx playwright install --with-deps
34
-
35
- - name: Run tests
36
- run: npm test
37
-
38
- determine-release:
39
- name: Determine Release Type
40
- needs: test
41
- runs-on: ubuntu-latest
42
- outputs:
43
- should-release: ${{ steps.release-check.outputs.should-release }}
44
- release-type: ${{ steps.release-check.outputs.release-type }}
45
- new-version: ${{ steps.release-check.outputs.new-version }}
46
- steps:
47
- - name: Checkout code
48
- uses: actions/checkout@v4
49
- with:
50
- fetch-depth: 0
51
- token: ${{ secrets.GITHUB_TOKEN }}
52
-
53
- - name: Setup Node.js
54
- uses: actions/setup-node@v4
55
- with:
56
- node-version: 24
57
- cache: 'npm'
58
-
59
- - name: Install dependencies
60
- run: npm ci
61
-
62
- - name: Determine release type
63
- id: release-check
64
- run: |
65
- # Get the last tag
66
- LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
67
- echo "Last tag: $LAST_TAG"
68
-
69
- # Get commits since last tag
70
- COMMITS=$(git log --pretty=format:"%s" ${LAST_TAG}..HEAD)
71
- echo "Commits since last tag:"
72
- echo "$COMMITS"
73
-
74
- # Check if there are any commits to release
75
- if [ -z "$COMMITS" ]; then
76
- echo "No new commits since last tag"
77
- echo "should-release=false" >> $GITHUB_OUTPUT
78
- exit 0
79
- fi
80
-
81
- # Determine release type based on commit messages
82
- RELEASE_TYPE="patch"
83
-
84
- # Check for breaking changes
85
- if echo "$COMMITS" | grep -q "BREAKING CHANGE" || echo "$COMMITS" | grep -q '!:'; then
86
- RELEASE_TYPE="major"
87
- # Check for new features
88
- elif echo "$COMMITS" | grep -q "^feat"; then
89
- RELEASE_TYPE="minor"
90
- fi
91
-
92
- echo "Release type: $RELEASE_TYPE"
93
-
94
- # Calculate new version
95
- CURRENT_VERSION=$(node -p "require('./package.json').version")
96
- echo "Current version: $CURRENT_VERSION"
97
-
98
- # Use semver to calculate new version
99
- NEW_VERSION=$(node -e "
100
- const SemVer = require('@pawel-up/semver/classes/semver.js').default || require('@pawel-up/semver/classes/semver.js');
101
- const ver = new SemVer('$CURRENT_VERSION');
102
- ver.inc('$RELEASE_TYPE');
103
- console.log(ver.format());
104
- " CURRENT_VERSION="$CURRENT_VERSION" RELEASE_TYPE="$RELEASE_TYPE")
105
-
106
- echo "New version: $NEW_VERSION"
107
-
108
- echo "should-release=true" >> $GITHUB_OUTPUT
109
- echo "release-type=$RELEASE_TYPE" >> $GITHUB_OUTPUT
110
- echo "new-version=$NEW_VERSION" >> $GITHUB_OUTPUT
111
-
112
- release:
113
- name: Create Release
114
- needs: [test, determine-release]
115
- if: needs.determine-release.outputs.should-release == 'true'
116
- runs-on: ubuntu-latest
117
- permissions:
118
- contents: write
119
- issues: write
120
- pull-requests: write
121
- steps:
122
- - name: Checkout code
123
- uses: actions/checkout@v4
124
- with:
125
- fetch-depth: 0
126
- token: ${{ secrets.GITHUB_TOKEN }}
127
-
128
- - name: Setup Node.js
129
- uses: actions/setup-node@v4
130
- with:
131
- node-version: 24
132
- cache: 'npm'
133
- registry-url: 'https://registry.npmjs.org'
134
-
135
- - name: Install dependencies
136
- run: npm ci
137
-
138
- - name: Update version
139
- run: |
140
- # Update package.json version
141
- NEW_VERSION="${{ needs.determine-release.outputs.new-version }}"
142
- npm version $NEW_VERSION --no-git-tag-version
143
- git add package.json
144
-
145
- # Commit version bump
146
- # git config --local user.email "action@github.com"
147
- # git config --local user.name "GitHub Action"
148
- # git add package.json
149
- # git commit -m "chore: bump version to $NEW_VERSION"
150
- # git push
151
-
152
- - uses: qoomon/actions--create-commit@v1
153
- id: commit
154
- with:
155
- message: "chore: bump version to ${{ needs.determine-release.outputs.new-version }}"
156
- skip-empty: true
157
-
158
- - run: git push
159
-
160
- - name: Build
161
- run: npm run build
162
-
163
- - name: Generate changelog
164
- id: changelog
165
- run: |
166
- echo "changelog<<EOF" >> $GITHUB_OUTPUT
167
- npx conventional-changelog-cli@latest release --preset conventionalcommits --release-count 1 >> $GITHUB_OUTPUT
168
- echo "EOF" >> $GITHUB_OUTPUT
169
-
170
- - name: Create Release
171
- uses: softprops/action-gh-release@v2
172
- with:
173
- tag_name: v${{ needs.determine-release.outputs.new-version }}
174
- body: ${{ steps.changelog.outputs.changelog }}
175
- draft: false
176
- prerelease: false
177
- generate_release_notes: false
178
-
179
- - name: Publish to npm
180
- run: npm publish --access public
181
- env:
182
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -1,82 +0,0 @@
1
- name: Manual Release
2
-
3
- on:
4
- push:
5
- tags:
6
- - 'v*'
7
-
8
- env:
9
- FORCE_COLOR: 1
10
-
11
- jobs:
12
- test:
13
- name: Test
14
- runs-on: ubuntu-latest
15
- steps:
16
- - name: Checkout code
17
- uses: actions/checkout@v4
18
- with:
19
- fetch-depth: 0
20
-
21
- - name: Setup Node.js
22
- uses: actions/setup-node@v4
23
- with:
24
- node-version: 24
25
- cache: 'npm'
26
-
27
- - name: Install dependencies
28
- run: npm ci
29
-
30
- - name: Install playwright browsers
31
- run: npx playwright install --with-deps
32
-
33
- - name: Run tests
34
- run: npm test
35
-
36
- release:
37
- name: Create Release
38
- needs: test
39
- runs-on: ubuntu-latest
40
- permissions:
41
- contents: write
42
- issues: write
43
- pull-requests: write
44
- steps:
45
- - name: Checkout code
46
- uses: actions/checkout@v4
47
- with:
48
- fetch-depth: 0
49
- token: ${{ secrets.GITHUB_TOKEN }}
50
-
51
- - name: Setup Node.js
52
- uses: actions/setup-node@v4
53
- with:
54
- node-version: 24
55
- cache: 'npm'
56
- registry-url: 'https://registry.npmjs.org'
57
-
58
- - name: Install dependencies
59
- run: npm ci
60
-
61
- - name: Build
62
- run: npm run build
63
-
64
- - name: Generate changelog
65
- id: changelog
66
- run: |
67
- echo "changelog<<EOF" >> $GITHUB_OUTPUT
68
- npx conventional-changelog-cli@latest release --preset conventionalcommits --release-count 1 >> $GITHUB_OUTPUT
69
- echo "EOF" >> $GITHUB_OUTPUT
70
-
71
- - name: Create Release
72
- uses: softprops/action-gh-release@v2
73
- with:
74
- body: ${{ steps.changelog.outputs.changelog }}
75
- draft: false
76
- prerelease: false
77
- generate_release_notes: false
78
-
79
- - name: Publish to npm
80
- run: npm publish --access public
81
- env:
82
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
package/.prettierrc.js DELETED
@@ -1,14 +0,0 @@
1
- /**
2
- * @see https://prettier.io/docs/configuration
3
- * @type {import("prettier").Config}
4
- */
5
- export default {
6
- trailingComma: 'es5',
7
- semi: false,
8
- singleQuote: true,
9
- useTabs: false,
10
- quoteProps: 'consistent',
11
- bracketSpacing: true,
12
- arrowParens: 'always',
13
- printWidth: 120,
14
- }
@@ -1,18 +0,0 @@
1
- {
2
- "cSpell.words": [
3
- "debouncer",
4
- "iconbutton",
5
- "itemschange",
6
- "openentity",
7
- "popovertarget",
8
- "querycomplete",
9
- "selectedcontent",
10
- "startactivity",
11
- "startactivityforresult",
12
- "typescale"
13
- ],
14
- "vscode-wtr-runner.testRunnerCommand": "npm run tsc:all && npx wtr --playwright --browsers \"chromium\"",
15
- "geminicodeassist.customCommands": {
16
- "add-comments": "add comments to my code. add examples whenever reasonable. focus on another developer understanding what the function is about. don't forget about class fields."
17
- }
18
- }
package/RELEASE.md DELETED
@@ -1,163 +0,0 @@
1
- # Release Guide
2
-
3
- This project uses an **automated release system** with conventional commits and GitHub Actions. Releases are automatically created when changes are merged to the main branch.
4
-
5
- ## 🚀 Automated Releases (Recommended)
6
-
7
- ### How It Works
8
-
9
- 1. **Push to main branch** (usually via PR merge)
10
- 2. **Tests run automatically** to ensure quality
11
- 3. **System analyzes commit messages** since the last release
12
- 4. **Release type is determined automatically:**
13
- - `major` - if commits contain "breaking:" or "!:"
14
- - `minor` - if commits contain "feat:" (new features)
15
- - `patch` - for all other changes (bug fixes, docs, etc.)
16
- 5. **Release is created automatically** with changelog and npm publish
17
-
18
- ### Commit Message Examples
19
-
20
- ```bash
21
- # Major release (breaking changes)
22
- git commit -m "feat!: remove deprecated API"
23
- git commit -m "feat: new system
24
-
25
- BREAKING CHANGE: Old methods no longer work"
26
-
27
- # Minor release (new features)
28
- git commit -m "feat: add OAuth2 support"
29
- git commit -m "feat(auth): implement JWT tokens"
30
-
31
- # Patch release (bug fixes, docs, etc.)
32
- git commit -m "fix: resolve memory leak"
33
- git commit -m "docs: update API documentation"
34
- git commit -m "chore: update dependencies"
35
- ```
36
-
37
- ### What Happens Automatically
38
-
39
- 1. ✅ Tests run to ensure everything works
40
- 2. ✅ Version is bumped in `package.json`
41
- 3. ✅ Changes are committed with conventional commit message
42
- 4. ✅ Git tag is created (e.g., `v1.2.3`)
43
- 5. ✅ GitHub release is created with automated changelog
44
- 6. ✅ Package is published to npm
45
-
46
- ## 🔧 Manual Releases (Fallback)
47
-
48
- If you need to create a release manually (e.g., for hotfixes or special releases):
49
-
50
- ### Option 1: Use the release script
51
-
52
- ```bash
53
- # Create a patch release (bug fixes)
54
- npm run release:patch
55
-
56
- # Create a minor release (new features)
57
- npm run release:minor
58
-
59
- # Create a major release (breaking changes)
60
- npm run release:major
61
-
62
- # Or use the default (patch)
63
- npm run release
64
- ```
65
-
66
- ### Option 2: Manual tag creation
67
-
68
- ```bash
69
- npm run build
70
- # Update version in package.json
71
- npm version patch --no-git-tag-version
72
-
73
- # Commit the change
74
- git add package.json
75
- git commit -m "chore: bump version to X.Y.Z"
76
-
77
- # Create and push tag
78
- git tag vX.Y.Z
79
- git push origin main
80
- git push origin vX.Y.Z
81
- ```
82
-
83
- ## 📋 Conventional Commits
84
-
85
- The release system uses conventional commits to generate changelogs. Your commit messages should follow this format:
86
-
87
- ```plain
88
- type(scope): description
89
-
90
- [optional body]
91
-
92
- [optional footer]
93
- ```
94
-
95
- ### Commit Types
96
-
97
- - `feat`: New features (triggers minor release)
98
- - `fix`: Bug fixes (triggers patch release)
99
- - `docs`: Documentation changes
100
- - `style`: Code style changes (formatting, etc.)
101
- - `refactor`: Code refactoring
102
- - `test`: Adding or updating tests
103
- - `chore`: Maintenance tasks
104
-
105
- ### Breaking Changes
106
-
107
- To indicate a breaking change, use either:
108
-
109
- - `!:` in the commit message: `feat!: remove deprecated API`
110
- - `BREAKING CHANGE:` in the commit body:
111
-
112
- ```plain
113
- feat: new authentication system
114
-
115
- BREAKING CHANGE: Old auth methods are no longer supported
116
- ```
117
-
118
- ## 🔄 Workflow Comparison
119
-
120
- | Aspect | Automated Release | Manual Release |
121
- |--------|------------------|----------------|
122
- | **Trigger** | Push to main | Tag push or script |
123
- | **Release Type** | Auto-detected from commits | Manually specified |
124
- | **Effort** | Zero - fully automated | Manual intervention |
125
- | **Use Case** | Regular development flow | Hotfixes, special releases |
126
-
127
- ## 🛠️ Configuration
128
-
129
- The release system is configured in:
130
-
131
- - `.github/workflows/auto-release.yml` - Automated release workflow
132
- - `.github/workflows/release.yml` - Manual release workflow (fallback)
133
- - `scripts/release.js` - Manual release automation script
134
- - `commitlint.config.js` - Conventional commits configuration
135
- - `package.json` - Version management and scripts
136
-
137
- ## 🚨 Troubleshooting
138
-
139
- ### Common Issues
140
-
141
- 1. **No release created**: Check if commits follow conventional format
142
- 2. **Wrong release type**: Ensure commit messages use correct prefixes
143
- 3. **Tests failing**: Release won't proceed if tests fail
144
- 4. **Permission denied**: Ensure GitHub token has write permissions
145
-
146
- ### Debugging
147
-
148
- The automated workflow logs will show:
149
-
150
- - Last tag found
151
- - Commits since last tag
152
- - Determined release type
153
- - Calculated new version
154
-
155
- ### Rollback
156
-
157
- If you need to rollback a release:
158
-
159
- 1. Delete the tag locally: `git tag -d vX.Y.Z`
160
- 2. Delete the tag on GitHub: `git push origin :refs/tags/vX.Y.Z`
161
- 3. Revert the version in `package.json`
162
- 4. Commit the revert: `git commit -m "chore: revert version to X.Y.Z"`
163
- 5. Push the changes: `git push origin main`