@allsorter/ui-components 0.0.329 → 0.0.330
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.
- package/.storybook/main.ts +8 -1
- package/angular.json +36 -10
- package/bitbucket-pipelines.yml +15 -15
- package/documentation.json +540 -16
- package/ng-package.json +7 -0
- package/package.json +11 -8
- package/projects/allsorter-lib/.storybook/main.js +15 -0
- package/projects/allsorter-lib/README.md +63 -0
- package/projects/allsorter-lib/ng-package.json +7 -0
- package/projects/allsorter-lib/package.json +12 -0
- package/projects/allsorter-lib/src/lib/allsorter-lib.component.spec.ts +23 -0
- package/projects/allsorter-lib/src/lib/allsorter-lib.component.ts +15 -0
- package/projects/allsorter-lib/src/lib/allsorter-lib.service.spec.ts +16 -0
- package/projects/allsorter-lib/src/lib/allsorter-lib.service.ts +9 -0
- package/projects/allsorter-lib/src/lib/button/button.component.html +116 -0
- package/{src/app → projects/allsorter-lib/src/lib}/button/button.component.scss +15 -11
- package/{src/app → projects/allsorter-lib/src/lib}/button/button.module.ts +1 -1
- package/projects/allsorter-lib/src/lib/button/stories/button-gallery.stories.ts +155 -0
- package/{src → projects/allsorter-lib/src/lib/button}/stories/button-playground.stories.ts +12 -8
- package/projects/allsorter-lib/src/lib/input/input.component.css +58 -0
- package/projects/allsorter-lib/src/lib/input/input.component.spec.ts +60 -0
- package/{src → projects/allsorter-lib/src/lib/input}/stories/input-gallery.stories.ts +1 -1
- package/{src → projects/allsorter-lib/src/lib/input}/stories/input-playground.stories.ts +1 -1
- package/projects/allsorter-lib/src/public-api.ts +10 -0
- package/projects/allsorter-lib/tsconfig.lib.json +15 -0
- package/projects/allsorter-lib/tsconfig.lib.prod.json +11 -0
- package/projects/allsorter-lib/tsconfig.spec.json +15 -0
- package/tsconfig.json +5 -0
- package/src/app/button/button.component.html +0 -117
- package/src/app/input/input.component.css +0 -424
- package/src/app/input/input.component.spec.ts +0 -444
- package/src/public-api.ts +0 -9
- package/src/stories/button-gallery.stories.ts +0 -145
- package/src/styles/global-menu-overlay-styles.scss +0 -8
- /package/{src/app → projects/allsorter-lib/src/lib}/button/button.component.spec.ts +0 -0
- /package/{src/app → projects/allsorter-lib/src/lib}/button/button.component.ts +0 -0
- /package/{src/app → projects/allsorter-lib/src/lib}/input/input.component.html +0 -0
- /package/{src/app → projects/allsorter-lib/src/lib}/input/input.component.ts +0 -0
- /package/{src/app → projects/allsorter-lib/src/lib}/input/input.module.ts +0 -0
- /package/{src → projects/allsorter-lib/src/lib}/styles/typography-classes.scss +0 -0
package/documentation.json
CHANGED
|
@@ -1,12 +1,72 @@
|
|
|
1
1
|
{
|
|
2
2
|
"pipes": [],
|
|
3
3
|
"interfaces": [],
|
|
4
|
-
"injectables": [
|
|
4
|
+
"injectables": [
|
|
5
|
+
{
|
|
6
|
+
"name": "AllsorterLibService",
|
|
7
|
+
"id": "injectable-AllsorterLibService-501f971c26600eed2bb6ef7e7c841db5a85088f33cc3075c403799f6718e3416b8a175b29933aba7fd3985a5be1c254eca05251e62806c4ca76cae2c439d7ba7",
|
|
8
|
+
"file": "projects/allsorter-lib/src/lib/allsorter-lib.service.ts",
|
|
9
|
+
"properties": [],
|
|
10
|
+
"methods": [],
|
|
11
|
+
"deprecated": false,
|
|
12
|
+
"deprecationMessage": "",
|
|
13
|
+
"description": "",
|
|
14
|
+
"rawdescription": "\n",
|
|
15
|
+
"sourceCode": "import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AllsorterLibService {\n\n constructor() { }\n}\n",
|
|
16
|
+
"constructorObj": {
|
|
17
|
+
"name": "constructor",
|
|
18
|
+
"description": "",
|
|
19
|
+
"deprecated": false,
|
|
20
|
+
"deprecationMessage": "",
|
|
21
|
+
"args": [],
|
|
22
|
+
"line": 6
|
|
23
|
+
},
|
|
24
|
+
"extends": [],
|
|
25
|
+
"type": "injectable"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
5
28
|
"guards": [],
|
|
6
29
|
"interceptors": [],
|
|
7
30
|
"classes": [],
|
|
8
31
|
"directives": [],
|
|
9
32
|
"components": [
|
|
33
|
+
{
|
|
34
|
+
"name": "AllsorterLibComponent",
|
|
35
|
+
"id": "component-AllsorterLibComponent-97b338ab61f97d65ef635f2bdaf3bb50eb3bc8f12dfa1173b0e08a66802c464cb47df004f6766a5ab68b9e922167c2587ef98e1ade5f9cc4002fc98223c9b1f7",
|
|
36
|
+
"file": "projects/allsorter-lib/src/lib/allsorter-lib.component.ts",
|
|
37
|
+
"encapsulation": [],
|
|
38
|
+
"entryComponents": [],
|
|
39
|
+
"inputs": [],
|
|
40
|
+
"outputs": [],
|
|
41
|
+
"providers": [],
|
|
42
|
+
"selector": "lib-allsorter-lib",
|
|
43
|
+
"styleUrls": [],
|
|
44
|
+
"styles": [
|
|
45
|
+
""
|
|
46
|
+
],
|
|
47
|
+
"template": "<p>\n allsorter-lib works!\n</p>\n",
|
|
48
|
+
"templateUrl": [],
|
|
49
|
+
"viewProviders": [],
|
|
50
|
+
"hostDirectives": [],
|
|
51
|
+
"inputsClass": [],
|
|
52
|
+
"outputsClass": [],
|
|
53
|
+
"propertiesClass": [],
|
|
54
|
+
"methodsClass": [],
|
|
55
|
+
"deprecated": false,
|
|
56
|
+
"deprecationMessage": "",
|
|
57
|
+
"hostBindings": [],
|
|
58
|
+
"hostListeners": [],
|
|
59
|
+
"standalone": false,
|
|
60
|
+
"imports": [],
|
|
61
|
+
"description": "",
|
|
62
|
+
"rawdescription": "\n",
|
|
63
|
+
"type": "component",
|
|
64
|
+
"sourceCode": "import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-allsorter-lib',\n imports: [],\n template: `\n <p>\n allsorter-lib works!\n </p>\n `,\n styles: ``\n})\nexport class AllsorterLibComponent {\n\n}\n",
|
|
65
|
+
"assetsDirs": [],
|
|
66
|
+
"styleUrlsData": "",
|
|
67
|
+
"stylesData": "\n",
|
|
68
|
+
"extends": []
|
|
69
|
+
},
|
|
10
70
|
{
|
|
11
71
|
"name": "AppComponent",
|
|
12
72
|
"id": "component-AppComponent-a7aea3f74502fe342ed545942aaddea376f531209a0e06c0e5cc330db64f8fb6b0b15dba35cc9c380ae8f514c7ca32fc545d9e36e392545cc209919b86174236",
|
|
@@ -66,7 +126,7 @@
|
|
|
66
126
|
{
|
|
67
127
|
"name": "ButtonComponent",
|
|
68
128
|
"id": "component-ButtonComponent-9c9529bc461c96abb36c41a88cc1f0aa63abff53ba4f283eac31116bd9a2aa563d1e51277b0fed568e4f4f0e2d701f2967c8f8c80ee60e36cee99111e945eec8",
|
|
69
|
-
"file": "src/
|
|
129
|
+
"file": "projects/allsorter-lib/src/lib/button/button.component.ts",
|
|
70
130
|
"encapsulation": [],
|
|
71
131
|
"entryComponents": [],
|
|
72
132
|
"inputs": [],
|
|
@@ -351,7 +411,7 @@
|
|
|
351
411
|
"assetsDirs": [],
|
|
352
412
|
"styleUrlsData": [
|
|
353
413
|
{
|
|
354
|
-
"data": "@import url(\"https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined\");\n@import \"../../styles/typography-classes.scss\";\n\n.material-icons-outlined {\n font-family: 'Material Icons Outlined';\n font-weight: normal;\n font-style: normal;\n /* These two preserve the standard Material Icons sizing/ligatures */\n font-feature-settings: 'liga';\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;\n /* everything else can stay at Angular’s defaults */\n/* Base Button Styling */\n}\n.mdc-button.btn {\n\n border-radius: 5px;\n display: flex;\n align-items: center;\n cursor: pointer;\n border: none;\n transition: background 0.2s, border 0.2s, transform 0.1s;\n\n min-width: auto !important;\n gap:8px;\n height:auto !important;\n}\n/* Button Categories primary*/ \n.mdc-button.btn-primary1 {\n background-color: #5473e8;\n color: white;\n}\n.mdc-button.btn-primary2 {\n background-color: #37c1ce;\n color: white;\n}\n.mdc-button.btn-secondary {\n background-color: #383B4A;\n color: white;\n}\n.mdc-button.btn-destructive {\n background-color: #E854A4;\n color: white;\n}\n.mdc-button.btn-gradient {\n background: linear-gradient(275deg, #5473E8 -36.22%, #37C1CE 100.04%);\n color: white;\n}\n\n/* Hover States */\n\n\n.mdc-button.btn-primary2:hover {\n background-color: #4bc7d3 !important;\n}\n\n.mdc-button.btn-primary2:active {\n background-color: #299da8 !important;\n}\n\n.mdc-button.btn-primary2:outlined {\n background-color: #fff;\n border-radius: 4px;\n border: 1px solid #37c1ce;\n}\n\n.mdc-button.btn-primary1:hover {\n background-color: #6581ea !important;\n}\n\n.mdc-button.btn-primary1:active {\n background-color: #1e46df !important;\n}\n\n.mdc-button.btn-primary1:outlined {\n background-color: #fff;\n border-radius: 4px;\n border: 1px solid #5473e8;\n}\n\n.mdc-button.btn-secondary:hover {\n background-color: #4B4F62 !important;\n }\n \n .mdc-button.btn-secondary:active {\n background-color: #252831 !important;\n }\n \n .mdc-button.btn-secondary:outlined {\n background-color: #fff;\n border-radius: 4px;\n border: 1px solid #383B4A;\n }\n\n\n .mdc-button.btn-destructive:hover {\n background-color: #EF87BF !important;\n }\n \n .mdc-button.btn-destructive:active {\n background-color: #E22A8E !important;\n }\n \n .mdc-button.btn-destructive:outlined {\n background-color: #fff;\n border-radius: 4px;\n border: 1px solid #E854A4;\n }\n\n .mdc-button.btn-gradient:hover {\n background: linear-gradient(275deg, #4A90E2 -36.22%, #2BBBAD 100.04%) !important;\n }\n \n .mdc-button.btn-gradient:active {\n background: linear-gradient(275deg, #42A5F5 -36.22%, #1E88E5 100.04%) !important;\n }\n\n \n\n\n/* Pressed States (pseudo-class for active) */\n\n\n/* Disabled State */\n.mdc-button.btn-disabled {\n border: none !important;\n background-color: #b0b0b0;\n color: #666;\n cursor: not-allowed;\n}\n\n/* Outlined State */\n.mdc-button.btn-outlined {\n background: transparent;\n border: 2px solid currentColor;\n}\n\n/* Category colours used by Storybook */\n.blue { background-color:#5473e8 !important; color:#fff; }\n.blue.btn-hover, .blue:hover { background-color:#6581ea !important; }\n.blue.btn-pressed, .blue:active { background-color:#1e46df !important; }\n\n.green { background-color:#37c1ce !important; color:#fff; }\n.green.btn-hover, .green:hover { background-color:#4bc7d3 !important; }\n.green.btn-pressed, .green:active { background-color:#299da8 !important; }\n\n.grey { background-color:#383B4A !important; color:#fff; }\n.grey.btn-hover, .grey:hover { background-color:#4B4F62 !important; }\n.grey.btn-pressed, .grey:active { background-color:#252831 !important; }\n\n.error { background-color:#E854A4 !important; color:#fff; }\n.error.btn-hover, .error:hover { background-color:#EF87BF !important; }\n.error.btn-pressed, .error:active { background-color:#E22A8E !important; }\n\n.gradient { background:linear-gradient(275deg, #5473E8 -36.22%, #37C1CE 100.04%); color:#fff; }\n.gradient.btn-hover, .gradient:hover { opacity:0.9; }\n.gradient.btn-pressed, .gradient:active { opacity:0.8; }\n\n\n/* Spacing between icon and label */\n.btn.custom-button > * + * {\n margin-left: 8px;\n}\n\n/* Fixed 20x20 icon size for label/two-icon buttons */\n.two-icon-label{\n padding:4px 12px !important;\n}\nbutton.two-icon-label .mat-icon {\n width: 20px !important;\n height: 20px !important;\n} \n\n\n/* etc. */\n@font-face {\n font-family: 'Material Icons';\n font-style: normal;\n font-weight: 400;\n src: url(https://fonts.gstatic.com/s/materialicons/v143/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2) format('woff2');\n}\n\n.material-icons {\n font-family: 'Material Icons';\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-feature-settings: 'liga';\n -webkit-font-smoothing: antialiased;\n}\n\n.left-icon{\n order:0;\n}\n\n.right-icon{\n order:2;\n}\n\nmat-icon.mat-icon {\n margin: 0 !important;\n padding: 0 !important;\n}\n\n/* ------------------------------------------------------------------\n Size utility classes\n------------------------------------------------------------------ */\n\n\n\n/* New naming convention */\n.size-header { font-size: 20px; padding: 4px 12px !important; }\n.size-xs { font-size: 12px; padding: 8px 12px !important; }\n.size-sm { font-size: 14px; padding: 8px 12px !important; }\n.size-base { font-size: 14px; padding: 10px 20px !important; }\n.size-l { font-size: 16px; padding: 12px 20px !important; }\n.size-xl{ font-size: 16px; padding: 14px 24px !important; }\n/* Reuse .size-xl for xl */\n\n/* Icon sizes for new naming */\n.size-header .mat-icon { width:20px; height:20px; font-size:20px; }\n.size-xs .mat-icon { width:16px; height:16px; font-size:16px; }\n.size-sm .mat-icon, .size-base .mat-icon { width:16px; height:16px; font-size:16px; }\n.size-l .mat-icon, .size-xl .mat-icon { width:20px; height:20px; font-size:20px; }\n\n/* Adjust gap for header size */\n.btn.size-header { gap:4px !important; padding: 4px 12px !important;}\n\n/* --------------------------------------------------\n Dropdown menu custom styling\n-------------------------------------------------- */\n::ng-deep .custom-dropdown-menu.mat-mdc-menu-panel,\n::ng-deep .custom-dropdown-menu.mat-menu-panel {\n padding: 0; /* remove default padding */\n border-radius: 8px; /* rounded corners */\n box-shadow: 0 2px 6px rgba(0,0,0,0.15);\n border: 1px solid rgba(0,0,0,0.12);\n}\n::ng-deep .custom-dropdown-menu .mat-mdc-menu-content,\n::ng-deep .custom-dropdown-menu .mat-menu-content{\n padding: 0;\n}\n::ng-deep .custom-dropdown-menu .mat-mdc-menu-item,\n::ng-deep .custom-dropdown-menu .mat-menu-item{\n font-family: 'Roboto', sans-serif;\n font-size: 16px;\n line-height: 24px;\n height: 56px;\n padding: 16px 24px;\n color:#47515E;\n}\n::ng-deep .custom-dropdown-menu .mat-mdc-menu-item:hover,\n::ng-deep .custom-dropdown-menu .mat-menu-item:hover{\n background: #F5F6F7;\n}\n/* subtle divider between items */\n::ng-deep .custom-dropdown-menu .mat-mdc-menu-item + .mat-mdc-menu-item,\n::ng-deep .custom-dropdown-menu .mat-menu-item + .mat-menu-item{\n border-top: 1px solid #EAECEE;\n}\n\n/* Force white background on Angular Material menu panel */\n::ng-deep .mat-mdc-menu-panel,\n::ng-deep .mat-menu-panel,\n::ng-deep .mdc-menu-surface {\n background-color: #ffffff !important;\n --mdc-theme-surface: #ffffff !important;\n --mdc-menu-container-color: #ffffff !important;\n}\n::ng-deep .mat-mdc-menu-panel .mat-mdc-menu-content,\n::ng-deep .mat-menu-panel .mat-menu-content {\n background-color: #ffffff !important;\n}\n\n/* Ensure dropdown menu is above other elements */\n.cdk-overlay-pane{\n z-index:1000 !important;\n background:#fff !important;\n}\n::ng-deep .mat-mdc-menu-panel,\n::ng-deep .mat-menu-panel,\n::ng-deep .mdc-menu-surface,\n.cdk-overlay-pane .mat-mdc-menu-panel,\n.cdk-overlay-pane .mdc-menu-surface,\n.cdk-overlay-pane .mat-menu-panel{\n background-color:#ffffff !important;\n --mdc-theme-surface:#ffffff !important;\n --mdc-menu-container-color:#fff !important;\n}\n\n/* Make sure the Material menu panel itself is white (use ::ng-deep so rules pierce view encapsulation) */\n\n\n.mat-mdc-menu-panel,\n.mdc-menu-surface,\n.mat-menu-panel {\n --mdc-theme-surface: #ffffff !important; /* Material variable */\n background-color: #ffffff !important;\n}\n\n.cdk-overlay-pane .mat-mdc-menu-panel,\n.cdk-overlay-pane .mdc-menu-surface,\n.cdk-overlay-pane .mat-mdc-menu-panel { --mdc-menu-container-color:#fff !important; }\n\n.cdk-overlay-pane .mat-menu-panel,\n.cdk-overlay-pane .mat-mdc-menu-content,\n.cdk-overlay-pane .mat-menu-content {\n background: #fff !important;\n}\n\n\n/* Icon size helper */\n\n\n/* --------------------------------------------------\n Button types\n-------------------------------------------------- */\nbutton.icon-circle {\n width: auto !important;\n height: auto !important;\n border-radius: 50% !important;\n aspect-ratio: 1 / 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0 !important;\n min-width: 0 !important;\n justify-content: center;\n padding:6px !important;\n}\n.size-small.icon-circle { \n padding: 4px !important;\n }\n.size-medium.icon-circle { \n padding: 8px !important;\n}\n.size-base.icon-circle { \n padding: 10px !important;\n}\n.size-large.icon-circle { \n padding: 12px !important;\n}\n.size-xl.icon-circle { \n padding: 14px !important;\n}\n\n/* Circle button size overrides */\n.size-header.icon-circle { padding:4px !important; }\n.size-header.icon-circle .mat-icon { width:10px; height:10px; font-size:10px; }\n\n.size-xs.icon-circle { padding:4px !important; }\n.size-xs.icon-circle .mat-icon { width:12px; height:12px; font-size:12px; }\n\n.size-sm.icon-circle { padding:8px !important; }\n.size-sm.icon-circle .mat-icon { width:12px; height:12px; font-size:12px; }\n\n.size-base.icon-circle { padding:10px !important; }\n.size-base.icon-circle .mat-icon { width:14px; height:14px; font-size:14px; }\n\n.size-l.icon-circle { padding:12px !important; }\n.size-l.icon-circle .mat-icon { width:16px; height:16px; font-size:16px; }\n\n.size-xl.icon-circle { padding:14px !important; }\n.size-xl.icon-circle .mat-icon { width:16px; height:16px; font-size:16px; }\n\n/* icon-label and two-icon-label just rely on default flex behaviour */\n.icon-xs { \n /* width: 16px; height: 16px; */\n padding: 4px !important;\n }\n\n\n/* ------------------------------------------------------------------\n Color category classes (solid)\n------------------------------------------------------------------ */\n.mdc-button.blue { background-color: #5473E8; color: #fff; }\n.mdc-button.blue:hover { background-color: #6581EA; }\n.mdc-button.blue:active { background-color: #1E46DF; }\n\n.mdc-button.green { background-color: #37C1CE; color: #fff; }\n.mdc-button.green:hover { background-color: #4BC7D3; }\n.mdc-button.green:active { background-color: #299DA8; }\n\n.mdc-button.grey { background-color: #383B4A; color: #fff; }\n.mdc-button.grey:hover { background-color: #4B4F62; }\n.mdc-button.grey:active { background-color: #252831; }\n\n.mdc-button.error { background-color: #E854A4; color: #fff; }\n.mdc-button.error:hover { background-color: #EF87BF; }\n.mdc-button.error:active { background-color: #E22A8E; }\n\n.mdc-button.gradient {\n background: linear-gradient(275deg, #5473E8 -36.22%, #37C1CE 100.04%);\n color: #fff;\n}\n.mdc-button.gradient:hover {\n background: linear-gradient(0deg, rgba(250, 250, 253, 0.30) 0%, rgba(250, 250, 253, 0.30) 100%),\n linear-gradient(275deg, #2BBBAD 9.3%, #4A90E2 115.85%);\n}\n.mdc-button.gradient:active {\n background: linear-gradient(0deg, rgba(56, 59, 74, 0.50) 0%, rgba(56, 59, 74, 0.50) 100%),\n linear-gradient(275deg, #2BBBAD 9.3%, #4A90E2 115.85%);\n}\n\n.mdc-button.disabled,\n.mdc-button:disabled {\n background-color: #D1D3DB !important;\n color: #666 !important;\n cursor: not-allowed !important;\n}\n\n/* ------------------------------------------------------------------\n No-outline (outlined) variants\n------------------------------------------------------------------ */\n.mdc-button.blue-no-outline { background-color: #fff; color: #5473E8; border: 1px solid #5473E8; }\n.mdc-button.blue-no-outline:hover { background-color: #6581EA; color:#fff; }\n.mdc-button.blue-no-outline:active { background-color: #1E46DF; color:#fff; }\n\n.mdc-button.green-no-outline { background-color: #fff; color: #37C1CE; border: 1px solid #37C1CE; }\n.mdc-button.green-no-outline:hover { background-color: #4BC7D3; color:#fff; }\n.mdc-button.green-no-outline:active { background-color: #299DA8; color:#fff; }\n\n.mdc-button.grey-no-outline { background-color: #fff; color: #383B4A; border: 1px solid #383B4A; }\n.mdc-button.grey-no-outline:hover { background-color: #4B4F62; color:#fff; }\n.mdc-button.grey-no-outline:active { background-color: #252831; color:#fff; }\n\n.mdc-button.error-no-outline { background-color: #fff; color: #E854A4; border: 1px solid #E854A4; }\n.mdc-button.error-no-outline:hover { background-color: #EF87BF; color:#fff; }\n.mdc-button.error-no-outline:active { background-color: #E22A8E; color:#fff; }\n\n/*************Button Drop down design*********/\n::ng-deep .cdk-overlay-pane {\n border-radius: 6px !important;\n box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.15) !important;\n}\n\n::ng-deep .mat-mdc-menu-panel {\n padding: 4px 0 !important;\n background-color: white !important;\n min-width: 180px !important;\n border-radius: 6px !important;\n box-shadow: none !important; /* handled by cdk-overlay-pane */\n}\n\n::ng-deep .mat-mdc-menu-item {\n font-family: 'Roboto', sans-serif;\n font-size: 14px;\n color: #333;\n padding: 12px 16px;\n border-radius: 0 !important;\n transition: background 0.2s ease-in-out;\n}\n\n::ng-deep .mat-mdc-menu-item:hover {\n background-color: #f5f5f5 !important;\n}",
|
|
414
|
+
"data": "@import url(\"https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined\");\n@import \"../styles/typography-classes.scss\";\n \n.material-icons-outlined {\n font-family: 'Material Icons Outlined';\n font-weight: normal;\n font-style: normal;\n /* These two preserve the standard Material Icons sizing/ligatures */\n font-feature-settings: 'liga';\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;\n /* everything else can stay at Angular’s defaults */\n/* Base Button Styling */\n}\n.mdc-button.btn {\n\n border-radius: 5px;\n display: flex;\n align-items: center;\n cursor: pointer;\n border: none;\n transition: background 0.2s, border 0.2s, transform 0.1s;\n\n min-width: auto !important;\n gap:8px;\n height:auto !important;\n}\n/* Button Categories primary*/ \n.mdc-button.btn-primary1 {\n background-color: #5473e8;\n color: white;\n}\n.mdc-button.btn-primary2 {\n background-color: #37c1ce;\n color: white;\n}\n.mdc-button.btn-secondary {\n background-color: #383B4A;\n color: white;\n}\n.mdc-button.btn-destructive {\n background-color: #E854A4;\n color: white;\n}\n.mdc-button.btn-gradient {\n background: linear-gradient(275deg, #5473E8 -36.22%, #37C1CE 100.04%);\n color: white;\n}\n\n/* Hover States */\n\n\n.mdc-button.btn-primary2:hover {\n background-color: #4bc7d3 !important;\n}\n\n.mdc-button.btn-primary2:active {\n background-color: #299da8 !important;\n}\n\n.mdc-button.btn-primary2:outlined {\n background-color: #fff;\n border-radius: 4px;\n border: 1px solid #37c1ce;\n}\n\n.mdc-button.btn-primary1:hover {\n background-color: #6581ea !important;\n}\n\n.mdc-button.btn-primary1:active {\n background-color: #1e46df !important;\n}\n\n.mdc-button.btn-primary1:outlined {\n background-color: #fff;\n border-radius: 4px;\n border: 1px solid #5473e8;\n}\n\n.mdc-button.btn-secondary:hover {\n background-color: #4B4F62 !important;\n }\n \n .mdc-button.btn-secondary:active {\n background-color: #252831 !important;\n }\n \n .mdc-button.btn-secondary:outlined {\n background-color: #fff;\n border-radius: 4px;\n border: 1px solid #383B4A;\n }\n\n\n .mdc-button.btn-destructive:hover {\n background-color: #EF87BF !important;\n }\n \n .mdc-button.btn-destructive:active {\n background-color: #E22A8E !important;\n }\n \n .mdc-button.btn-destructive:outlined {\n background-color: #fff;\n border-radius: 4px;\n border: 1px solid #E854A4;\n }\n\n .mdc-button.btn-gradient:hover {\n background: linear-gradient(275deg, #4A90E2 -36.22%, #2BBBAD 100.04%) !important;\n }\n \n .mdc-button.btn-gradient:active {\n background: linear-gradient(275deg, #42A5F5 -36.22%, #1E88E5 100.04%) !important;\n }\n\n \n\n\n/* Pressed States (pseudo-class for active) */\n\n\n/* Disabled State */\n.mdc-button.btn-disabled {\n border: none !important;\n background-color: #b0b0b0;\n color: #666;\n cursor: not-allowed;\n}\n\n/* Outlined State */\n.mdc-button.btn-outlined {\n background: transparent;\n border: 2px solid currentColor;\n}\n\n/* Category colours used by Storybook */\n.blue { background-color:#5473e8 !important; color:#fff; }\n.blue.btn-hover, .blue:hover { background-color:#6581ea !important; }\n.blue.btn-pressed, .blue:active { background-color:#1e46df !important; }\n\n.green { background-color:#37c1ce !important; color:#fff; }\n.green.btn-hover, .green:hover { background-color:#4bc7d3 !important; }\n.green.btn-pressed, .green:active { background-color:#299da8 !important; }\n\n.grey { background-color:#383B4A !important; color:#fff; }\n.grey.btn-hover, .grey:hover { background-color:#4B4F62 !important; }\n.grey.btn-pressed, .grey:active { background-color:#252831 !important; }\n\n.error { background-color:#E854A4 !important; color:#fff; }\n.error.btn-hover, .error:hover { background-color:#EF87BF !important; }\n.error.btn-pressed, .error:active { background-color:#E22A8E !important; }\n\n.gradient { background:linear-gradient(275deg, #5473E8 -36.22%, #37C1CE 100.04%); color:#fff; }\n.gradient.btn-hover, .gradient:hover { opacity:0.9; }\n.gradient.btn-pressed, .gradient:active { opacity:0.8; }\n\n\n/* Spacing between icon and label */\n.btn.custom-button > * + * {\n margin-left: 8px;\n}\n\n/* Fixed 20x20 icon size for label/two-icon buttons */\n.two-icon-label{\n padding:4px 12px !important;\n}\nbutton.two-icon-label .mat-icon {\n width: 20px !important;\n height: 20px !important;\n} \n\n\n/* etc. */\n@font-face {\n font-family: 'Material Icons';\n font-style: normal;\n font-weight: 400;\n src: url(https://fonts.gstatic.com/s/materialicons/v143/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2) format('woff2');\n}\n\n.material-icons {\n font-family: 'Material Icons';\n font-weight: normal;\n font-style: normal;\n font-size: 24px;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n -webkit-font-feature-settings: 'liga';\n -webkit-font-smoothing: antialiased;\n}\n\n.left-icon{\n order:0;\n}\n\n.right-icon{\n order:2;\n}\n\nmat-icon.mat-icon {\n margin: 0 !important;\n padding: 0 !important;\n}\n\n/* ------------------------------------------------------------------\n Size utility classes\n------------------------------------------------------------------ */\n\n\n\n/* New naming convention */\n.size-header { font-size: 20px; padding: 4px 12px !important; }\n.size-xs { font-size: 12px; padding: 8px 12px !important; }\n.size-sm { font-size: 14px; padding: 8px 12px !important; }\n.size-base { font-size: 14px; padding: 10px 20px !important; }\n.size-l { font-size: 16px; padding: 12px 20px !important; }\n.size-xl{ font-size: 16px; padding: 14px 24px !important; }\n/* Reuse .size-xl for xl */\n\n/* Icon sizes for new naming */\n.size-header .mat-icon { font-size:20px; }\n.size-xs .mat-icon { font-size:16px; }\n.size-sm .mat-icon, .size-base .mat-icon { font-size:16px; }\n.size-l .mat-icon, .size-xl .mat-icon { font-size:20px; }\n\n/* Adjust gap for header size */\n.btn.size-header { gap:4px !important; padding: 4px 12px !important;}\n\n/* --------------------------------------------------\n Dropdown menu custom styling\n-------------------------------------------------- */\n::ng-deep .custom-dropdown-menu.mat-mdc-menu-panel,\n::ng-deep .custom-dropdown-menu.mat-menu-panel {\n padding: 0; /* remove default padding */\n border-radius: 8px; /* rounded corners */\n box-shadow: 0 2px 6px rgba(0,0,0,0.15);\n border: 1px solid rgba(0,0,0,0.12);\n}\n::ng-deep .custom-dropdown-menu .mat-mdc-menu-content,\n::ng-deep .custom-dropdown-menu .mat-menu-content{\n padding: 0;\n}\n::ng-deep .custom-dropdown-menu .mat-mdc-menu-item,\n::ng-deep .custom-dropdown-menu .mat-menu-item{\n font-family: 'Roboto', sans-serif;\n font-size: 16px;\n line-height: 24px;\n height: 56px;\n padding: 16px 24px;\n color:#47515E;\n}\n::ng-deep .custom-dropdown-menu .mat-mdc-menu-item:hover,\n::ng-deep .custom-dropdown-menu .mat-menu-item:hover{\n background: #F5F6F7;\n}\n/* subtle divider between items */\n::ng-deep .custom-dropdown-menu .mat-mdc-menu-item + .mat-mdc-menu-item,\n::ng-deep .custom-dropdown-menu .mat-menu-item + .mat-menu-item{\n border-top: 1px solid #EAECEE;\n}\n\n/* Force white background on Angular Material menu panel */\n::ng-deep .mat-mdc-menu-panel,\n::ng-deep .mat-menu-panel,\n::ng-deep .mdc-menu-surface {\n background-color: #ffffff !important;\n --mdc-theme-surface: #ffffff !important;\n --mdc-menu-container-color: #ffffff !important;\n}\n::ng-deep .mat-mdc-menu-panel .mat-mdc-menu-content,\n::ng-deep .mat-menu-panel .mat-menu-content {\n background-color: #ffffff !important;\n}\n\n/* Ensure dropdown menu is above other elements */\n.cdk-overlay-pane{\n z-index:1000 !important;\n background:#fff !important;\n}\n::ng-deep .mat-mdc-menu-panel,\n::ng-deep .mat-menu-panel,\n::ng-deep .mdc-menu-surface,\n.cdk-overlay-pane .mat-mdc-menu-panel,\n.cdk-overlay-pane .mdc-menu-surface,\n.cdk-overlay-pane .mat-menu-panel{\n background-color:#ffffff !important;\n --mdc-theme-surface:#ffffff !important;\n --mdc-menu-container-color:#fff !important;\n}\n\n/* Make sure the Material menu panel itself is white (use ::ng-deep so rules pierce view encapsulation) */\n\n\n.mat-mdc-menu-panel,\n.mdc-menu-surface,\n.mat-menu-panel {\n --mdc-theme-surface: #ffffff !important; /* Material variable */\n background-color: #ffffff !important;\n}\n\n.cdk-overlay-pane .mat-mdc-menu-panel,\n.cdk-overlay-pane .mdc-menu-surface,\n.cdk-overlay-pane .mat-mdc-menu-panel { --mdc-menu-container-color:#fff !important; }\n\n.cdk-overlay-pane .mat-menu-panel,\n.cdk-overlay-pane .mat-mdc-menu-content,\n.cdk-overlay-pane .mat-menu-content {\n background: #fff !important;\n}\n\n\n/* Icon size helper */\n\n\n/* --------------------------------------------------\n Button types\n-------------------------------------------------- */\nbutton.icon-circle {\n width: auto !important;\n height: auto !important;\n border-radius: 50% !important;\n aspect-ratio: 1 / 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0 !important;\n min-width: 0 !important;\n justify-content: center;\n padding:6px !important;\n}\n.size-small.icon-circle { \n padding: 4px !important;\n }\n.size-medium.icon-circle { \n padding: 8px !important;\n}\n.size-base.icon-circle { \n padding: 10px !important;\n}\n.size-large.icon-circle { \n padding: 12px !important;\n}\n.size-xl.icon-circle { \n padding: 14px !important;\n}\n\n/* Circle button size overrides */\n.size-header.icon-circle { padding:4px !important; }\n.size-header.icon-circle .mat-icon { width:10px; height:10px; font-size:10px; }\n\n.size-xs.icon-circle { padding:4px !important; }\n.size-xs.icon-circle .mat-icon { font-size:12px; }\n\n.size-sm.icon-circle { padding:8px !important; }\n.size-sm.icon-circle .mat-icon { font-size:12px; }\n\n.size-base.icon-circle { padding:10px !important; }\n.size-base.icon-circle .mat-icon { font-size:14px; }\n\n.size-l.icon-circle { padding:12px !important; }\n.size-l.icon-circle .mat-icon { font-size:16px; }\n\n.size-xl.icon-circle { padding:14px !important; }\n.size-xl.icon-circle .mat-icon { font-size:16px; }\n\n/* icon-label and two-icon-label just rely on default flex behaviour */\n.icon-xs { \n /* width: 16px; height: 16px; */\n padding: 4px !important;\n }\n\n\n/* ------------------------------------------------------------------\n Color category classes (solid)\n------------------------------------------------------------------ */\n.mdc-button.blue { background-color: #5473E8; color: #fff; }\n.mdc-button.blue:hover { background-color: #6581EA; }\n.mdc-button.blue:active { background-color: #1E46DF; }\n\n.mdc-button.green { background-color: #37C1CE; color: #fff; }\n.mdc-button.green:hover { background-color: #4BC7D3; }\n.mdc-button.green:active { background-color: #299DA8; }\n\n.mdc-button.grey { background-color: #383B4A; color: #fff; }\n.mdc-button.grey:hover { background-color: #4B4F62; }\n.mdc-button.grey:active { background-color: #252831; }\n\n.mdc-button.error { background-color: #E854A4; color: #fff; }\n.mdc-button.error:hover { background-color: #EF87BF; }\n.mdc-button.error:active { background-color: #E22A8E; }\n\n.mdc-button.gradient {\n background: linear-gradient(275deg, #5473E8 -36.22%, #37C1CE 100.04%);\n color: #fff;\n}\n.mdc-button.gradient:hover {\n background: linear-gradient(0deg, rgba(250, 250, 253, 0.30) 0%, rgba(250, 250, 253, 0.30) 100%),\n linear-gradient(275deg, #2BBBAD 9.3%, #4A90E2 115.85%);\n}\n.mdc-button.gradient:active {\n background: linear-gradient(0deg, rgba(56, 59, 74, 0.50) 0%, rgba(56, 59, 74, 0.50) 100%),\n linear-gradient(275deg, #2BBBAD 9.3%, #4A90E2 115.85%);\n}\n\n.mdc-button.disabled,\n.mdc-button:disabled {\n background-color: #D1D3DB !important;\n color: #666 !important;\n cursor: not-allowed !important;\n}\n\n/* ------------------------------------------------------------------\n No-outline (outlined) variants\n------------------------------------------------------------------ */\n.mdc-button.blue-no-outline { background-color: #fff; color: #5473E8; border: 1px solid #5473E8; }\n.mdc-button.blue-no-outline:hover { background-color: #6581EA; color:#fff; }\n.mdc-button.blue-no-outline:active { background-color: #1E46DF; color:#fff; }\n\n.mdc-button.green-no-outline { background-color: #fff; color: #37C1CE; border: 1px solid #37C1CE; }\n.mdc-button.green-no-outline:hover { background-color: #4BC7D3; color:#fff; }\n.mdc-button.green-no-outline:active { background-color: #299DA8; color:#fff; }\n\n.mdc-button.grey-no-outline { background-color: #fff; color: #383B4A; border: 1px solid #383B4A; }\n.mdc-button.grey-no-outline:hover { background-color: #4B4F62; color:#fff; }\n.mdc-button.grey-no-outline:active { background-color: #252831; color:#fff; }\n\n.mdc-button.error-no-outline { background-color: #fff; color: #E854A4; border: 1px solid #E854A4; }\n.mdc-button.error-no-outline:hover { background-color: #EF87BF; color:#fff; }\n.mdc-button.error-no-outline:active { background-color: #E22A8E; color:#fff; }\n\n/*************Button Drop down design*********/\n::ng-deep .cdk-overlay-pane {\n border-radius: 6px !important;\n box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.15) !important;\n}\n\n::ng-deep .mat-mdc-menu-panel {\n padding: 4px 0 !important;\n background-color: white !important;\n min-width: 180px !important;\n border-radius: 6px !important;\n box-shadow: none !important; /* handled by cdk-overlay-pane */\n}\n\n::ng-deep .mat-mdc-menu-item {\n font-family: 'Roboto', sans-serif;\n font-size: 14px;\n color: #333;\n padding: 12px 16px;\n border-radius: 0 !important;\n transition: background 0.2s ease-in-out;\n}\n\n::ng-deep .mat-mdc-menu-item:hover {\n background-color: #f5f5f5 !important;\n}\n\n.mat-mdc-unelevated-button>.mat-icon{\n line-height:18px !important\n}",
|
|
355
415
|
"styleUrl": "./button.component.scss"
|
|
356
416
|
}
|
|
357
417
|
],
|
|
@@ -370,12 +430,12 @@
|
|
|
370
430
|
}
|
|
371
431
|
}
|
|
372
432
|
},
|
|
373
|
-
"templateData": "<!-- Regular button types -->\n<ng-container *ngIf=\"buttonType !== 'dropdown'; else dropdownTpl\">\n
|
|
433
|
+
"templateData": "<!-- Regular button types -->\n<ng-container *ngIf=\"buttonType !== 'dropdown'; else dropdownTpl\">\n <button\n mat-flat-button\n class=\"btn custom-button\" [class]=\"effectiveFontClass\"\n [ngClass]=\"{\n 'size-header': size === 'header' && !fontClass,\n 'size-xs': size === 'xs' && !fontClass,\n 'size-sm': size === 'sm' && !fontClass,\n 'size-base': size === 'base' && !fontClass,\n 'size-l': size === 'l' && !fontClass,\n 'size-xl': size === 'xl' && !fontClass,\n 'mat-raised-button': variant === 'raised',\n 'mat-flat-button': variant === 'flat',\n \n 'mat-stroked-button': variant === 'stroked',\n 'mat-fab': variant === 'fab',\n 'mat-icon-button': variant === 'icon',\n 'icon-circle': buttonType === 'icon-circle',\n 'icon-label': buttonType === 'icon-label',\n 'two-icon-label': buttonType === 'two-icon-label',\n 'blue': category === 'blue',\n 'green': category === 'green',\n 'grey': category === 'grey',\n 'error': category === 'error',\n 'gradient': category === 'gradient',\n 'blue-no-outline': category === 'blue-no-outline',\n 'green-no-outline': category === 'green-no-outline',\n 'grey-no-outline': category === 'grey-no-outline',\n 'error-no-outline': category === 'error-no-outline',\n 'btn-default': state === 'default',\n 'btn-hover': state === 'hover',\n 'btn-pressed': state === 'pressed',\n 'btn-disabled': state === 'disabled'\n }\"\n [ngStyle]=\"{ color: color }\"\n [disabled]=\"state === 'disabled'\"\n (click)=\"onClick.emit($event)\"\n (mouseenter)=\"onHover.emit($event)\"\n (mouseleave)=\"onMouseLeave.emit($event)\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.gap.px]=\"computeGap()\"\n >\n <!-- Left Icon (Only shown if leftIcon is set and not empty) -->\n <mat-icon *ngIf=\"leftIcon?.trim() as leftIconText\"\n [fontSet]=\"outlined ? 'material-icons-outlined' : 'material-icons'\"\n class=\"left-icon\">{{ leftIconText }}</mat-icon>\n <!-- Label (Only shown if iconOnly is false) -->\n <span *ngIf=\"!iconOnly\" class=\"button-label\" [ngStyle]=\"{ color: color }\">{{ label || '' }}</span>\n \n <!-- Right Icon (Only shown if rightIcon is set and not empty) -->\n <mat-icon *ngIf=\"rightIcon?.trim() as rightIconText\"\n [fontSet]=\"outlined ? 'material-icons-outlined' : 'material-icons'\"\n class=\"right-icon\">{{ rightIconText }}</mat-icon>\n </button>\n </ng-container>\n \n <!-- Dropdown button template -->\n <ng-template #dropdownTpl>\n <button\n mat-flat-button\n class=\"btn custom-button\" [class]=\"effectiveFontClass\"\n [ngClass]=\"{\n 'size-header': size === 'header' && !fontClass,\n 'size-xs': size === 'xs' && !fontClass,\n 'size-sm': size === 'sm' && !fontClass,\n 'size-base': size === 'base' && !fontClass,\n 'size-l': size === 'l' && !fontClass,\n 'size-xl': size === 'xl' && !fontClass,\n 'mat-raised-button': variant === 'raised',\n 'mat-flat-button': variant === 'flat',\n 'mat-stroked-button': variant === 'stroked',\n 'mat-fab': variant === 'fab',\n 'mat-icon-button': variant === 'icon',\n 'icon-label': true,\n 'blue': category === 'blue',\n 'green': category === 'green',\n 'grey': category === 'grey',\n 'error': category === 'error',\n 'gradient': category === 'gradient',\n 'blue-no-outline': category === 'blue-no-outline',\n 'green-no-outline': category === 'green-no-outline',\n 'grey-no-outline': category === 'grey-no-outline',\n 'error-no-outline': category === 'error-no-outline',\n 'btn-default': state === 'default',\n 'btn-hover': state === 'hover',\n 'btn-pressed': state === 'pressed',\n 'btn-disabled': state === 'disabled',\n \n }\"\n [ngStyle]=\"{ color: color }\"\n [disabled]=\"state === 'disabled'\"\n (mouseenter)=\"onHover.emit($event)\"\n (mouseleave)=\"onMouseLeave.emit($event)\"\n [style.display]=\"'inline-flex'\"\n [style.align-items]=\"'center'\"\n [style.gap.px]=\"computeGap()\"\n [matMenuTriggerFor]=\"menu\"\n >\n <!-- Left Icon (optional) -->\n <mat-icon *ngIf=\"leftIcon?.trim() as leftIconText\"\n [fontSet]=\"outlined ? 'material-icons-outlined' : 'material-icons'\"\n class=\"left-icon\">{{ leftIconText }}</mat-icon>\n <!-- Label -->\n <span *ngIf=\"!iconOnly\" class=\"button-label\" [ngStyle]=\"{ color: color }\">{{ label || '' }}</span>\n <!-- Dropdown Arrow Icon -->\n <mat-icon class=\"right-icon\">arrow_drop_down</mat-icon>\n </button>\n <!-- Mat Menu -->\n <mat-menu #menu=\"matMenu\" panelClass=\"custom-dropdown-menu\">\n <button mat-menu-item *ngFor=\"let opt of dropdownOptions\" (click)=\"selectOption(opt)\" [ngClass]=\"effectiveFontClass\">\n {{ opt.label || opt }}\n </button>\n </mat-menu>\n </ng-template>"
|
|
374
434
|
},
|
|
375
435
|
{
|
|
376
436
|
"name": "InputComponent",
|
|
377
437
|
"id": "component-InputComponent-02d3f99d30f84b0b6339a285279e183f5ec7fbafacfbbc39cfca6afe2338d0a53cd25ee001b8c9c907893bb9ed2bcab5c781f83a299c6cf18f197c47534301f6",
|
|
378
|
-
"file": "src/
|
|
438
|
+
"file": "projects/allsorter-lib/src/lib/input/input.component.ts",
|
|
379
439
|
"encapsulation": [],
|
|
380
440
|
"entryComponents": [],
|
|
381
441
|
"inputs": [],
|
|
@@ -884,13 +944,13 @@
|
|
|
884
944
|
},
|
|
885
945
|
{
|
|
886
946
|
"name": "ButtonModule",
|
|
887
|
-
"id": "module-ButtonModule-
|
|
947
|
+
"id": "module-ButtonModule-df66c621e67fe548f0a7f8dff7a2ec19bb2676f9e884f985797c4acf62256cd295a4776e497d7c8f6c4c138d96b105fae74a49fac57da601d03e85d2f74d5329",
|
|
888
948
|
"description": "",
|
|
889
949
|
"deprecationMessage": "",
|
|
890
950
|
"deprecated": false,
|
|
891
|
-
"file": "src/
|
|
951
|
+
"file": "projects/allsorter-lib/src/lib/button/button.module.ts",
|
|
892
952
|
"methods": [],
|
|
893
|
-
"sourceCode": "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonComponent } from './button.component';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@NgModule({\n declarations: [], // ✅ Ensure ButtonComponent is declared\n exports: [], // ✅ Export if used in other modules\n imports: [CommonModule, ButtonComponent], // ✅ Required for Angular directives like *ngIf, *ngFor\n})\nexport class ButtonModule {\n constructor(\n private iconRegistry: MatIconRegistry,\n private sanitizer: DomSanitizer\n ) {\n // register the CSS class alias so <mat-icon> knows about it…\n this.iconRegistry.registerFontClassAlias(\n 'material-symbols-outlined',\n 'material-symbols-outlined'\n );\n }\n}",
|
|
953
|
+
"sourceCode": "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonComponent } from './button.component';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@NgModule({\n declarations: [], // ✅ Ensure ButtonComponent is declared\n exports: [], // ✅ Export if used in other modules\n imports: [CommonModule, ButtonComponent], // ✅ Required for Angular directives like *ngIf, *ngFor\n})\nexport class ButtonModule {\n constructor(\n private iconRegistry: MatIconRegistry,\n private sanitizer: DomSanitizer\n ) {\n // register the CSS class alias so <mat-icon> knows about it…\n this.iconRegistry.registerFontClassAlias(\n 'material-symbols-outlined',\n 'material-symbols-outlined'\n );\n }\n}\n",
|
|
894
954
|
"children": [
|
|
895
955
|
{
|
|
896
956
|
"type": "providers",
|
|
@@ -928,7 +988,7 @@
|
|
|
928
988
|
"description": "",
|
|
929
989
|
"deprecationMessage": "",
|
|
930
990
|
"deprecated": false,
|
|
931
|
-
"file": "src/
|
|
991
|
+
"file": "projects/allsorter-lib/src/lib/input/input.module.ts",
|
|
932
992
|
"methods": [],
|
|
933
993
|
"sourceCode": "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputComponent } from './input.component';\n\n@NgModule({\n imports: [CommonModule, InputComponent],\n exports: [InputComponent],\n})\nexport class InputModule { }\n",
|
|
934
994
|
"children": [
|
|
@@ -969,6 +1029,16 @@
|
|
|
969
1029
|
],
|
|
970
1030
|
"miscellaneous": {
|
|
971
1031
|
"variables": [
|
|
1032
|
+
{
|
|
1033
|
+
"name": "Default",
|
|
1034
|
+
"ctype": "miscellaneous",
|
|
1035
|
+
"subtype": "variable",
|
|
1036
|
+
"file": "projects/allsorter-lib/src/lib/button/stories/button-gallery.stories.ts",
|
|
1037
|
+
"deprecated": false,
|
|
1038
|
+
"deprecationMessage": "",
|
|
1039
|
+
"type": "Story",
|
|
1040
|
+
"defaultValue": "{\n name: 'Default',\n render: (args: any) => ({\n props: {\n ...args,\n leftIcon: args.showLeftIcon ? args.leftIcon : '',\n rightIcon: args.showRightIcon ? args.rightIcon : '',\n },\n template: `\n <al-button\n [category]=\"category\"\n [buttonType]=\"buttonType\"\n [label]=\"label\"\n [leftIcon]=\"leftIcon\"\n [rightIcon]=\"rightIcon\"\n [size]=\"size\"\n [outlined]=\"outlined\"\n [color]=\"color\"\n [dropdownOptions]=\"dropdownOptions\"\n ></al-button>\n `,\n }),\n}"
|
|
1041
|
+
},
|
|
972
1042
|
{
|
|
973
1043
|
"name": "environment",
|
|
974
1044
|
"ctype": "miscellaneous",
|
|
@@ -988,12 +1058,179 @@
|
|
|
988
1058
|
"deprecationMessage": "",
|
|
989
1059
|
"type": "object",
|
|
990
1060
|
"defaultValue": "{\n production: false,\n}"
|
|
1061
|
+
},
|
|
1062
|
+
{
|
|
1063
|
+
"name": "FullMatrix",
|
|
1064
|
+
"ctype": "miscellaneous",
|
|
1065
|
+
"subtype": "variable",
|
|
1066
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-gallery.stories.ts",
|
|
1067
|
+
"deprecated": false,
|
|
1068
|
+
"deprecationMessage": "",
|
|
1069
|
+
"type": "Story",
|
|
1070
|
+
"defaultValue": "{\n render: () => ({\n props: {\n categories: [\n { name: 'Primary Input', value: 'primary' },\n { name: 'Disabled State', value: 'disabled' },\n { name: 'Success State', value: 'success' },\n { name: 'Warn State', value: 'warn' },\n { name: 'Plain Input', value: 'plain' }\n ],\n sizes: ['header', 'xs', 'small', 'base', 'large'],\n options: ['Option 1', 'Option 2', 'Option 3'],\n },\n template: `\n <div style=\"display: flex; flex-direction: column; gap: 48px;\">\n <div *ngFor=\"let size of sizes\">\n <h3 style=\"margin-bottom: 24px; font-size: 20px; font-weight: 600;\">{{ size | titlecase }} Input Fields</h3>\n <div style=\"display: flex; flex-direction: row; gap: 24px; align-items: flex-start;\">\n <div *ngFor=\"let inputType of categories\">\n <h4 style=\"margin-bottom: 16px; font-size: 16px; font-weight: 500;\">{{ inputType.name }}</h4>\n <!-- Default state -->\n <al-input\n [label]=\"'Placeholder text'\"\n [placeholder]=\"'Placeholder'\"\n [value]=\"''\"\n [type]=\"'text'\"\n [disabled]=\"false\"\n [helperText]=\"false\"\n [helperTextLabel]=\"'Helper text'\"\n [leftIcon]=\"'person'\"\n [rightIcon]=\"''\"\n [size]=\"size\"\n [inputTypes]=\"inputType.value\"\n [dropDown]=\"size === 'large'\"\n [options]=\"options\"\n ></al-input>\n </div>\n </div>\n </div>\n </div>\n `,\n }),\n name: 'Full Variation Matrix',\n}"
|
|
1071
|
+
},
|
|
1072
|
+
{
|
|
1073
|
+
"name": "Gallery",
|
|
1074
|
+
"ctype": "miscellaneous",
|
|
1075
|
+
"subtype": "variable",
|
|
1076
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-gallery.stories.ts",
|
|
1077
|
+
"deprecated": false,
|
|
1078
|
+
"deprecationMessage": "",
|
|
1079
|
+
"type": "Story",
|
|
1080
|
+
"defaultValue": "{\n name: 'Gallery',\n render: (args: any) => ({\n props: args,\n template: `\n <al-input\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n [formControlName]=\"formControlName\"\n [type]=\"type\"\n [disabled]=\"disabled\"\n [helperText]=\"helperText\"\n [helperTextLabel]=\"helperTextLabel\"\n [leftIcon]=\"leftIcon\"\n [rightIcon]=\"rightIcon\"\n [dropDown]=\"dropDown\"\n [options]=\"options\"\n [size]=\"size\"\n [inputTypes]=\"inputTypes\"\n (valueChange)=\"value = $event\"\n ></al-input>\n `,\n }),\n}"
|
|
1081
|
+
},
|
|
1082
|
+
{
|
|
1083
|
+
"name": "meta",
|
|
1084
|
+
"ctype": "miscellaneous",
|
|
1085
|
+
"subtype": "variable",
|
|
1086
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-gallery.stories.ts",
|
|
1087
|
+
"deprecated": false,
|
|
1088
|
+
"deprecationMessage": "",
|
|
1089
|
+
"type": "Meta<InputComponent>",
|
|
1090
|
+
"defaultValue": "{\n tags: ['autodocs'],\n title: 'Components/Input/Gallery',\n component: InputComponent,\n argTypes: {\n label: { control: 'text' },\n placeholder: { control: 'text' },\n value: { control: 'text' },\n formControlName: { control: 'text' },\n type: {\n control: 'select',\n options: ['text', 'email', 'number', 'password', 'tel', 'url', 'date'],\n },\n disabled: { control: 'boolean' },\n helperText: { control: 'boolean' },\n helperTextLabel: { control: 'text' },\n leftIcon: { control: 'text' },\n rightIcon: { control: 'text' },\n dropDown: { control: 'boolean' },\n options: { control: 'object' },\n size: {\n control: 'radio',\n options: ['header', 'xs', 'small', 'base', 'large'],\n },\n inputTypes: {\n control: 'radio',\n options: ['primary', 'success', 'warn', 'disabled', 'plain'],\n },\n },\n args: {\n label: 'Placeholder text',\n placeholder: 'Type here...',\n value: '',\n formControlName: '',\n type: 'text',\n disabled: false,\n helperText: false,\n helperTextLabel: '',\n leftIcon: 'person',\n rightIcon: 'expand_more',\n dropDown: false,\n options: ['Option 1', 'Option 2', 'Option 3'],\n size: 'base',\n inputTypes: 'primary',\n },\n parameters: { controls: { expanded: true } },\n}"
|
|
1091
|
+
},
|
|
1092
|
+
{
|
|
1093
|
+
"name": "meta",
|
|
1094
|
+
"ctype": "miscellaneous",
|
|
1095
|
+
"subtype": "variable",
|
|
1096
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-playground.stories.ts",
|
|
1097
|
+
"deprecated": false,
|
|
1098
|
+
"deprecationMessage": "",
|
|
1099
|
+
"type": "Meta<InputComponent>",
|
|
1100
|
+
"defaultValue": "{\n title: 'Components/Input/Playground',\n component: InputComponent,\n argTypes: {\n label: { control: 'text' },\n placeholder: { control: 'text' },\n value: { control: 'text' },\n type: {\n control: 'select',\n options: ['text', 'email', 'number', 'password', 'tel', 'url', 'date'],\n },\n disabled: { control: 'boolean' },\n helperText: { control: 'boolean' },\n helperTextLabel: { control: 'text' },\n leftIcon: { control: 'text' },\n rightIcon: { control: 'text' },\n dropDown: { control: 'boolean' },\n options: { control: 'object' },\n size: {\n control: 'radio',\n options: ['xs', 'small', 'base', 'large', 'header'],\n },\n inputTypes: {\n control: 'select',\n options: ['primary', 'success', 'warn', 'disabled', 'plain'],\n },\n noBorder: { control: 'boolean' },\n },\n args: {\n label: 'Label',\n placeholder: 'Placeholder',\n value: '',\n type: 'text',\n disabled: false,\n helperText: false,\n helperTextLabel: '',\n leftIcon: '',\n rightIcon: '',\n dropDown: false,\n options: ['Option 1', 'Option 2', 'Option 3'],\n size: 'base',\n inputTypes: 'primary',\n noBorder: false,\n },\n}"
|
|
1101
|
+
},
|
|
1102
|
+
{
|
|
1103
|
+
"name": "meta",
|
|
1104
|
+
"ctype": "miscellaneous",
|
|
1105
|
+
"subtype": "variable",
|
|
1106
|
+
"file": "projects/allsorter-lib/src/lib/button/stories/button-gallery.stories.ts",
|
|
1107
|
+
"deprecated": false,
|
|
1108
|
+
"deprecationMessage": "",
|
|
1109
|
+
"type": "Meta<ButtonComponent>",
|
|
1110
|
+
"defaultValue": "{\n title: 'Components/Button/Gallery',\n component: ButtonComponent,\n tags: ['autodocs'],\n argTypes: {\n label: { control: 'text' },\n category: {\n control: 'select',\n options: [\n 'blue', 'green', 'grey', 'error', 'gradient',\n 'blue-no-outline', 'green-no-outline', 'grey-no-outline', 'error-no-outline',\n ],\n },\n size: {\n control: 'select',\n options: ['header', 'xs', 'sm', 'base', 'l', 'xl'],\n },\n buttonType: {\n control: 'select',\n options: ['icon-circle', 'icon-label', 'two-icon-label', 'dropdown'],\n },\n outlined: { control: 'boolean' },\n showLeftIcon: { control: 'boolean' },\n showRightIcon: { control: 'boolean' },\n leftIcon: { control: 'text' },\n rightIcon: { control: 'text' },\n dropdownOptions: { control: 'object' },\n color: { control: 'text' },\n },\n args: {\n size: 'sm',\n category: 'blue',\n outlined: false,\n buttonType: 'icon-label',\n label: 'Button text',\n showLeftIcon: true,\n showRightIcon: true,\n leftIcon: 'circle',\n rightIcon: 'circle',\n dropdownOptions: [\n { label: 'Create a merge commit', value: 'merge' },\n { label: 'Squash and merge', value: 'squash' },\n { label: 'Rebase and merge', value: 'rebase' },\n ],\n },\n parameters: { controls: { expanded: true } },\n}"
|
|
1111
|
+
},
|
|
1112
|
+
{
|
|
1113
|
+
"name": "meta",
|
|
1114
|
+
"ctype": "miscellaneous",
|
|
1115
|
+
"subtype": "variable",
|
|
1116
|
+
"file": "projects/allsorter-lib/src/lib/button/stories/button-playground.stories.ts",
|
|
1117
|
+
"deprecated": false,
|
|
1118
|
+
"deprecationMessage": "",
|
|
1119
|
+
"type": "Meta<ButtonComponent>",
|
|
1120
|
+
"defaultValue": "{\n title: 'Components/Button/Playground',\n component: ButtonComponent,\n argTypes: {\n label: { control: 'text' },\n category: {\n control: 'select',\n options: [\n 'blue', 'green', 'grey', 'error', 'gradient',\n 'blue-no-outline', 'green-no-outline', 'grey-no-outline', 'error-no-outline',\n ],\n },\n\n buttonType: {\n control: 'select',\n options: ['icon-circle', 'icon-label', 'two-icon-label', 'dropdown'],\n },\n size: {\n control: 'select',\n options: ['header','xs','sm','base','l','xl'],\n },\n leftIcon: {\n control: 'text',\n if: { arg: 'showLeftIcon', truthy: true },\n ifDisabled: { arg: 'showLeftIcon', truthy: false },\n },\n rightIcon: {\n control: 'text',\n if: { arg: 'showRightIcon', truthy: true },\n ifDisabled: { arg: 'showRightIcon', truthy: false },\n },\n outlined: { control: 'boolean' },\n iconOnly: { control: 'boolean' },\n showLeftIcon: { control: 'boolean' },\n showRightIcon: { control: 'boolean' },\n dropdownOptions: { control: 'object' },\n },\n args: {\n size: 'sm',\n category: 'blue',\n outlined: true,\n buttonType: 'icon-label',\n label: 'Button text',\n leftIcon: 'add',\n rightIcon: 'add',\n iconOnly: false,\n showLeftIcon: true,\n showRightIcon: true,\n dropdownOptions: [\n { label: 'Create a merge commit', value: 'merge' },\n { label: 'Squash and merge', value: 'squash' },\n { label: 'Rebase and merge', value: 'rebase' },\n ],\n },\n}"
|
|
1121
|
+
},
|
|
1122
|
+
{
|
|
1123
|
+
"name": "Playground",
|
|
1124
|
+
"ctype": "miscellaneous",
|
|
1125
|
+
"subtype": "variable",
|
|
1126
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-playground.stories.ts",
|
|
1127
|
+
"deprecated": false,
|
|
1128
|
+
"deprecationMessage": "",
|
|
1129
|
+
"type": "Story",
|
|
1130
|
+
"defaultValue": "{\n render: (args: any) => ({\n props: args,\n template: `\n <al-input\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n [type]=\"type\"\n [disabled]=\"disabled\"\n [helperText]=\"helperText\"\n [helperTextLabel]=\"helperTextLabel\"\n [icon]=\"icon\"\n [rightIcon]=\"rightIcon\"\n [dropDown]=\"dropDown\"\n [options]=\"options\"\n [size]=\"size\"\n [inputTypes]=\"inputTypes\"\n [noBorder]=\"noBorder\"\n (valueChange)=\"value = $event\"\n ></al-input>\n `,\n }),\n name: 'Playground',\n}"
|
|
1131
|
+
},
|
|
1132
|
+
{
|
|
1133
|
+
"name": "ReactiveFormsExample",
|
|
1134
|
+
"ctype": "miscellaneous",
|
|
1135
|
+
"subtype": "variable",
|
|
1136
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-playground.stories.ts",
|
|
1137
|
+
"deprecated": false,
|
|
1138
|
+
"deprecationMessage": "",
|
|
1139
|
+
"type": "Story",
|
|
1140
|
+
"defaultValue": "{\n render: (args: any) => {\n const fb = new FormBuilder();\n const form = fb.group({\n courseTitle: [''],\n courseDescription: [''],\n courseType: ['']\n });\n\n return {\n props: { ...args, form },\n template: `\n <form [formGroup]=\"form\">\n <div style=\"display: flex; flex-direction: column; gap: 20px;\">\n <al-input\n label=\"Course Title\"\n placeholder=\"Course Title\"\n formControlName=\"courseTitle\"\n [leftIcon]=\"leftIcon\"\n [size]=\"size\"\n [inputTypes]=\"inputTypes\"\n ></al-input>\n\n <al-input\n label=\"Course Description\"\n placeholder=\"Enter course description\"\n formControlName=\"courseDescription\"\n [leftIcon]=\"'description'\"\n [size]=\"size\"\n [inputTypes]=\"inputTypes\"\n ></al-input>\n\n <al-input\n label=\"Course Type\"\n placeholder=\"Select course type\"\n formControlName=\"courseType\"\n [dropDown]=\"true\"\n [options]=\"['Online', 'In-Person', 'Hybrid']\"\n [leftIcon]=\"'category'\"\n [rightIcon]=\"'expand_more'\"\n [size]=\"size\"\n [inputTypes]=\"inputTypes\"\n ></al-input>\n </div>\n\n <div style=\"margin-top: 20px; padding: 10px; background: #f5f5f5; border-radius: 4px;\">\n <strong>Form Values:</strong>\n <pre>{{ form.value | json }}</pre>\n </div>\n </form>\n `,\n imports: [ReactiveFormsModule]\n };\n },\n name: 'Reactive Forms Example',\n}"
|
|
1141
|
+
},
|
|
1142
|
+
{
|
|
1143
|
+
"name": "Variation",
|
|
1144
|
+
"ctype": "miscellaneous",
|
|
1145
|
+
"subtype": "variable",
|
|
1146
|
+
"file": "projects/allsorter-lib/src/lib/button/stories/button-gallery.stories.ts",
|
|
1147
|
+
"deprecated": false,
|
|
1148
|
+
"deprecationMessage": "",
|
|
1149
|
+
"type": "Story",
|
|
1150
|
+
"defaultValue": "{\n name: 'Variation',\n args: {\n category: 'blue',\n buttonType: 'icon-label',\n label: 'Button text',\n leftIcon: 'circle',\n rightIcon: 'circle',\n outlined: false,\n dropdownOptions: [\n { label: 'Create a merge commit', value: 'merge' },\n { label: 'Squash and merge', value: 'squash' },\n { label: 'Rebase and merge', value: 'rebase' },\n ],\n },\n argTypes: {\n category: {\n control: 'select',\n options: [\n 'blue', 'green', 'grey', 'error', 'gradient',\n 'blue-no-outline', 'green-no-outline', 'grey-no-outline', 'error-no-outline',\n ],\n },\n buttonType: {\n control: 'select',\n options: ['icon-label', 'two-icon-label', 'dropdown', 'icon-circle'],\n },\n },\n parameters: {\n docs: { disable: true }\n },\n render: (args: any) => ({\n props: {\n ...args,\n sizes: ['header', 'xs', 'sm', 'base', 'l', 'xl'],\n circleSizes: ['xs', 'sm', 'base', 'l', 'xl'],\n },\n template: `\n <div style=\"display: flex; flex-direction: column; gap: 24px;\">\n <div>\n <div style=\"font-weight: bold; margin-bottom: 8px;\">All Sizes ({{ category }}, {{ buttonType }})</div>\n <div style=\"display: flex; align-items: center; gap: 8px;\">\n <ng-container *ngFor=\"let sz of sizes\">\n <al-button\n [category]=\"category\"\n [buttonType]=\"buttonType\"\n [label]=\"sz === 'header' ? '' : label\"\n [leftIcon]=\"leftIcon\"\n [rightIcon]=\"rightIcon\"\n [size]=\"sz\"\n [outlined]=\"outlined\"\n [dropdownOptions]=\"dropdownOptions\"\n style=\"margin-right: 8px;\"\n ></al-button>\n </ng-container>\n </div>\n </div>\n <hr />\n <div>\n <div style=\"font-weight: bold; margin-bottom: 8px;\">Circular Buttons (icon-circle)</div>\n <div style=\"display: flex; align-items: center; gap: 8px;\">\n <ng-container *ngFor=\"let sz of circleSizes\">\n <al-button\n [category]=\"category\"\n [buttonType]=\"'icon-circle'\"\n [leftIcon]=\"'add'\"\n [size]=\"sz\"\n [outlined]=\"outlined\"\n style=\"margin-right: 8px;\"\n ></al-button>\n </ng-container>\n </div>\n </div>\n </div>\n `,\n }),\n}"
|
|
991
1151
|
}
|
|
992
1152
|
],
|
|
993
1153
|
"functions": [],
|
|
994
|
-
"typealiases": [
|
|
1154
|
+
"typealiases": [
|
|
1155
|
+
{
|
|
1156
|
+
"name": "Story",
|
|
1157
|
+
"ctype": "miscellaneous",
|
|
1158
|
+
"subtype": "typealias",
|
|
1159
|
+
"rawtype": "StoryObj<InputComponent>",
|
|
1160
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-gallery.stories.ts",
|
|
1161
|
+
"deprecated": false,
|
|
1162
|
+
"deprecationMessage": "",
|
|
1163
|
+
"description": "",
|
|
1164
|
+
"kind": 183
|
|
1165
|
+
},
|
|
1166
|
+
{
|
|
1167
|
+
"name": "Story",
|
|
1168
|
+
"ctype": "miscellaneous",
|
|
1169
|
+
"subtype": "typealias",
|
|
1170
|
+
"rawtype": "StoryObj<InputComponent>",
|
|
1171
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-playground.stories.ts",
|
|
1172
|
+
"deprecated": false,
|
|
1173
|
+
"deprecationMessage": "",
|
|
1174
|
+
"description": "",
|
|
1175
|
+
"kind": 183
|
|
1176
|
+
},
|
|
1177
|
+
{
|
|
1178
|
+
"name": "Story",
|
|
1179
|
+
"ctype": "miscellaneous",
|
|
1180
|
+
"subtype": "typealias",
|
|
1181
|
+
"rawtype": "StoryObj<ButtonComponent>",
|
|
1182
|
+
"file": "projects/allsorter-lib/src/lib/button/stories/button-gallery.stories.ts",
|
|
1183
|
+
"deprecated": false,
|
|
1184
|
+
"deprecationMessage": "",
|
|
1185
|
+
"description": "",
|
|
1186
|
+
"kind": 183
|
|
1187
|
+
},
|
|
1188
|
+
{
|
|
1189
|
+
"name": "Story",
|
|
1190
|
+
"ctype": "miscellaneous",
|
|
1191
|
+
"subtype": "typealias",
|
|
1192
|
+
"rawtype": "StoryObj<ButtonComponent>",
|
|
1193
|
+
"file": "projects/allsorter-lib/src/lib/button/stories/button-playground.stories.ts",
|
|
1194
|
+
"deprecated": false,
|
|
1195
|
+
"deprecationMessage": "",
|
|
1196
|
+
"description": "",
|
|
1197
|
+
"kind": 183
|
|
1198
|
+
}
|
|
1199
|
+
],
|
|
995
1200
|
"enumerations": [],
|
|
996
1201
|
"groupedVariables": {
|
|
1202
|
+
"projects/allsorter-lib/src/lib/button/stories/button-gallery.stories.ts": [
|
|
1203
|
+
{
|
|
1204
|
+
"name": "Default",
|
|
1205
|
+
"ctype": "miscellaneous",
|
|
1206
|
+
"subtype": "variable",
|
|
1207
|
+
"file": "projects/allsorter-lib/src/lib/button/stories/button-gallery.stories.ts",
|
|
1208
|
+
"deprecated": false,
|
|
1209
|
+
"deprecationMessage": "",
|
|
1210
|
+
"type": "Story",
|
|
1211
|
+
"defaultValue": "{\n name: 'Default',\n render: (args: any) => ({\n props: {\n ...args,\n leftIcon: args.showLeftIcon ? args.leftIcon : '',\n rightIcon: args.showRightIcon ? args.rightIcon : '',\n },\n template: `\n <al-button\n [category]=\"category\"\n [buttonType]=\"buttonType\"\n [label]=\"label\"\n [leftIcon]=\"leftIcon\"\n [rightIcon]=\"rightIcon\"\n [size]=\"size\"\n [outlined]=\"outlined\"\n [color]=\"color\"\n [dropdownOptions]=\"dropdownOptions\"\n ></al-button>\n `,\n }),\n}"
|
|
1212
|
+
},
|
|
1213
|
+
{
|
|
1214
|
+
"name": "meta",
|
|
1215
|
+
"ctype": "miscellaneous",
|
|
1216
|
+
"subtype": "variable",
|
|
1217
|
+
"file": "projects/allsorter-lib/src/lib/button/stories/button-gallery.stories.ts",
|
|
1218
|
+
"deprecated": false,
|
|
1219
|
+
"deprecationMessage": "",
|
|
1220
|
+
"type": "Meta<ButtonComponent>",
|
|
1221
|
+
"defaultValue": "{\n title: 'Components/Button/Gallery',\n component: ButtonComponent,\n tags: ['autodocs'],\n argTypes: {\n label: { control: 'text' },\n category: {\n control: 'select',\n options: [\n 'blue', 'green', 'grey', 'error', 'gradient',\n 'blue-no-outline', 'green-no-outline', 'grey-no-outline', 'error-no-outline',\n ],\n },\n size: {\n control: 'select',\n options: ['header', 'xs', 'sm', 'base', 'l', 'xl'],\n },\n buttonType: {\n control: 'select',\n options: ['icon-circle', 'icon-label', 'two-icon-label', 'dropdown'],\n },\n outlined: { control: 'boolean' },\n showLeftIcon: { control: 'boolean' },\n showRightIcon: { control: 'boolean' },\n leftIcon: { control: 'text' },\n rightIcon: { control: 'text' },\n dropdownOptions: { control: 'object' },\n color: { control: 'text' },\n },\n args: {\n size: 'sm',\n category: 'blue',\n outlined: false,\n buttonType: 'icon-label',\n label: 'Button text',\n showLeftIcon: true,\n showRightIcon: true,\n leftIcon: 'circle',\n rightIcon: 'circle',\n dropdownOptions: [\n { label: 'Create a merge commit', value: 'merge' },\n { label: 'Squash and merge', value: 'squash' },\n { label: 'Rebase and merge', value: 'rebase' },\n ],\n },\n parameters: { controls: { expanded: true } },\n}"
|
|
1222
|
+
},
|
|
1223
|
+
{
|
|
1224
|
+
"name": "Variation",
|
|
1225
|
+
"ctype": "miscellaneous",
|
|
1226
|
+
"subtype": "variable",
|
|
1227
|
+
"file": "projects/allsorter-lib/src/lib/button/stories/button-gallery.stories.ts",
|
|
1228
|
+
"deprecated": false,
|
|
1229
|
+
"deprecationMessage": "",
|
|
1230
|
+
"type": "Story",
|
|
1231
|
+
"defaultValue": "{\n name: 'Variation',\n args: {\n category: 'blue',\n buttonType: 'icon-label',\n label: 'Button text',\n leftIcon: 'circle',\n rightIcon: 'circle',\n outlined: false,\n dropdownOptions: [\n { label: 'Create a merge commit', value: 'merge' },\n { label: 'Squash and merge', value: 'squash' },\n { label: 'Rebase and merge', value: 'rebase' },\n ],\n },\n argTypes: {\n category: {\n control: 'select',\n options: [\n 'blue', 'green', 'grey', 'error', 'gradient',\n 'blue-no-outline', 'green-no-outline', 'grey-no-outline', 'error-no-outline',\n ],\n },\n buttonType: {\n control: 'select',\n options: ['icon-label', 'two-icon-label', 'dropdown', 'icon-circle'],\n },\n },\n parameters: {\n docs: { disable: true }\n },\n render: (args: any) => ({\n props: {\n ...args,\n sizes: ['header', 'xs', 'sm', 'base', 'l', 'xl'],\n circleSizes: ['xs', 'sm', 'base', 'l', 'xl'],\n },\n template: `\n <div style=\"display: flex; flex-direction: column; gap: 24px;\">\n <div>\n <div style=\"font-weight: bold; margin-bottom: 8px;\">All Sizes ({{ category }}, {{ buttonType }})</div>\n <div style=\"display: flex; align-items: center; gap: 8px;\">\n <ng-container *ngFor=\"let sz of sizes\">\n <al-button\n [category]=\"category\"\n [buttonType]=\"buttonType\"\n [label]=\"sz === 'header' ? '' : label\"\n [leftIcon]=\"leftIcon\"\n [rightIcon]=\"rightIcon\"\n [size]=\"sz\"\n [outlined]=\"outlined\"\n [dropdownOptions]=\"dropdownOptions\"\n style=\"margin-right: 8px;\"\n ></al-button>\n </ng-container>\n </div>\n </div>\n <hr />\n <div>\n <div style=\"font-weight: bold; margin-bottom: 8px;\">Circular Buttons (icon-circle)</div>\n <div style=\"display: flex; align-items: center; gap: 8px;\">\n <ng-container *ngFor=\"let sz of circleSizes\">\n <al-button\n [category]=\"category\"\n [buttonType]=\"'icon-circle'\"\n [leftIcon]=\"'add'\"\n [size]=\"sz\"\n [outlined]=\"outlined\"\n style=\"margin-right: 8px;\"\n ></al-button>\n </ng-container>\n </div>\n </div>\n </div>\n `,\n }),\n}"
|
|
1232
|
+
}
|
|
1233
|
+
],
|
|
997
1234
|
"src/environments/environment.prod.ts": [
|
|
998
1235
|
{
|
|
999
1236
|
"name": "environment",
|
|
@@ -1017,28 +1254,166 @@
|
|
|
1017
1254
|
"type": "object",
|
|
1018
1255
|
"defaultValue": "{\n production: false,\n}"
|
|
1019
1256
|
}
|
|
1257
|
+
],
|
|
1258
|
+
"projects/allsorter-lib/src/lib/input/stories/input-gallery.stories.ts": [
|
|
1259
|
+
{
|
|
1260
|
+
"name": "FullMatrix",
|
|
1261
|
+
"ctype": "miscellaneous",
|
|
1262
|
+
"subtype": "variable",
|
|
1263
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-gallery.stories.ts",
|
|
1264
|
+
"deprecated": false,
|
|
1265
|
+
"deprecationMessage": "",
|
|
1266
|
+
"type": "Story",
|
|
1267
|
+
"defaultValue": "{\n render: () => ({\n props: {\n categories: [\n { name: 'Primary Input', value: 'primary' },\n { name: 'Disabled State', value: 'disabled' },\n { name: 'Success State', value: 'success' },\n { name: 'Warn State', value: 'warn' },\n { name: 'Plain Input', value: 'plain' }\n ],\n sizes: ['header', 'xs', 'small', 'base', 'large'],\n options: ['Option 1', 'Option 2', 'Option 3'],\n },\n template: `\n <div style=\"display: flex; flex-direction: column; gap: 48px;\">\n <div *ngFor=\"let size of sizes\">\n <h3 style=\"margin-bottom: 24px; font-size: 20px; font-weight: 600;\">{{ size | titlecase }} Input Fields</h3>\n <div style=\"display: flex; flex-direction: row; gap: 24px; align-items: flex-start;\">\n <div *ngFor=\"let inputType of categories\">\n <h4 style=\"margin-bottom: 16px; font-size: 16px; font-weight: 500;\">{{ inputType.name }}</h4>\n <!-- Default state -->\n <al-input\n [label]=\"'Placeholder text'\"\n [placeholder]=\"'Placeholder'\"\n [value]=\"''\"\n [type]=\"'text'\"\n [disabled]=\"false\"\n [helperText]=\"false\"\n [helperTextLabel]=\"'Helper text'\"\n [leftIcon]=\"'person'\"\n [rightIcon]=\"''\"\n [size]=\"size\"\n [inputTypes]=\"inputType.value\"\n [dropDown]=\"size === 'large'\"\n [options]=\"options\"\n ></al-input>\n </div>\n </div>\n </div>\n </div>\n `,\n }),\n name: 'Full Variation Matrix',\n}"
|
|
1268
|
+
},
|
|
1269
|
+
{
|
|
1270
|
+
"name": "Gallery",
|
|
1271
|
+
"ctype": "miscellaneous",
|
|
1272
|
+
"subtype": "variable",
|
|
1273
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-gallery.stories.ts",
|
|
1274
|
+
"deprecated": false,
|
|
1275
|
+
"deprecationMessage": "",
|
|
1276
|
+
"type": "Story",
|
|
1277
|
+
"defaultValue": "{\n name: 'Gallery',\n render: (args: any) => ({\n props: args,\n template: `\n <al-input\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n [formControlName]=\"formControlName\"\n [type]=\"type\"\n [disabled]=\"disabled\"\n [helperText]=\"helperText\"\n [helperTextLabel]=\"helperTextLabel\"\n [leftIcon]=\"leftIcon\"\n [rightIcon]=\"rightIcon\"\n [dropDown]=\"dropDown\"\n [options]=\"options\"\n [size]=\"size\"\n [inputTypes]=\"inputTypes\"\n (valueChange)=\"value = $event\"\n ></al-input>\n `,\n }),\n}"
|
|
1278
|
+
},
|
|
1279
|
+
{
|
|
1280
|
+
"name": "meta",
|
|
1281
|
+
"ctype": "miscellaneous",
|
|
1282
|
+
"subtype": "variable",
|
|
1283
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-gallery.stories.ts",
|
|
1284
|
+
"deprecated": false,
|
|
1285
|
+
"deprecationMessage": "",
|
|
1286
|
+
"type": "Meta<InputComponent>",
|
|
1287
|
+
"defaultValue": "{\n tags: ['autodocs'],\n title: 'Components/Input/Gallery',\n component: InputComponent,\n argTypes: {\n label: { control: 'text' },\n placeholder: { control: 'text' },\n value: { control: 'text' },\n formControlName: { control: 'text' },\n type: {\n control: 'select',\n options: ['text', 'email', 'number', 'password', 'tel', 'url', 'date'],\n },\n disabled: { control: 'boolean' },\n helperText: { control: 'boolean' },\n helperTextLabel: { control: 'text' },\n leftIcon: { control: 'text' },\n rightIcon: { control: 'text' },\n dropDown: { control: 'boolean' },\n options: { control: 'object' },\n size: {\n control: 'radio',\n options: ['header', 'xs', 'small', 'base', 'large'],\n },\n inputTypes: {\n control: 'radio',\n options: ['primary', 'success', 'warn', 'disabled', 'plain'],\n },\n },\n args: {\n label: 'Placeholder text',\n placeholder: 'Type here...',\n value: '',\n formControlName: '',\n type: 'text',\n disabled: false,\n helperText: false,\n helperTextLabel: '',\n leftIcon: 'person',\n rightIcon: 'expand_more',\n dropDown: false,\n options: ['Option 1', 'Option 2', 'Option 3'],\n size: 'base',\n inputTypes: 'primary',\n },\n parameters: { controls: { expanded: true } },\n}"
|
|
1288
|
+
}
|
|
1289
|
+
],
|
|
1290
|
+
"projects/allsorter-lib/src/lib/input/stories/input-playground.stories.ts": [
|
|
1291
|
+
{
|
|
1292
|
+
"name": "meta",
|
|
1293
|
+
"ctype": "miscellaneous",
|
|
1294
|
+
"subtype": "variable",
|
|
1295
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-playground.stories.ts",
|
|
1296
|
+
"deprecated": false,
|
|
1297
|
+
"deprecationMessage": "",
|
|
1298
|
+
"type": "Meta<InputComponent>",
|
|
1299
|
+
"defaultValue": "{\n title: 'Components/Input/Playground',\n component: InputComponent,\n argTypes: {\n label: { control: 'text' },\n placeholder: { control: 'text' },\n value: { control: 'text' },\n type: {\n control: 'select',\n options: ['text', 'email', 'number', 'password', 'tel', 'url', 'date'],\n },\n disabled: { control: 'boolean' },\n helperText: { control: 'boolean' },\n helperTextLabel: { control: 'text' },\n leftIcon: { control: 'text' },\n rightIcon: { control: 'text' },\n dropDown: { control: 'boolean' },\n options: { control: 'object' },\n size: {\n control: 'radio',\n options: ['xs', 'small', 'base', 'large', 'header'],\n },\n inputTypes: {\n control: 'select',\n options: ['primary', 'success', 'warn', 'disabled', 'plain'],\n },\n noBorder: { control: 'boolean' },\n },\n args: {\n label: 'Label',\n placeholder: 'Placeholder',\n value: '',\n type: 'text',\n disabled: false,\n helperText: false,\n helperTextLabel: '',\n leftIcon: '',\n rightIcon: '',\n dropDown: false,\n options: ['Option 1', 'Option 2', 'Option 3'],\n size: 'base',\n inputTypes: 'primary',\n noBorder: false,\n },\n}"
|
|
1300
|
+
},
|
|
1301
|
+
{
|
|
1302
|
+
"name": "Playground",
|
|
1303
|
+
"ctype": "miscellaneous",
|
|
1304
|
+
"subtype": "variable",
|
|
1305
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-playground.stories.ts",
|
|
1306
|
+
"deprecated": false,
|
|
1307
|
+
"deprecationMessage": "",
|
|
1308
|
+
"type": "Story",
|
|
1309
|
+
"defaultValue": "{\n render: (args: any) => ({\n props: args,\n template: `\n <al-input\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n [type]=\"type\"\n [disabled]=\"disabled\"\n [helperText]=\"helperText\"\n [helperTextLabel]=\"helperTextLabel\"\n [icon]=\"icon\"\n [rightIcon]=\"rightIcon\"\n [dropDown]=\"dropDown\"\n [options]=\"options\"\n [size]=\"size\"\n [inputTypes]=\"inputTypes\"\n [noBorder]=\"noBorder\"\n (valueChange)=\"value = $event\"\n ></al-input>\n `,\n }),\n name: 'Playground',\n}"
|
|
1310
|
+
},
|
|
1311
|
+
{
|
|
1312
|
+
"name": "ReactiveFormsExample",
|
|
1313
|
+
"ctype": "miscellaneous",
|
|
1314
|
+
"subtype": "variable",
|
|
1315
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-playground.stories.ts",
|
|
1316
|
+
"deprecated": false,
|
|
1317
|
+
"deprecationMessage": "",
|
|
1318
|
+
"type": "Story",
|
|
1319
|
+
"defaultValue": "{\n render: (args: any) => {\n const fb = new FormBuilder();\n const form = fb.group({\n courseTitle: [''],\n courseDescription: [''],\n courseType: ['']\n });\n\n return {\n props: { ...args, form },\n template: `\n <form [formGroup]=\"form\">\n <div style=\"display: flex; flex-direction: column; gap: 20px;\">\n <al-input\n label=\"Course Title\"\n placeholder=\"Course Title\"\n formControlName=\"courseTitle\"\n [leftIcon]=\"leftIcon\"\n [size]=\"size\"\n [inputTypes]=\"inputTypes\"\n ></al-input>\n\n <al-input\n label=\"Course Description\"\n placeholder=\"Enter course description\"\n formControlName=\"courseDescription\"\n [leftIcon]=\"'description'\"\n [size]=\"size\"\n [inputTypes]=\"inputTypes\"\n ></al-input>\n\n <al-input\n label=\"Course Type\"\n placeholder=\"Select course type\"\n formControlName=\"courseType\"\n [dropDown]=\"true\"\n [options]=\"['Online', 'In-Person', 'Hybrid']\"\n [leftIcon]=\"'category'\"\n [rightIcon]=\"'expand_more'\"\n [size]=\"size\"\n [inputTypes]=\"inputTypes\"\n ></al-input>\n </div>\n\n <div style=\"margin-top: 20px; padding: 10px; background: #f5f5f5; border-radius: 4px;\">\n <strong>Form Values:</strong>\n <pre>{{ form.value | json }}</pre>\n </div>\n </form>\n `,\n imports: [ReactiveFormsModule]\n };\n },\n name: 'Reactive Forms Example',\n}"
|
|
1320
|
+
}
|
|
1321
|
+
],
|
|
1322
|
+
"projects/allsorter-lib/src/lib/button/stories/button-playground.stories.ts": [
|
|
1323
|
+
{
|
|
1324
|
+
"name": "meta",
|
|
1325
|
+
"ctype": "miscellaneous",
|
|
1326
|
+
"subtype": "variable",
|
|
1327
|
+
"file": "projects/allsorter-lib/src/lib/button/stories/button-playground.stories.ts",
|
|
1328
|
+
"deprecated": false,
|
|
1329
|
+
"deprecationMessage": "",
|
|
1330
|
+
"type": "Meta<ButtonComponent>",
|
|
1331
|
+
"defaultValue": "{\n title: 'Components/Button/Playground',\n component: ButtonComponent,\n argTypes: {\n label: { control: 'text' },\n category: {\n control: 'select',\n options: [\n 'blue', 'green', 'grey', 'error', 'gradient',\n 'blue-no-outline', 'green-no-outline', 'grey-no-outline', 'error-no-outline',\n ],\n },\n\n buttonType: {\n control: 'select',\n options: ['icon-circle', 'icon-label', 'two-icon-label', 'dropdown'],\n },\n size: {\n control: 'select',\n options: ['header','xs','sm','base','l','xl'],\n },\n leftIcon: {\n control: 'text',\n if: { arg: 'showLeftIcon', truthy: true },\n ifDisabled: { arg: 'showLeftIcon', truthy: false },\n },\n rightIcon: {\n control: 'text',\n if: { arg: 'showRightIcon', truthy: true },\n ifDisabled: { arg: 'showRightIcon', truthy: false },\n },\n outlined: { control: 'boolean' },\n iconOnly: { control: 'boolean' },\n showLeftIcon: { control: 'boolean' },\n showRightIcon: { control: 'boolean' },\n dropdownOptions: { control: 'object' },\n },\n args: {\n size: 'sm',\n category: 'blue',\n outlined: true,\n buttonType: 'icon-label',\n label: 'Button text',\n leftIcon: 'add',\n rightIcon: 'add',\n iconOnly: false,\n showLeftIcon: true,\n showRightIcon: true,\n dropdownOptions: [\n { label: 'Create a merge commit', value: 'merge' },\n { label: 'Squash and merge', value: 'squash' },\n { label: 'Rebase and merge', value: 'rebase' },\n ],\n },\n}"
|
|
1332
|
+
}
|
|
1020
1333
|
]
|
|
1021
1334
|
},
|
|
1022
1335
|
"groupedFunctions": {},
|
|
1023
1336
|
"groupedEnumerations": {},
|
|
1024
|
-
"groupedTypeAliases": {
|
|
1337
|
+
"groupedTypeAliases": {
|
|
1338
|
+
"projects/allsorter-lib/src/lib/input/stories/input-gallery.stories.ts": [
|
|
1339
|
+
{
|
|
1340
|
+
"name": "Story",
|
|
1341
|
+
"ctype": "miscellaneous",
|
|
1342
|
+
"subtype": "typealias",
|
|
1343
|
+
"rawtype": "StoryObj<InputComponent>",
|
|
1344
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-gallery.stories.ts",
|
|
1345
|
+
"deprecated": false,
|
|
1346
|
+
"deprecationMessage": "",
|
|
1347
|
+
"description": "",
|
|
1348
|
+
"kind": 183
|
|
1349
|
+
}
|
|
1350
|
+
],
|
|
1351
|
+
"projects/allsorter-lib/src/lib/input/stories/input-playground.stories.ts": [
|
|
1352
|
+
{
|
|
1353
|
+
"name": "Story",
|
|
1354
|
+
"ctype": "miscellaneous",
|
|
1355
|
+
"subtype": "typealias",
|
|
1356
|
+
"rawtype": "StoryObj<InputComponent>",
|
|
1357
|
+
"file": "projects/allsorter-lib/src/lib/input/stories/input-playground.stories.ts",
|
|
1358
|
+
"deprecated": false,
|
|
1359
|
+
"deprecationMessage": "",
|
|
1360
|
+
"description": "",
|
|
1361
|
+
"kind": 183
|
|
1362
|
+
}
|
|
1363
|
+
],
|
|
1364
|
+
"projects/allsorter-lib/src/lib/button/stories/button-gallery.stories.ts": [
|
|
1365
|
+
{
|
|
1366
|
+
"name": "Story",
|
|
1367
|
+
"ctype": "miscellaneous",
|
|
1368
|
+
"subtype": "typealias",
|
|
1369
|
+
"rawtype": "StoryObj<ButtonComponent>",
|
|
1370
|
+
"file": "projects/allsorter-lib/src/lib/button/stories/button-gallery.stories.ts",
|
|
1371
|
+
"deprecated": false,
|
|
1372
|
+
"deprecationMessage": "",
|
|
1373
|
+
"description": "",
|
|
1374
|
+
"kind": 183
|
|
1375
|
+
}
|
|
1376
|
+
],
|
|
1377
|
+
"projects/allsorter-lib/src/lib/button/stories/button-playground.stories.ts": [
|
|
1378
|
+
{
|
|
1379
|
+
"name": "Story",
|
|
1380
|
+
"ctype": "miscellaneous",
|
|
1381
|
+
"subtype": "typealias",
|
|
1382
|
+
"rawtype": "StoryObj<ButtonComponent>",
|
|
1383
|
+
"file": "projects/allsorter-lib/src/lib/button/stories/button-playground.stories.ts",
|
|
1384
|
+
"deprecated": false,
|
|
1385
|
+
"deprecationMessage": "",
|
|
1386
|
+
"description": "",
|
|
1387
|
+
"kind": 183
|
|
1388
|
+
}
|
|
1389
|
+
]
|
|
1390
|
+
}
|
|
1025
1391
|
},
|
|
1026
1392
|
"routes": [],
|
|
1027
1393
|
"coverage": {
|
|
1028
|
-
"count":
|
|
1394
|
+
"count": 1,
|
|
1029
1395
|
"status": "low",
|
|
1030
1396
|
"files": [
|
|
1031
1397
|
{
|
|
1032
|
-
"filePath": "src/
|
|
1398
|
+
"filePath": "projects/allsorter-lib/src/lib/allsorter-lib.component.ts",
|
|
1033
1399
|
"type": "component",
|
|
1034
1400
|
"linktype": "component",
|
|
1035
|
-
"name": "
|
|
1401
|
+
"name": "AllsorterLibComponent",
|
|
1402
|
+
"coveragePercent": 0,
|
|
1403
|
+
"coverageCount": "0/1",
|
|
1404
|
+
"status": "low"
|
|
1405
|
+
},
|
|
1406
|
+
{
|
|
1407
|
+
"filePath": "projects/allsorter-lib/src/lib/allsorter-lib.service.ts",
|
|
1408
|
+
"type": "injectable",
|
|
1409
|
+
"linktype": "injectable",
|
|
1410
|
+
"name": "AllsorterLibService",
|
|
1036
1411
|
"coveragePercent": 0,
|
|
1037
1412
|
"coverageCount": "0/2",
|
|
1038
1413
|
"status": "low"
|
|
1039
1414
|
},
|
|
1040
1415
|
{
|
|
1041
|
-
"filePath": "src/
|
|
1416
|
+
"filePath": "projects/allsorter-lib/src/lib/button/button.component.ts",
|
|
1042
1417
|
"type": "component",
|
|
1043
1418
|
"linktype": "component",
|
|
1044
1419
|
"name": "ButtonComponent",
|
|
@@ -1047,7 +1422,67 @@
|
|
|
1047
1422
|
"status": "medium"
|
|
1048
1423
|
},
|
|
1049
1424
|
{
|
|
1050
|
-
"filePath": "src/
|
|
1425
|
+
"filePath": "projects/allsorter-lib/src/lib/button/stories/button-gallery.stories.ts",
|
|
1426
|
+
"type": "variable",
|
|
1427
|
+
"linktype": "miscellaneous",
|
|
1428
|
+
"linksubtype": "variable",
|
|
1429
|
+
"name": "Default",
|
|
1430
|
+
"coveragePercent": 0,
|
|
1431
|
+
"coverageCount": "0/1",
|
|
1432
|
+
"status": "low"
|
|
1433
|
+
},
|
|
1434
|
+
{
|
|
1435
|
+
"filePath": "projects/allsorter-lib/src/lib/button/stories/button-gallery.stories.ts",
|
|
1436
|
+
"type": "variable",
|
|
1437
|
+
"linktype": "miscellaneous",
|
|
1438
|
+
"linksubtype": "variable",
|
|
1439
|
+
"name": "meta",
|
|
1440
|
+
"coveragePercent": 0,
|
|
1441
|
+
"coverageCount": "0/1",
|
|
1442
|
+
"status": "low"
|
|
1443
|
+
},
|
|
1444
|
+
{
|
|
1445
|
+
"filePath": "projects/allsorter-lib/src/lib/button/stories/button-gallery.stories.ts",
|
|
1446
|
+
"type": "variable",
|
|
1447
|
+
"linktype": "miscellaneous",
|
|
1448
|
+
"linksubtype": "variable",
|
|
1449
|
+
"name": "Variation",
|
|
1450
|
+
"coveragePercent": 0,
|
|
1451
|
+
"coverageCount": "0/1",
|
|
1452
|
+
"status": "low"
|
|
1453
|
+
},
|
|
1454
|
+
{
|
|
1455
|
+
"filePath": "projects/allsorter-lib/src/lib/button/stories/button-gallery.stories.ts",
|
|
1456
|
+
"type": "type alias",
|
|
1457
|
+
"linktype": "miscellaneous",
|
|
1458
|
+
"linksubtype": "typealias",
|
|
1459
|
+
"name": "Story",
|
|
1460
|
+
"coveragePercent": 0,
|
|
1461
|
+
"coverageCount": "0/1",
|
|
1462
|
+
"status": "low"
|
|
1463
|
+
},
|
|
1464
|
+
{
|
|
1465
|
+
"filePath": "projects/allsorter-lib/src/lib/button/stories/button-playground.stories.ts",
|
|
1466
|
+
"type": "variable",
|
|
1467
|
+
"linktype": "miscellaneous",
|
|
1468
|
+
"linksubtype": "variable",
|
|
1469
|
+
"name": "meta",
|
|
1470
|
+
"coveragePercent": 0,
|
|
1471
|
+
"coverageCount": "0/1",
|
|
1472
|
+
"status": "low"
|
|
1473
|
+
},
|
|
1474
|
+
{
|
|
1475
|
+
"filePath": "projects/allsorter-lib/src/lib/button/stories/button-playground.stories.ts",
|
|
1476
|
+
"type": "type alias",
|
|
1477
|
+
"linktype": "miscellaneous",
|
|
1478
|
+
"linksubtype": "typealias",
|
|
1479
|
+
"name": "Story",
|
|
1480
|
+
"coveragePercent": 0,
|
|
1481
|
+
"coverageCount": "0/1",
|
|
1482
|
+
"status": "low"
|
|
1483
|
+
},
|
|
1484
|
+
{
|
|
1485
|
+
"filePath": "projects/allsorter-lib/src/lib/input/input.component.ts",
|
|
1051
1486
|
"type": "component",
|
|
1052
1487
|
"linktype": "component",
|
|
1053
1488
|
"name": "InputComponent",
|
|
@@ -1055,6 +1490,95 @@
|
|
|
1055
1490
|
"coverageCount": "0/27",
|
|
1056
1491
|
"status": "low"
|
|
1057
1492
|
},
|
|
1493
|
+
{
|
|
1494
|
+
"filePath": "projects/allsorter-lib/src/lib/input/stories/input-gallery.stories.ts",
|
|
1495
|
+
"type": "variable",
|
|
1496
|
+
"linktype": "miscellaneous",
|
|
1497
|
+
"linksubtype": "variable",
|
|
1498
|
+
"name": "FullMatrix",
|
|
1499
|
+
"coveragePercent": 0,
|
|
1500
|
+
"coverageCount": "0/1",
|
|
1501
|
+
"status": "low"
|
|
1502
|
+
},
|
|
1503
|
+
{
|
|
1504
|
+
"filePath": "projects/allsorter-lib/src/lib/input/stories/input-gallery.stories.ts",
|
|
1505
|
+
"type": "variable",
|
|
1506
|
+
"linktype": "miscellaneous",
|
|
1507
|
+
"linksubtype": "variable",
|
|
1508
|
+
"name": "Gallery",
|
|
1509
|
+
"coveragePercent": 0,
|
|
1510
|
+
"coverageCount": "0/1",
|
|
1511
|
+
"status": "low"
|
|
1512
|
+
},
|
|
1513
|
+
{
|
|
1514
|
+
"filePath": "projects/allsorter-lib/src/lib/input/stories/input-gallery.stories.ts",
|
|
1515
|
+
"type": "variable",
|
|
1516
|
+
"linktype": "miscellaneous",
|
|
1517
|
+
"linksubtype": "variable",
|
|
1518
|
+
"name": "meta",
|
|
1519
|
+
"coveragePercent": 0,
|
|
1520
|
+
"coverageCount": "0/1",
|
|
1521
|
+
"status": "low"
|
|
1522
|
+
},
|
|
1523
|
+
{
|
|
1524
|
+
"filePath": "projects/allsorter-lib/src/lib/input/stories/input-gallery.stories.ts",
|
|
1525
|
+
"type": "type alias",
|
|
1526
|
+
"linktype": "miscellaneous",
|
|
1527
|
+
"linksubtype": "typealias",
|
|
1528
|
+
"name": "Story",
|
|
1529
|
+
"coveragePercent": 0,
|
|
1530
|
+
"coverageCount": "0/1",
|
|
1531
|
+
"status": "low"
|
|
1532
|
+
},
|
|
1533
|
+
{
|
|
1534
|
+
"filePath": "projects/allsorter-lib/src/lib/input/stories/input-playground.stories.ts",
|
|
1535
|
+
"type": "variable",
|
|
1536
|
+
"linktype": "miscellaneous",
|
|
1537
|
+
"linksubtype": "variable",
|
|
1538
|
+
"name": "meta",
|
|
1539
|
+
"coveragePercent": 0,
|
|
1540
|
+
"coverageCount": "0/1",
|
|
1541
|
+
"status": "low"
|
|
1542
|
+
},
|
|
1543
|
+
{
|
|
1544
|
+
"filePath": "projects/allsorter-lib/src/lib/input/stories/input-playground.stories.ts",
|
|
1545
|
+
"type": "variable",
|
|
1546
|
+
"linktype": "miscellaneous",
|
|
1547
|
+
"linksubtype": "variable",
|
|
1548
|
+
"name": "Playground",
|
|
1549
|
+
"coveragePercent": 0,
|
|
1550
|
+
"coverageCount": "0/1",
|
|
1551
|
+
"status": "low"
|
|
1552
|
+
},
|
|
1553
|
+
{
|
|
1554
|
+
"filePath": "projects/allsorter-lib/src/lib/input/stories/input-playground.stories.ts",
|
|
1555
|
+
"type": "variable",
|
|
1556
|
+
"linktype": "miscellaneous",
|
|
1557
|
+
"linksubtype": "variable",
|
|
1558
|
+
"name": "ReactiveFormsExample",
|
|
1559
|
+
"coveragePercent": 0,
|
|
1560
|
+
"coverageCount": "0/1",
|
|
1561
|
+
"status": "low"
|
|
1562
|
+
},
|
|
1563
|
+
{
|
|
1564
|
+
"filePath": "projects/allsorter-lib/src/lib/input/stories/input-playground.stories.ts",
|
|
1565
|
+
"type": "type alias",
|
|
1566
|
+
"linktype": "miscellaneous",
|
|
1567
|
+
"linksubtype": "typealias",
|
|
1568
|
+
"name": "Story",
|
|
1569
|
+
"coveragePercent": 0,
|
|
1570
|
+
"coverageCount": "0/1",
|
|
1571
|
+
"status": "low"
|
|
1572
|
+
},
|
|
1573
|
+
{
|
|
1574
|
+
"filePath": "src/app/app.component.ts",
|
|
1575
|
+
"type": "component",
|
|
1576
|
+
"linktype": "component",
|
|
1577
|
+
"name": "AppComponent",
|
|
1578
|
+
"coveragePercent": 0,
|
|
1579
|
+
"coverageCount": "0/2",
|
|
1580
|
+
"status": "low"
|
|
1581
|
+
},
|
|
1058
1582
|
{
|
|
1059
1583
|
"filePath": "src/environments/environment.prod.ts",
|
|
1060
1584
|
"type": "variable",
|