@vectoriox/iox-ui 4.0.3 → 4.0.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 (136) hide show
  1. package/fesm2022/vectoriox-iox-ui.mjs +376 -35
  2. package/fesm2022/vectoriox-iox-ui.mjs.map +1 -1
  3. package/index.d.ts +95 -6
  4. package/package.json +11 -5
  5. package/.github/workflows/publish-iox-ui.yml +0 -68
  6. package/.github/workflows/release-iox-ui.yml.disabled +0 -77
  7. package/angular.json +0 -150
  8. package/karma.conf.js +0 -44
  9. package/projects/iox-ui/.github/copilot-instructions.md +0 -32
  10. package/projects/iox-ui/.releaserc.json +0 -42
  11. package/projects/iox-ui/README.md +0 -149
  12. package/projects/iox-ui/karma.conf.js +0 -44
  13. package/projects/iox-ui/ng +0 -0
  14. package/projects/iox-ui/ng-package.json +0 -12
  15. package/projects/iox-ui/package-lock.json +0 -93
  16. package/projects/iox-ui/package.json +0 -13
  17. package/projects/iox-ui/src/lib/iox-aos/iox-aos-animations.ts +0 -45
  18. package/projects/iox-ui/src/lib/iox-aos/iox-aos-container.component.ts +0 -46
  19. package/projects/iox-ui/src/lib/iox-aos/iox-aos.directive.ts +0 -133
  20. package/projects/iox-ui/src/lib/iox-aos/iox-aos.module.ts +0 -33
  21. package/projects/iox-ui/src/lib/iox-aos/iox-aos.service.ts +0 -21
  22. package/projects/iox-ui/src/lib/iox-masonry/iox-masonry-item.directive.ts +0 -24
  23. package/projects/iox-ui/src/lib/iox-masonry/iox-masonry.component.spec.ts +0 -25
  24. package/projects/iox-ui/src/lib/iox-masonry/iox-masonry.component.ts +0 -71
  25. package/projects/iox-ui/src/lib/iox-masonry/iox-masonry.module.ts +0 -15
  26. package/projects/iox-ui/src/lib/iox-masonry/iox-masonry.service.spec.ts +0 -16
  27. package/projects/iox-ui/src/lib/iox-masonry/iox-masonry.service.ts +0 -9
  28. package/projects/iox-ui/src/lib/iox-page/iox-page.module.ts +0 -13
  29. package/projects/iox-ui/src/lib/iox-page/page-component/page-component.component.html +0 -5
  30. package/projects/iox-ui/src/lib/iox-page/page-component/page-component.component.scss +0 -19
  31. package/projects/iox-ui/src/lib/iox-page/page-component/page-component.component.ts +0 -60
  32. package/projects/iox-ui/src/lib/iox-ui.module.ts +0 -11
  33. package/projects/iox-ui/src/lib/services/page-scroll.provider.ts +0 -45
  34. package/projects/iox-ui/src/lib/view-position/view-position.directive.ts +0 -98
  35. package/projects/iox-ui/src/lib/view-position/view-position.module.ts +0 -16
  36. package/projects/iox-ui/src/public-api.ts +0 -25
  37. package/projects/iox-ui/src/test.ts +0 -15
  38. package/projects/iox-ui/tsconfig.lib.json +0 -15
  39. package/projects/iox-ui/tsconfig.lib.prod.json +0 -10
  40. package/projects/iox-ui/tsconfig.spec.json +0 -17
  41. package/src/app/app-routing.module.ts +0 -15
  42. package/src/app/app.component.html +0 -17
  43. package/src/app/app.component.scss +0 -31
  44. package/src/app/app.component.spec.ts +0 -33
  45. package/src/app/app.component.ts +0 -21
  46. package/src/app/app.module.ts +0 -36
  47. package/src/app/pages/aos/aos.component.html +0 -35
  48. package/src/app/pages/aos/aos.component.scss +0 -49
  49. package/src/app/pages/aos/aos.component.ts +0 -30
  50. package/src/app/pages/masonry/masonry.component.html +0 -10
  51. package/src/app/pages/masonry/masonry.component.scss +0 -23
  52. package/src/app/pages/masonry/masonry.component.ts +0 -73
  53. package/src/app/styles/abstracts/functions.scss +0 -0
  54. package/src/app/styles/abstracts/mixins.scss +0 -0
  55. package/src/app/styles/abstracts/variables.scss +0 -5
  56. package/src/app/styles/base/fonts/heebo-black/Heebo-Black.eot +0 -0
  57. package/src/app/styles/base/fonts/heebo-black/Heebo-Black.svg +0 -1163
  58. package/src/app/styles/base/fonts/heebo-black/Heebo-Black.ttf +0 -0
  59. package/src/app/styles/base/fonts/heebo-black/Heebo-Black.woff +0 -0
  60. package/src/app/styles/base/fonts/heebo-black/Heebo-Black.woff2 +0 -0
  61. package/src/app/styles/base/fonts/heebo-bold/Heebo-Bold.eot +0 -0
  62. package/src/app/styles/base/fonts/heebo-bold/Heebo-Bold.svg +0 -1163
  63. package/src/app/styles/base/fonts/heebo-bold/Heebo-Bold.ttf +0 -0
  64. package/src/app/styles/base/fonts/heebo-bold/Heebo-Bold.woff +0 -0
  65. package/src/app/styles/base/fonts/heebo-bold/Heebo-Bold.woff2 +0 -0
  66. package/src/app/styles/base/fonts/heebo-extrabold/Heebo-ExtraBold.eot +0 -0
  67. package/src/app/styles/base/fonts/heebo-extrabold/Heebo-ExtraBold.svg +0 -1152
  68. package/src/app/styles/base/fonts/heebo-extrabold/Heebo-ExtraBold.ttf +0 -0
  69. package/src/app/styles/base/fonts/heebo-extrabold/Heebo-ExtraBold.woff +0 -0
  70. package/src/app/styles/base/fonts/heebo-extrabold/Heebo-ExtraBold.woff2 +0 -0
  71. package/src/app/styles/base/fonts/heebo-extralight/Heebo-ExtraLight.eot +0 -0
  72. package/src/app/styles/base/fonts/heebo-extralight/Heebo-ExtraLight.svg +0 -1152
  73. package/src/app/styles/base/fonts/heebo-extralight/Heebo-ExtraLight.ttf +0 -0
  74. package/src/app/styles/base/fonts/heebo-extralight/Heebo-ExtraLight.woff +0 -0
  75. package/src/app/styles/base/fonts/heebo-extralight/Heebo-ExtraLight.woff2 +0 -0
  76. package/src/app/styles/base/fonts/heebo-light/Heebo-Light.eot +0 -0
  77. package/src/app/styles/base/fonts/heebo-light/Heebo-Light.svg +0 -1151
  78. package/src/app/styles/base/fonts/heebo-light/Heebo-Light.ttf +0 -0
  79. package/src/app/styles/base/fonts/heebo-light/Heebo-Light.woff +0 -0
  80. package/src/app/styles/base/fonts/heebo-light/Heebo-Light.woff2 +0 -0
  81. package/src/app/styles/base/fonts/heebo-medium/Heebo-Medium.eot +0 -0
  82. package/src/app/styles/base/fonts/heebo-medium/Heebo-Medium.svg +0 -1158
  83. package/src/app/styles/base/fonts/heebo-medium/Heebo-Medium.ttf +0 -0
  84. package/src/app/styles/base/fonts/heebo-medium/Heebo-Medium.woff +0 -0
  85. package/src/app/styles/base/fonts/heebo-medium/Heebo-Medium.woff2 +0 -0
  86. package/src/app/styles/base/fonts/heebo-regular/Heebo-Regular.eot +0 -0
  87. package/src/app/styles/base/fonts/heebo-regular/Heebo-Regular.svg +0 -1150
  88. package/src/app/styles/base/fonts/heebo-regular/Heebo-Regular.ttf +0 -0
  89. package/src/app/styles/base/fonts/heebo-regular/Heebo-Regular.woff +0 -0
  90. package/src/app/styles/base/fonts/heebo-regular/Heebo-Regular.woff2 +0 -0
  91. package/src/app/styles/base/fonts/heebo-semibold/Heebo-SemiBold.eot +0 -0
  92. package/src/app/styles/base/fonts/heebo-semibold/Heebo-SemiBold.svg +0 -1155
  93. package/src/app/styles/base/fonts/heebo-semibold/Heebo-SemiBold.ttf +0 -0
  94. package/src/app/styles/base/fonts/heebo-semibold/Heebo-SemiBold.woff +0 -0
  95. package/src/app/styles/base/fonts/heebo-semibold/Heebo-SemiBold.woff2 +0 -0
  96. package/src/app/styles/base/fonts/heebo-thin/Heebo-Thin.eot +0 -0
  97. package/src/app/styles/base/fonts/heebo-thin/Heebo-Thin.svg +0 -1143
  98. package/src/app/styles/base/fonts/heebo-thin/Heebo-Thin.ttf +0 -0
  99. package/src/app/styles/base/fonts/heebo-thin/Heebo-Thin.woff +0 -0
  100. package/src/app/styles/base/fonts/heebo-thin/Heebo-Thin.woff2 +0 -0
  101. package/src/app/styles/base/fonts/iox.eot +0 -0
  102. package/src/app/styles/base/fonts/iox.svg +0 -35
  103. package/src/app/styles/base/fonts/iox.ttf +0 -0
  104. package/src/app/styles/base/fonts/iox.woff +0 -0
  105. package/src/app/styles/base/iox-font.scss +0 -102
  106. package/src/app/styles/base/reset.scss +0 -0
  107. package/src/app/styles/base/typography.scss +0 -104
  108. package/src/app/styles/layout/flex.scss +0 -183
  109. package/src/app/styles/layout/grid.scss +0 -0
  110. package/src/app/styles/main.scss +0 -17
  111. package/src/assets/.gitkeep +0 -0
  112. package/src/assets/images/1.jfif +0 -0
  113. package/src/assets/images/2.jfif +0 -0
  114. package/src/assets/images/3.jfif +0 -0
  115. package/src/assets/images/4.png +0 -0
  116. package/src/assets/images/5.jfif +0 -0
  117. package/src/assets/images/6.jfif +0 -0
  118. package/src/assets/images/7.jfif +0 -0
  119. package/src/assets/images/8.jfif +0 -0
  120. package/src/assets/images/9.jfif +0 -0
  121. package/src/environments/environment.prod.ts +0 -3
  122. package/src/environments/environment.ts +0 -16
  123. package/src/favicon.ico +0 -0
  124. package/src/index.html +0 -13
  125. package/src/main.ts +0 -12
  126. package/src/polyfills.ts +0 -53
  127. package/src/styles.scss +0 -15
  128. package/src/test.ts +0 -14
  129. package/temp/unused-iox-projects/README.md +0 -10
  130. package/temp/unused-iox-projects/iox-aos-KEEP.md +0 -1
  131. package/temp/unused-iox-projects/iox-aos_KEEP.md +0 -5
  132. package/temp/unused-iox-projects/iox-masonry-KEEP.md +0 -1
  133. package/temp/unused-iox-projects/iox-masonry_KEEP.md +0 -5
  134. package/tsconfig.app.json +0 -15
  135. package/tsconfig.json +0 -54
  136. package/tsconfig.spec.json +0 -18
package/angular.json DELETED
@@ -1,150 +0,0 @@
1
- {
2
- "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
3
- "version": 1,
4
- "newProjectRoot": "projects",
5
- "projects": {
6
- "iox-libs": {
7
- "projectType": "application",
8
- "schematics": {
9
- "@schematics/angular:component": {
10
- "style": "scss"
11
- },
12
- "@schematics/angular:application": {
13
- "strict": true
14
- }
15
- },
16
- "root": "",
17
- "sourceRoot": "src",
18
- "prefix": "app",
19
- "architect": {
20
- "build": {
21
- "builder": "@angular-devkit/build-angular:browser",
22
- "options": {
23
- "outputPath": "dist/iox-libs",
24
- "index": "src/index.html",
25
- "main": "src/main.ts",
26
- "polyfills": "src/polyfills.ts",
27
- "tsConfig": "tsconfig.app.json",
28
- "inlineStyleLanguage": "scss",
29
- "preserveSymlinks": true,
30
- "allowedCommonJsDependencies": [
31
- "@fristys/masonry"
32
- ],
33
- "assets": [
34
- "src/favicon.ico",
35
- "src/assets"
36
- ],
37
- "styles": [
38
- "src/styles.scss"
39
- ],
40
- "scripts": [
41
-
42
- ]
43
- },
44
- "configurations": {
45
- "production": {
46
- "budgets": [
47
- {
48
- "type": "initial",
49
- "maximumWarning": "500mb",
50
- "maximumError": "3mb"
51
- },
52
- {
53
- "type": "anyComponentStyle",
54
- "maximumWarning": "20mg",
55
- "maximumError": "40mb"
56
- }
57
- ],
58
- "fileReplacements": [
59
- {
60
- "replace": "src/environments/environment.ts",
61
- "with": "src/environments/environment.prod.ts"
62
- }
63
- ],
64
- "outputHashing": "all"
65
- },
66
- "development": {
67
- "buildOptimizer": false,
68
- "optimization": false,
69
- "vendorChunk": true,
70
- "extractLicenses": false,
71
- "sourceMap": true,
72
- "namedChunks": true
73
- }
74
- },
75
- "defaultConfiguration": "production"
76
- },
77
- "serve": {
78
- "builder": "@angular-devkit/build-angular:dev-server",
79
- "configurations": {
80
- "production": {
81
- "buildTarget": "iox-libs:build:production"
82
- },
83
- "development": {
84
- "buildTarget": "iox-libs:build:development"
85
- }
86
- },
87
- "defaultConfiguration": "development"
88
- },
89
- "extract-i18n": {
90
- "builder": "@angular-devkit/build-angular:extract-i18n",
91
- "options": {
92
- "buildTarget": "iox-libs:build"
93
- }
94
- },
95
- "test": {
96
- "builder": "@angular-devkit/build-angular:karma",
97
- "options": {
98
- "main": "src/test.ts",
99
- "polyfills": "src/polyfills.ts",
100
- "tsConfig": "tsconfig.spec.json",
101
- "karmaConfig": "karma.conf.js",
102
- "inlineStyleLanguage": "scss",
103
- "assets": [
104
- "src/favicon.ico",
105
- "src/assets"
106
- ],
107
- "styles": [
108
- "src/styles.scss"
109
- ],
110
- "scripts": []
111
- }
112
- }
113
- }
114
- },
115
- "iox-ui": {
116
- "projectType": "library",
117
- "root": "projects/iox-ui",
118
- "sourceRoot": "projects/iox-ui/src",
119
- "prefix": "lib",
120
- "architect": {
121
- "build": {
122
- "builder": "@angular-devkit/build-angular:ng-packagr",
123
- "options": {
124
- "project": "projects/iox-ui/ng-package.json"
125
- },
126
- "configurations": {
127
- "production": {
128
- "tsConfig": "projects/iox-ui/tsconfig.lib.prod.json"
129
- },
130
- "development": {
131
- "tsConfig": "projects/iox-ui/tsconfig.lib.json"
132
- }
133
- },
134
- "defaultConfiguration": "production"
135
- },
136
- "test": {
137
- "builder": "@angular-devkit/build-angular:karma",
138
- "options": {
139
- "main": "projects/iox-ui/src/test.ts",
140
- "tsConfig": "projects/iox-ui/tsconfig.spec.json",
141
- "karmaConfig": "projects/iox-ui/karma.conf.js"
142
- }
143
- }
144
- }
145
- }
146
- },
147
- "cli": {
148
- "analytics": "b66a4539-6ed0-409d-8d9d-e057d71faadf"
149
- }
150
- }
package/karma.conf.js DELETED
@@ -1,44 +0,0 @@
1
- // Karma configuration file, see link for more information
2
- // https://karma-runner.github.io/1.0/config/configuration-file.html
3
-
4
- module.exports = function (config) {
5
- config.set({
6
- basePath: '',
7
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
8
- plugins: [
9
- require('karma-jasmine'),
10
- require('karma-chrome-launcher'),
11
- require('karma-jasmine-html-reporter'),
12
- require('karma-coverage'),
13
- require('@angular-devkit/build-angular/plugins/karma')
14
- ],
15
- client: {
16
- jasmine: {
17
- // you can add configuration options for Jasmine here
18
- // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
19
- // for example, you can disable the random execution with `random: false`
20
- // or set a specific seed with `seed: 4321`
21
- },
22
- clearContext: false // leave Jasmine Spec Runner output visible in browser
23
- },
24
- jasmineHtmlReporter: {
25
- suppressAll: true // removes the duplicated traces
26
- },
27
- coverageReporter: {
28
- dir: require('path').join(__dirname, './coverage/iox-libs'),
29
- subdir: '.',
30
- reporters: [
31
- { type: 'html' },
32
- { type: 'text-summary' }
33
- ]
34
- },
35
- reporters: ['progress', 'kjhtml'],
36
- port: 9876,
37
- colors: true,
38
- logLevel: config.LOG_INFO,
39
- autoWatch: true,
40
- browsers: ['Chrome'],
41
- singleRun: false,
42
- restartOnFileChange: true
43
- });
44
- };
@@ -1,32 +0,0 @@
1
- # Copilot Instructions for iox-ui
2
-
3
- ## Big Picture Architecture
4
- - `iox-ui` is the UI component library for the IOX design system. It provides reusable Angular components (standalone where possible), shared styles, and utilities consumed by applications and other libraries in the monorepo.
5
- - The library is packaged with `ng-packagr` and distributed from the `projects/iox-ui` entry.
6
-
7
- ## Developer Workflows
8
- - Build library: `npm run build` (from `iox-ui` workspace root) or `ng build projects/iox-ui`
9
- - Run tests: `npm test` (Karma + Jasmine)
10
- - Lint/format: `npm run lint`, `npm run format`
11
- - Local development: use `npm link` or add the library path to `tsconfig` of consuming apps for local testing.
12
-
13
- ## Project-Specific Conventions
14
- - Components: prefer `standalone: true` with `imports: [...]` for Angular 20 compatibility.
15
- - Styles: central SCSS files live under `src/app/styles/`. Migrate deprecated `@import` usages to `@use`/`@forward` when updating Sass.
16
- - Inputs/outputs: follow the project's naming conventions and use typed Inputs/Outputs; avoid `any` where possible.
17
- - Keep `peerDependencies` aligned with the workspace Angular version.
18
-
19
- ## Integration Points & Data Flow
20
- - Consumed by applications in the monorepo (`iox-web-builder`, `iox-studio-web`, etc.) via project path mapping or npm package.
21
- - Components should not directly depend on application-specific services; accept configuration via inputs/providers.
22
-
23
- ## Key Patterns & Examples
24
- - Provide small, focused components that are easy to reuse and compose.
25
- - Use `@angular/animation` sparingly and keep animations optional via inputs.
26
-
27
- ## External Dependencies
28
- - Angular, PrimeNG, optional Masonry package (`@fristys/masonry`) — note CommonJS usage is allowed in `angular.json` for legacy packages.
29
-
30
- ---
31
-
32
- For more details, see the repository root README and the other project Copilot instruction files for examples.
@@ -1,42 +0,0 @@
1
- {
2
- "branches": ["main"],
3
- "repositoryUrl": "https://github.com/vectoriox/iox-cms",
4
- "plugins": [
5
- [
6
- "@semantic-release/commit-analyzer",
7
- {
8
- "preset": "conventionalcommits"
9
- }
10
- ],
11
- [
12
- "@semantic-release/release-notes-generator",
13
- {
14
- "preset": "conventionalcommits"
15
- }
16
- ],
17
- [
18
- "@semantic-release/changelog",
19
- {
20
- "changelogFile": "CHANGELOG.md"
21
- }
22
- ],
23
- [
24
- "@semantic-release/npm",
25
- {
26
- "npmPublish": true,
27
- "pkgRoot": "dist/projects/iox-ui"
28
- }
29
- ],
30
- "@semantic-release/github",
31
- [
32
- "@semantic-release/git",
33
- {
34
- "assets": [
35
- "dist/projects/iox-ui/package.json",
36
- "CHANGELOG.md"
37
- ],
38
- "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
39
- }
40
- ]
41
- ]
42
- }
@@ -1,149 +0,0 @@
1
- # iox-ui — UI component library
2
-
3
- This package contains shared UI components, directives and services used across IOX apps. It is built as an Angular library and exported from the `projects/iox-ui` package.
4
-
5
- ## Overview
6
- - Modular components: `IoxUiModule` aggregates smaller modules (AOS, Masonry, Page, ViewPosition).
7
- - Individual modules are available and can be imported on demand.
8
- - Includes a `PageScrollProvider` service (module-scoped) that wraps the Lenis smooth-scrolling library.
9
-
10
- ## Installation
11
- Install the library in your application or workspace (published package name: `@iox-dev/iox-ui`):
12
-
13
- ```bash
14
- npm install @iox-dev/iox-ui
15
- ```
16
-
17
- Note: this library depends on `lenis` for the `PageScrollProvider`. The workspace version uses `lenis` as a dependency; consumers installing the published package will get it automatically.
18
-
19
- ## Public API / Exports
20
- The library exports (important list):
21
-
22
- - `IoxUiModule` — umbrella module that re-exports submodules
23
- - `IoxPageModule` / `IoxPageComponent` — page wrapper with scroll events
24
- - `IoxAosModule` / `iox-aos` directive and container component — animation-on-scroll helpers
25
- - `IoxMasonryModule` — masonry layout helpers
26
- - `ViewPositionModule` / `ViewPositionDirective` — viewport position utilities
27
- - `PageScrollProvider` service — Lenis wrapper (module-scoped)
28
-
29
- Refer to `projects/iox-ui/src/public-api.ts` for the full list of exported symbols.
30
-
31
- ## Usage
32
-
33
- Import the umbrella module or individual modules in your application module:
34
-
35
- ```ts
36
- import { IoxUiModule } from '@iox-dev/iox-ui';
37
-
38
- @NgModule({
39
- imports: [IoxUiModule]
40
- })
41
- export class AppModule {}
42
- ```
43
-
44
- Or import only the page module if you only need the page component and scroll provider:
45
-
46
- ```ts
47
- import { IoxPageModule } from '@iox-dev/iox-ui';
48
-
49
- @NgModule({
50
- imports: [IoxPageModule]
51
- })
52
- export class SomeModule {}
53
- ```
54
-
55
- ### IoxPageComponent
56
- - **Selector:** `iox-page-component`
57
- - **Inputs:**
58
- - `class: string` — CSS classes applied to the outer wrapper.
59
- - **Outputs:**
60
- - `scrollEvent` — emits an object with `scrollTop`, `scrollLeft`, `scrollHeight`, `scrollWidth`, `clientHeight`, `clientWidth`, `scrollPercentage`.
61
-
62
- Example:
63
-
64
- ```html
65
- <iox-page-component class="my-page">
66
- <div>Page content here</div>
67
- </iox-page-component>
68
- ```
69
-
70
- If you need to access the scrolling API programmatically, inject `PageScrollProvider` in a component that belongs to a module that imports `IoxPageModule` (the provider is module-scoped and provided by `IoxPageModule`):
71
-
72
- ```ts
73
- constructor(private pageScroll: PageScrollProvider) {}
74
-
75
- ngAfterViewInit() {
76
- this.pageScroll.init({ wrapper: someEl });
77
- }
78
- ```
79
-
80
- ## Services
81
-
82
- - `PageScrollProvider` — wraps Lenis. Note: it is provided in `IoxPageModule` providers, so it's available only when the module is imported. This prevents the service from being visible globally unless explicitly included.
83
-
84
- ## Development
85
-
86
- Build the workspace and library:
87
-
88
- ```bash
89
- cd /path/to/repo/iox-ui
90
- npm install
91
- npm run build
92
- ```
93
-
94
- Run the unit tests (if configured):
95
-
96
- ```bash
97
- npm test
98
- ```
99
-
100
- ## Publishing
101
- The repo includes GitHub Actions workflows to build and publish the library. The publishing workflow will:
102
-
103
- - Build the library
104
- - Bump the patch version automatically
105
- - Commit the bumped version to `projects/iox-ui/package.json` and push to `main`
106
- - Publish the package to npm (requires `NPM_TOKEN` secret)
107
-
108
- If you prefer manual control of the version, use the manual publish workflow or publish locally (see `CONTRIBUTING` below).
109
-
110
- ## Contributing
111
-
112
- 1. Create a feature branch from `main`.
113
- 2. Add tests and ensure `npm run build` and `npm test` pass.
114
- 3. Open a Pull Request — CI will build the library.
115
-
116
- If you add services that should be module-scoped, register them in the module `providers` array to keep DI scoping predictable.
117
-
118
- ## Troubleshooting
119
-
120
- - If you see `Cannot find module 'lenis'` at runtime, ensure `lenis` is installed in the consuming project (it should be in the published package dependencies). Locally run `npm install lenis`.
121
- - Sass `@import` deprecation warnings are present in the workspace styles; consider migrating to `@use`/`@forward`.
122
-
123
- ---
124
-
125
- For more details, inspect `projects/iox-ui/src/public-api.ts` and the module files under `projects/iox-ui/src/lib/`.
126
- # IoxUi
127
-
128
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.1.0.
129
-
130
- ## Code scaffolding
131
-
132
- Run `ng generate component component-name --project iox-ui` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project iox-ui`.
133
- > Note: Don't forget to add `--project iox-ui` or else it will be added to the default project in your `angular.json` file.
134
-
135
- ## Build
136
-
137
- Run `ng build iox-ui` to build the project. The build artifacts will be stored in the `dist/` directory.
138
-
139
- ## Publishing
140
-
141
- After building your library with `ng build iox-ui`, go to the dist folder `cd dist/iox-ui` and run `npm publish`.
142
-
143
- ## Running unit tests
144
-
145
- Run `ng test iox-ui` to execute the unit tests via [Karma](https://karma-runner.github.io).
146
-
147
- ## Further help
148
-
149
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -1,44 +0,0 @@
1
- // Karma configuration file, see link for more information
2
- // https://karma-runner.github.io/1.0/config/configuration-file.html
3
-
4
- module.exports = function (config) {
5
- config.set({
6
- basePath: '',
7
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
8
- plugins: [
9
- require('karma-jasmine'),
10
- require('karma-chrome-launcher'),
11
- require('karma-jasmine-html-reporter'),
12
- require('karma-coverage'),
13
- require('@angular-devkit/build-angular/plugins/karma')
14
- ],
15
- client: {
16
- jasmine: {
17
- // you can add configuration options for Jasmine here
18
- // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
19
- // for example, you can disable the random execution with `random: false`
20
- // or set a specific seed with `seed: 4321`
21
- },
22
- clearContext: false // leave Jasmine Spec Runner output visible in browser
23
- },
24
- jasmineHtmlReporter: {
25
- suppressAll: true // removes the duplicated traces
26
- },
27
- coverageReporter: {
28
- dir: require('path').join(__dirname, '../../coverage/iox-ui'),
29
- subdir: '.',
30
- reporters: [
31
- { type: 'html' },
32
- { type: 'text-summary' }
33
- ]
34
- },
35
- reporters: ['progress', 'kjhtml'],
36
- port: 9876,
37
- colors: true,
38
- logLevel: config.LOG_INFO,
39
- autoWatch: true,
40
- browsers: ['Chrome'],
41
- singleRun: false,
42
- restartOnFileChange: true
43
- });
44
- };
File without changes
@@ -1,12 +0,0 @@
1
- {
2
- "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
- "dest": "../../dist/iox-ui",
4
- "assets": ["./src/js"],
5
- "lib": {
6
- "entryFile": "src/public-api.ts"
7
- },
8
- "allowedNonPeerDependencies":[
9
- "@fristys/masonry"
10
- ]
11
-
12
- }
@@ -1,93 +0,0 @@
1
- {
2
- "name": "@iox-dev/iox-ui",
3
- "version": "1.0.9",
4
- "lockfileVersion": 3,
5
- "requires": true,
6
- "packages": {
7
- "": {
8
- "name": "@iox-dev/iox-ui",
9
- "version": "1.0.9",
10
- "dependencies": {
11
- "@fristys/masonry": "^1.1.7",
12
- "tslib": "^2.3.0"
13
- },
14
- "peerDependencies": {
15
- "@angular/animations": "^17.0.0",
16
- "@angular/common": "^17.0.0",
17
- "@angular/core": "^17.0.0"
18
- }
19
- },
20
- "node_modules/@angular/animations": {
21
- "version": "17.3.11",
22
- "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.3.11.tgz",
23
- "integrity": "sha512-1y1Egag5jbdUSUWVK+KA39N9VFDrzq9ObjbAhrXFlXKa0npBRw5bprEEeLFQMETMP9Mpjbmj2PoASfl4vqj/Iw==",
24
- "peer": true,
25
- "dependencies": {
26
- "tslib": "^2.3.0"
27
- },
28
- "engines": {
29
- "node": "^18.13.0 || >=20.9.0"
30
- },
31
- "peerDependencies": {
32
- "@angular/core": "17.3.11"
33
- }
34
- },
35
- "node_modules/@angular/common": {
36
- "version": "17.3.11",
37
- "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.3.11.tgz",
38
- "integrity": "sha512-WG+HQjUaQziYLGdbcv2aW+G73uroN5VF9yk4qWYcolW+VB8SV/DOAol8uFVgCF21cIOl5+wfJZvA4r5oG3dYaw==",
39
- "peer": true,
40
- "dependencies": {
41
- "tslib": "^2.3.0"
42
- },
43
- "engines": {
44
- "node": "^18.13.0 || >=20.9.0"
45
- },
46
- "peerDependencies": {
47
- "@angular/core": "17.3.11",
48
- "rxjs": "^6.5.3 || ^7.4.0"
49
- }
50
- },
51
- "node_modules/@angular/core": {
52
- "version": "17.3.11",
53
- "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.3.11.tgz",
54
- "integrity": "sha512-2wPZwXFei3kVxK2ylIH6CdGebrC4kvooFx7qoX+250OITAEFMODJGdh/e3x0DpFUjlRvQtIFQ+YpQlfC5JnL4g==",
55
- "peer": true,
56
- "dependencies": {
57
- "tslib": "^2.3.0"
58
- },
59
- "engines": {
60
- "node": "^18.13.0 || >=20.9.0"
61
- },
62
- "peerDependencies": {
63
- "rxjs": "^6.5.3 || ^7.4.0",
64
- "zone.js": "~0.14.0"
65
- }
66
- },
67
- "node_modules/@fristys/masonry": {
68
- "version": "1.1.7",
69
- "resolved": "https://registry.npmjs.org/@fristys/masonry/-/masonry-1.1.7.tgz",
70
- "integrity": "sha512-b/CohDq3E/NOXIlBa+b64ObmZvtjofPMLThBjDLa5gp/NCwDD6b8GoXTmMAoCwibZvIsXsgvk5JgIpE5QJg9mA=="
71
- },
72
- "node_modules/rxjs": {
73
- "version": "7.8.1",
74
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
75
- "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
76
- "peer": true,
77
- "dependencies": {
78
- "tslib": "^2.1.0"
79
- }
80
- },
81
- "node_modules/tslib": {
82
- "version": "2.6.3",
83
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
84
- "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="
85
- },
86
- "node_modules/zone.js": {
87
- "version": "0.14.7",
88
- "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.7.tgz",
89
- "integrity": "sha512-0w6DGkX2BPuiK/NLf+4A8FLE43QwBfuqz2dVgi/40Rj1WmqUskCqj329O/pwrqFJLG5X8wkeG2RhIAro441xtg==",
90
- "peer": true
91
- }
92
- }
93
- }
@@ -1,13 +0,0 @@
1
- {
2
- "name": "@vectoriox/iox-ui",
3
- "version": "4.0.3",
4
- "peerDependencies": {
5
- "@angular/common": "^20.0.0",
6
- "@angular/core": "^20.0.0",
7
- "@angular/animations": "^20.0.0"
8
- },
9
- "dependencies": {
10
- "tslib": "^2.3.0",
11
- "@fristys/masonry": "^1.1.7"
12
- }
13
- }
@@ -1,45 +0,0 @@
1
- import { AnimationBuilder, style, animate, keyframes } from '@angular/animations';
2
-
3
- /********** Entries Animations ********************/
4
-
5
- export const IoxAnimationStyles: any = {}
6
-
7
- IoxAnimationStyles["fade-up"] = (delay:string, duration:string)=>{
8
- return [style({ opacity: 0, transform: "translate3d(0,100px,0)"}),
9
- animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: "translateZ(0)" }))]
10
- }
11
-
12
- IoxAnimationStyles["fade-right"] = (delay:string, duration:string)=>{
13
- return [style({ opacity: 0, transform: "translateX(150px)"}),
14
- animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: "translateZ(0)" }))]
15
- }
16
-
17
- IoxAnimationStyles["fade-out-right"] = (delay:string, duration:string)=>{
18
- return [style({ opacity: 1, transform: "translateX(0px)"}),
19
- animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 0, transform: "translateX(150px)" }))]
20
- }
21
-
22
- IoxAnimationStyles["fade-left"] = (delay:string, duration:string)=>{
23
- return [style({ opacity: 0, transform: "translateX(-150px)"}),
24
- animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: "translateZ(0)" }))]
25
- }
26
-
27
- IoxAnimationStyles["fade-out-up"] = (delay:string, duration:string)=>{
28
- return [ style({ opacity: 1, transform: "translateZ(0)" }),
29
- animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 0, transform: "translate3d(0,-100px,0)"}))]
30
- }
31
-
32
- IoxAnimationStyles["flip-left"] = (delay:string, duration:string)=>{
33
- return [style({opacity: 0,transform: "perspective(2500px) rotateY(-100deg)"}),
34
- animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: "perspective(2500px) rotateY(0)" }))]
35
- }
36
-
37
- IoxAnimationStyles["flip-up"] = (delay:string, duration:string)=>{
38
- return [style({opacity: 0,transform: "perspective(2500px) rotateX(-100deg)"}),
39
- animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: "perspective(2500px) rotateY(0)" }))]
40
- }
41
-
42
- IoxAnimationStyles["zoom-in-up"] = (delay:string, duration:string)=>{
43
- return [style({opacity: 0,transform: "translate3d(0,100px,0) scale(.6)"}),
44
- animate(`${duration} ${delay} cubic-bezier(0.445, 0.05, 0.55, 0.95)`, style({ opacity: 1, transform: "translateZ(0) scale(1)" }))]
45
- }
@@ -1,46 +0,0 @@
1
- import { Component, ElementRef, HostListener, Input, SimpleChanges, ViewChild } from '@angular/core';
2
- import { Observable, Subject } from 'rxjs';
3
- import { AOSService } from './iox-aos.service';
4
-
5
- @Component({
6
- selector: "[ioxAnimateContainer], ioxAnimateContainer",
7
- template:`<div class='animate_root_element' #animateRooteElement>
8
- <ng-content></ng-content>
9
- </div>`,
10
- standalone: false
11
- })
12
- export class IoxAnimateContainer {
13
-
14
- @Input('kickIn') kickIn = true;
15
-
16
- private _scrollOffset:Subject<any> = new Subject();
17
- public readonly scrollOffset: Observable<any> = this._scrollOffset.asObservable();
18
- @ViewChild('animateRooteElement') public animateRooteElement:any;
19
-
20
-
21
- constructor(private _element: ElementRef, private _aOSService: AOSService) {
22
- }
23
-
24
- ngAfterViewInit(){
25
- this.updateOffset();
26
- }
27
-
28
- @HostListener('scroll', ['$event'])
29
- public onScroll($event:any){
30
- this.updateOffset();
31
- }
32
-
33
- ngOnChanges(changes: SimpleChanges) {
34
- console.log(changes);
35
- if(changes['kickIn'] && changes['kickIn'].currentValue){
36
- this.updateOffset();
37
- }
38
- }
39
-
40
-
41
- private updateOffset(){
42
- let elClientRect = this.animateRooteElement.nativeElement.getBoundingClientRect();
43
- this._scrollOffset.next(elClientRect);
44
- this._aOSService.updateScrollOffset(elClientRect);
45
- }
46
- }