@egose/shadcn-theme-ng-tw 0.0.27 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +130 -13
- package/accordion/README.md +3 -0
- package/accordion/fesm2022/accordion.mjs +160 -0
- package/accordion/package.json +25 -0
- package/accordion/types/accordion.d.ts +49 -0
- package/alert/README.md +2 -63
- package/alert/fesm2022/alert.mjs +31 -26
- package/alert/package.json +25 -0
- package/alert-dialog/README.md +11 -0
- package/alert-dialog/fesm2022/alert-dialog.mjs +287 -0
- package/alert-dialog/package.json +25 -0
- package/alert-dialog/types/alert-dialog.d.ts +90 -0
- package/aspect-ratio/README.md +11 -0
- package/aspect-ratio/fesm2022/aspect-ratio.mjs +62 -0
- package/aspect-ratio/package.json +25 -0
- package/aspect-ratio/types/aspect-ratio.d.ts +21 -0
- package/autocomplete/README.md +3 -0
- package/autocomplete/fesm2022/autocomplete.mjs +409 -0
- package/autocomplete/package.json +24 -0
- package/autocomplete/types/autocomplete.d.ts +96 -0
- package/avatar/README.md +11 -0
- package/avatar/fesm2022/avatar.mjs +178 -0
- package/avatar/package.json +25 -0
- package/avatar/types/avatar.d.ts +50 -0
- package/badge/README.md +2 -63
- package/badge/fesm2022/badge.mjs +16 -10
- package/badge/package.json +25 -0
- package/basic-alert/README.md +2 -63
- package/basic-alert/fesm2022/basic-alert.mjs +12 -8
- package/basic-alert/package.json +24 -0
- package/basic-alert/{index.d.ts → types/basic-alert.d.ts} +1 -1
- package/breadcrumb/README.md +11 -0
- package/breadcrumb/fesm2022/breadcrumb.mjs +224 -0
- package/breadcrumb/package.json +25 -0
- package/breadcrumb/types/breadcrumb.d.ts +57 -0
- package/button/README.md +2 -63
- package/button/fesm2022/button.mjs +100 -26
- package/button/package.json +25 -0
- package/button/{index.d.ts → types/button.d.ts} +31 -10
- package/button-group/README.md +11 -0
- package/button-group/fesm2022/button-group.mjs +102 -0
- package/button-group/package.json +25 -0
- package/button-group/types/button-group.d.ts +30 -0
- package/calendar/README.md +2 -63
- package/calendar/fesm2022/calendar.mjs +869 -547
- package/calendar/package.json +24 -0
- package/calendar/types/calendar.d.ts +94 -0
- package/card/README.md +11 -0
- package/card/fesm2022/card.mjs +169 -0
- package/card/package.json +25 -0
- package/card/types/card.d.ts +54 -0
- package/carousel/README.md +11 -0
- package/carousel/fesm2022/carousel.mjs +309 -0
- package/carousel/package.json +25 -0
- package/carousel/types/carousel.d.ts +84 -0
- package/checkbox/README.md +3 -0
- package/checkbox/fesm2022/checkbox.mjs +153 -0
- package/checkbox/package.json +24 -0
- package/checkbox/types/checkbox.d.ts +56 -0
- package/collapsible/README.md +11 -0
- package/collapsible/fesm2022/collapsible.mjs +77 -0
- package/collapsible/package.json +25 -0
- package/collapsible/types/collapsible.d.ts +27 -0
- package/combobox/README.md +11 -0
- package/combobox/fesm2022/combobox.mjs +683 -0
- package/combobox/package.json +25 -0
- package/combobox/types/combobox.d.ts +151 -0
- package/command/README.md +11 -0
- package/command/fesm2022/command.mjs +361 -0
- package/command/package.json +25 -0
- package/command/types/command.d.ts +89 -0
- package/confirmation-dialog/README.md +3 -0
- package/confirmation-dialog/fesm2022/confirmation-dialog.mjs +105 -0
- package/confirmation-dialog/package.json +24 -0
- package/confirmation-dialog/types/confirmation-dialog.d.ts +28 -0
- package/context-menu/README.md +11 -0
- package/context-menu/fesm2022/context-menu.mjs +89 -0
- package/context-menu/package.json +25 -0
- package/context-menu/types/context-menu.d.ts +34 -0
- package/date-picker/README.md +2 -63
- package/date-picker/fesm2022/date-picker.mjs +1274 -308
- package/date-picker/package.json +24 -0
- package/date-picker/types/date-picker.d.ts +555 -0
- package/dialog/README.md +3 -0
- package/dialog/fesm2022/dialog.mjs +307 -0
- package/dialog/package.json +24 -0
- package/dialog/types/dialog.d.ts +95 -0
- package/drawer/README.md +11 -0
- package/drawer/fesm2022/drawer.mjs +271 -0
- package/drawer/package.json +25 -0
- package/drawer/types/drawer.d.ts +76 -0
- package/dropdown-menu/README.md +11 -0
- package/dropdown-menu/fesm2022/dropdown-menu.mjs +554 -0
- package/dropdown-menu/package.json +25 -0
- package/dropdown-menu/types/dropdown-menu.d.ts +180 -0
- package/empty/README.md +11 -0
- package/empty/fesm2022/empty.mjs +151 -0
- package/empty/package.json +25 -0
- package/empty/types/empty.d.ts +54 -0
- package/field/README.md +11 -0
- package/field/fesm2022/field.mjs +367 -0
- package/field/package.json +25 -0
- package/field/types/field.d.ts +107 -0
- package/form-checkbox/README.md +3 -0
- package/form-checkbox/fesm2022/form-checkbox.mjs +172 -0
- package/form-checkbox/package.json +24 -0
- package/form-checkbox/types/form-checkbox.d.ts +33 -0
- package/form-date-picker/README.md +2 -63
- package/form-date-picker/fesm2022/form-date-picker.mjs +95 -53
- package/form-date-picker/package.json +24 -0
- package/form-date-picker/{index.d.ts → types/form-date-picker.d.ts} +7 -1
- package/form-field/README.md +2 -63
- package/form-field/fesm2022/form-field.mjs +54 -28
- package/form-field/package.json +25 -0
- package/form-field/types/form-field.d.ts +46 -0
- package/form-field-simple/README.md +2 -63
- package/form-field-simple/fesm2022/form-field-simple.mjs +15 -10
- package/form-field-simple/package.json +24 -0
- package/form-searchable-multiselect/README.md +3 -0
- package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs +178 -0
- package/form-searchable-multiselect/package.json +24 -0
- package/form-searchable-multiselect/types/form-searchable-multiselect.d.ts +36 -0
- package/form-select/README.md +2 -63
- package/form-select/fesm2022/form-select.mjs +178 -84
- package/form-select/package.json +24 -0
- package/form-select/{index.d.ts → types/form-select.d.ts} +7 -1
- package/form-text-input/README.md +2 -63
- package/form-text-input/fesm2022/form-text-input.mjs +99 -82
- package/form-text-input/package.json +24 -0
- package/form-text-input/{index.d.ts → types/form-text-input.d.ts} +9 -12
- package/form-textarea/README.md +2 -63
- package/form-textarea/fesm2022/form-textarea.mjs +90 -47
- package/form-textarea/package.json +24 -0
- package/form-textarea/{index.d.ts → types/form-textarea.d.ts} +8 -1
- package/hover-card/README.md +11 -0
- package/hover-card/fesm2022/hover-card.mjs +123 -0
- package/hover-card/package.json +25 -0
- package/hover-card/types/hover-card.d.ts +36 -0
- package/icon/README.md +2 -63
- package/icon/fesm2022/icon.mjs +12 -10
- package/icon/package.json +25 -0
- package/input/README.md +2 -63
- package/input/fesm2022/input.mjs +25 -70
- package/input/package.json +25 -0
- package/input/types/input.d.ts +19 -0
- package/input-group/README.md +11 -0
- package/input-group/fesm2022/input-group.mjs +199 -0
- package/input-group/package.json +25 -0
- package/input-group/types/input-group.d.ts +52 -0
- package/input-otp/README.md +11 -0
- package/input-otp/fesm2022/input-otp.mjs +141 -0
- package/input-otp/package.json +25 -0
- package/input-otp/types/input-otp.d.ts +43 -0
- package/item/README.md +11 -0
- package/item/fesm2022/item.mjs +278 -0
- package/item/package.json +25 -0
- package/item/types/item.d.ts +101 -0
- package/kbd/README.md +11 -0
- package/kbd/fesm2022/kbd.mjs +61 -0
- package/kbd/package.json +25 -0
- package/kbd/types/kbd.d.ts +22 -0
- package/label/README.md +2 -63
- package/label/fesm2022/label.mjs +12 -11
- package/label/package.json +25 -0
- package/label/{index.d.ts → types/label.d.ts} +1 -1
- package/layout-simple/README.md +3 -0
- package/layout-simple/fesm2022/layout-simple.mjs +770 -0
- package/layout-simple/package.json +24 -0
- package/layout-simple/types/layout-simple.d.ts +167 -0
- package/menu/README.md +3 -0
- package/menu/fesm2022/menu.mjs +461 -0
- package/menu/package.json +24 -0
- package/menu/types/menu.d.ts +137 -0
- package/menubar/README.md +11 -0
- package/menubar/fesm2022/menubar.mjs +108 -0
- package/menubar/package.json +25 -0
- package/menubar/types/menubar.d.ts +40 -0
- package/native-select/README.md +11 -0
- package/native-select/fesm2022/native-select.mjs +207 -0
- package/native-select/package.json +25 -0
- package/native-select/types/native-select.d.ts +70 -0
- package/navigation-menu/README.md +11 -0
- package/navigation-menu/fesm2022/navigation-menu.mjs +206 -0
- package/navigation-menu/package.json +25 -0
- package/navigation-menu/types/navigation-menu.d.ts +54 -0
- package/package.json +284 -63
- package/pagination/README.md +11 -0
- package/pagination/fesm2022/pagination.mjs +808 -0
- package/pagination/package.json +25 -0
- package/pagination/types/pagination.d.ts +192 -0
- package/popover/README.md +2 -63
- package/popover/fesm2022/popover.mjs +124 -30
- package/popover/package.json +24 -0
- package/popover/types/popover.d.ts +54 -0
- package/progress/README.md +11 -0
- package/progress/fesm2022/progress.mjs +77 -0
- package/progress/package.json +25 -0
- package/progress/types/progress.d.ts +27 -0
- package/radio-group/README.md +3 -0
- package/radio-group/fesm2022/radio-group.mjs +207 -0
- package/radio-group/package.json +25 -0
- package/radio-group/types/radio-group.d.ts +71 -0
- package/resizable/README.md +11 -0
- package/resizable/fesm2022/resizable.mjs +111 -0
- package/resizable/package.json +25 -0
- package/resizable/types/resizable.d.ts +32 -0
- package/scroll-area/README.md +11 -0
- package/scroll-area/fesm2022/scroll-area.mjs +51 -0
- package/scroll-area/package.json +25 -0
- package/scroll-area/types/scroll-area.d.ts +16 -0
- package/searchable-multiselect/README.md +3 -0
- package/searchable-multiselect/fesm2022/searchable-multiselect.mjs +272 -0
- package/searchable-multiselect/package.json +24 -0
- package/searchable-multiselect/types/searchable-multiselect.d.ts +45 -0
- package/select/README.md +2 -63
- package/select/fesm2022/select.mjs +382 -192
- package/select/package.json +25 -0
- package/select/types/select.d.ts +121 -0
- package/separator/README.md +2 -63
- package/separator/fesm2022/separator.mjs +17 -15
- package/separator/package.json +24 -0
- package/separator/{index.d.ts → types/separator.d.ts} +4 -5
- package/sheet/README.md +2 -63
- package/sheet/fesm2022/sheet.mjs +51 -44
- package/sheet/package.json +24 -0
- package/sidebar/README.md +11 -0
- package/sidebar/fesm2022/sidebar.mjs +950 -0
- package/sidebar/package.json +25 -0
- package/sidebar/types/sidebar.d.ts +237 -0
- package/skeleton/README.md +11 -0
- package/skeleton/fesm2022/skeleton.mjs +44 -0
- package/skeleton/package.json +25 -0
- package/skeleton/types/skeleton.d.ts +16 -0
- package/slider/README.md +11 -0
- package/slider/fesm2022/slider.mjs +144 -0
- package/slider/package.json +25 -0
- package/slider/types/slider.d.ts +19 -0
- package/sonner/README.md +2 -63
- package/sonner/fesm2022/sonner.mjs +30 -35
- package/sonner/package.json +25 -0
- package/spinner/README.md +2 -63
- package/spinner/fesm2022/spinner.mjs +18 -14
- package/spinner/package.json +25 -0
- package/switch/README.md +2 -63
- package/switch/fesm2022/switch.mjs +29 -28
- package/switch/package.json +25 -0
- package/table/README.md +11 -0
- package/table/fesm2022/table.mjs +211 -0
- package/table/package.json +25 -0
- package/table/types/table.d.ts +87 -0
- package/tabs/README.md +3 -0
- package/tabs/fesm2022/tabs.mjs +286 -0
- package/tabs/package.json +25 -0
- package/tabs/types/tabs.d.ts +71 -0
- package/textarea/README.md +11 -0
- package/textarea/fesm2022/textarea.mjs +47 -0
- package/textarea/package.json +25 -0
- package/textarea/types/textarea.d.ts +18 -0
- package/toggle/README.md +11 -0
- package/toggle/fesm2022/toggle.mjs +78 -0
- package/toggle/package.json +25 -0
- package/toggle/types/toggle.d.ts +27 -0
- package/toggle-group/README.md +11 -0
- package/toggle-group/fesm2022/toggle-group.mjs +117 -0
- package/toggle-group/package.json +25 -0
- package/toggle-group/types/toggle-group.d.ts +45 -0
- package/tooltip/README.md +3 -0
- package/tooltip/fesm2022/tooltip.mjs +72 -0
- package/tooltip/package.json +25 -0
- package/tooltip/types/tooltip.d.ts +22 -0
- package/typography/README.md +11 -0
- package/typography/fesm2022/typography.mjs +242 -0
- package/typography/package.json +25 -0
- package/typography/types/typography.d.ts +94 -0
- package/utils/README.md +2 -63
- package/utils/fesm2022/utils.mjs +209 -2
- package/utils/package.json +25 -0
- package/utils/types/utils.d.ts +13 -0
- package/alert/fesm2022/alert.mjs.map +0 -1
- package/badge/fesm2022/badge.mjs.map +0 -1
- package/basic-alert/fesm2022/basic-alert.mjs.map +0 -1
- package/button/fesm2022/button.mjs.map +0 -1
- package/calendar/fesm2022/calendar.mjs.map +0 -1
- package/calendar/index.d.ts +0 -111
- package/date-picker/fesm2022/date-picker.mjs.map +0 -1
- package/date-picker/index.d.ts +0 -227
- package/form-date-picker/fesm2022/form-date-picker.mjs.map +0 -1
- package/form-field/fesm2022/form-field.mjs.map +0 -1
- package/form-field/index.d.ts +0 -37
- package/form-field-simple/fesm2022/form-field-simple.mjs.map +0 -1
- package/form-select/fesm2022/form-select.mjs.map +0 -1
- package/form-text-input/fesm2022/form-text-input.mjs.map +0 -1
- package/form-textarea/fesm2022/form-textarea.mjs.map +0 -1
- package/icon/fesm2022/icon.mjs.map +0 -1
- package/input/fesm2022/input.mjs.map +0 -1
- package/input/index.d.ts +0 -41
- package/label/fesm2022/label.mjs.map +0 -1
- package/popover/fesm2022/popover.mjs.map +0 -1
- package/popover/index.d.ts +0 -30
- package/select/fesm2022/select.mjs.map +0 -1
- package/select/index.d.ts +0 -92
- package/separator/fesm2022/separator.mjs.map +0 -1
- package/sheet/fesm2022/sheet.mjs.map +0 -1
- package/sonner/fesm2022/sonner.mjs.map +0 -1
- package/spinner/fesm2022/spinner.mjs.map +0 -1
- package/switch/fesm2022/switch.mjs.map +0 -1
- package/utils/fesm2022/utils.mjs.map +0 -1
- package/utils/index.d.ts +0 -5
- /package/alert/{index.d.ts → types/alert.d.ts} +0 -0
- /package/badge/{index.d.ts → types/badge.d.ts} +0 -0
- /package/form-field-simple/{index.d.ts → types/form-field-simple.d.ts} +0 -0
- /package/icon/{index.d.ts → types/icon.d.ts} +0 -0
- /package/sheet/{index.d.ts → types/sheet.d.ts} +0 -0
- /package/sonner/{index.d.ts → types/sonner.d.ts} +0 -0
- /package/spinner/{index.d.ts → types/spinner.d.ts} +0 -0
- /package/switch/{index.d.ts → types/switch.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -14,17 +14,28 @@ npm install @egose/shadcn-theme-ng
|
|
|
14
14
|
npm install @egose/shadcn-theme-ng-tw
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
`pnpm` / `yarn` equivalents work too.
|
|
17
|
+
`pnpm` / `yarn` equivalents work too. npm installs peer dependencies automatically when it can resolve compatible
|
|
18
|
+
versions; applications must keep their existing framework versions inside the supported ranges below.
|
|
18
19
|
|
|
19
20
|
### Peer dependencies
|
|
20
21
|
|
|
21
|
-
| Package | Supported version
|
|
22
|
-
| ------------------- |
|
|
23
|
-
| `@angular/
|
|
24
|
-
| `@angular/
|
|
25
|
-
| `@
|
|
22
|
+
| Package | Supported version | Tested version |
|
|
23
|
+
| ------------------- | ------------------ | -------------- |
|
|
24
|
+
| `@angular/cdk` | `>=22.0.0 <23.0.0` | `22.1.3` |
|
|
25
|
+
| `@angular/common` | `>=22.0.0 <23.0.0` | `22.1.3` |
|
|
26
|
+
| `@angular/core` | `>=22.0.0 <23.0.0` | `22.1.3` |
|
|
27
|
+
| `@angular/forms` | `>=22.0.0 <23.0.0` | `22.1.3` |
|
|
28
|
+
| `@angular/router` | `>=22.0.0 <23.0.0` | `22.1.3` |
|
|
29
|
+
| `@ng-icons/core` | `>=35.0.1 <36.0.0` | `35.0.1` |
|
|
30
|
+
| `@spartan-ng/brain` | `>=1.3.2 <2.0.0` | `1.3.2` |
|
|
31
|
+
| `rxjs` | `>=7.8.0 <8.0.0` | `7.8.2` |
|
|
26
32
|
|
|
27
|
-
|
|
33
|
+
Angular and CDK must use the same major version. The tested consumer contract is Angular 22, CDK 22, and Spartan 1.3.2;
|
|
34
|
+
the ranges above are copied from the published peer metadata and validated with strict isolated installs.
|
|
35
|
+
|
|
36
|
+
Runtime implementation dependencies such as `@ng-icons/lucide`, `@ng-icons/tabler-icons`, `class-variance-authority`,
|
|
37
|
+
`clsx`, `embla-carousel`, `embla-carousel-angular`, `ngx-scrollbar`, `ngx-sonner`, `tailwind-merge`, and `tslib` are
|
|
38
|
+
installed transitively. Do not install them directly unless your application also imports them.
|
|
28
39
|
|
|
29
40
|
### Tailwind variants
|
|
30
41
|
|
|
@@ -37,6 +48,59 @@ There are two published variants of this package. They produce identical markup
|
|
|
37
48
|
|
|
38
49
|
If your project mixes shadcn styles with other Tailwind utilities that share class names, use the `-tw` variant to avoid collisions.
|
|
39
50
|
|
|
51
|
+
Class utilities are normalized to one unprefixed canonical representation during packaging. The plain artifact emits
|
|
52
|
+
unprefixed utilities, while the `-tw` artifact prefixes every recognized utility with `tw:`. Generated JavaScript source
|
|
53
|
+
maps are intentionally excluded because this post-build class and package-identity transformation invalidates ng-packagr's
|
|
54
|
+
maps; shipping no map is safer than shipping a map that points at different generated code.
|
|
55
|
+
|
|
56
|
+
## Release preparation
|
|
57
|
+
|
|
58
|
+
Prepare both release candidates without publishing by supplying the intended version explicitly:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
pnpm --dir packages/angular prepare:release --version 1.2.3
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
This runs `@repo-toolkit/publish-package` with `publish.config.mjs`: it serially
|
|
65
|
+
builds, validates, and packs the plain (`release/plain` → `@egose/shadcn-theme-ng`)
|
|
66
|
+
and `tw:` (`release/tw` → `@egose/shadcn-theme-ng-tw`) variants. The inspectable
|
|
67
|
+
stages and two exact `.tgz` artifacts are written under `packages/angular/release/`.
|
|
68
|
+
Neither package is published unless both candidates pass every step. Publishing is
|
|
69
|
+
intended to run from protected CI with npm trusted publishing/OIDC; `--otp` remains
|
|
70
|
+
available for manual publishes (passed to the toolkit publish command, never logged).
|
|
71
|
+
|
|
72
|
+
## Source tests
|
|
73
|
+
|
|
74
|
+
Headless-test prerequisite (local and CI): the Karma suites need a
|
|
75
|
+
Chrome-compatible binary. The repository-supported setup downloads it into
|
|
76
|
+
the repo-local `.puppeteer-cache/` directory:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
pnpm --dir packages/angular install:browser
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Alternatively, set `CHROME_BIN` to any Chrome/Chromium binary yourself
|
|
83
|
+
(`test/karma.conf.js` honors a pre-set `CHROME_BIN`, then falls back to a
|
|
84
|
+
system Chrome).
|
|
85
|
+
|
|
86
|
+
Focused library tests are intentionally separate from staged-package and artifact validation:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# One selected library
|
|
90
|
+
pnpm --dir packages/angular test:library form-text-input
|
|
91
|
+
pnpm --dir packages/angular test:library utils
|
|
92
|
+
|
|
93
|
+
# Source export contracts plus every selected library, serially and headlessly
|
|
94
|
+
pnpm --dir packages/angular test:libraries
|
|
95
|
+
|
|
96
|
+
# The example shell and router behavior
|
|
97
|
+
pnpm --dir packages/angular/@examples/standard test:ci
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
The browser suites share `packages/angular/test/setup.ts`, which provides zoneless Angular setup and assertions for form
|
|
101
|
+
bindings and resource teardown. DOM reconciliation uses real `MutationObserver` and animation-frame scheduling; server-mode
|
|
102
|
+
coverage verifies those browser resources are not created. All CI commands disable watch mode so they terminate after one run.
|
|
103
|
+
|
|
40
104
|
## Import forms
|
|
41
105
|
|
|
42
106
|
Import each component via its own npm subpath:
|
|
@@ -72,23 +136,27 @@ export class MyModule {}
|
|
|
72
136
|
|
|
73
137
|
Import by component name. Component `NameX` is reachable at `@egose/shadcn-theme-ng/<name-x>` (kebab-case). The current surface:
|
|
74
138
|
|
|
75
|
-
|
|
139
|
+
<!-- BEGIN GENERATED SUBPATHS -->
|
|
140
|
+
|
|
141
|
+
`accordion`, `alert`, `alert-dialog`, `aspect-ratio`, `autocomplete`, `avatar`, `badge`, `basic-alert`, `breadcrumb`, `button`, `button-group`, `calendar`, `card`, `carousel`, `checkbox`, `collapsible`, `combobox`, `command`, `confirmation-dialog`, `context-menu`, `date-picker`, `dialog`, `drawer`, `dropdown-menu`, `empty`, `field`, `form-checkbox`, `form-date-picker`, `form-field`, `form-field-simple`, `form-searchable-multiselect`, `form-select`, `form-text-input`, `form-textarea`, `hover-card`, `icon`, `input`, `input-group`, `input-otp`, `item`, `kbd`, `label`, `layout-simple`, `menu`, `menubar`, `native-select`, `navigation-menu`, `pagination`, `popover`, `progress`, `radio-group`, `resizable`, `scroll-area`, `searchable-multiselect`, `select`, `separator`, `sheet`, `sidebar`, `skeleton`, `slider`, `sonner`, `spinner`, `switch`, `table`, `tabs`, `textarea`, `toggle`, `toggle-group`, `tooltip`, `typography`, `utils`.
|
|
142
|
+
|
|
143
|
+
<!-- END GENERATED SUBPATHS -->
|
|
76
144
|
|
|
77
145
|
Anything not in this list is not part of the public surface. The published `exports` map in `package.json` reflects this set exactly — if a subpath is not listed, do not assume it is importable.
|
|
78
146
|
|
|
79
147
|
## Quick start (Angular standalone)
|
|
80
148
|
|
|
81
149
|
```ts
|
|
82
|
-
import { Component } from
|
|
83
|
-
import { HlmButtonImports } from
|
|
84
|
-
import { EgLayoutSimple, MenuItem } from
|
|
150
|
+
import { Component } from '@angular/core';
|
|
151
|
+
import { HlmButtonImports } from '@egose/shadcn-theme-ng/button';
|
|
152
|
+
import { EgLayoutSimple, MenuItem } from '@egose/shadcn-theme-ng/layout-simple';
|
|
85
153
|
|
|
86
154
|
@Component({
|
|
87
155
|
selector: "app-demo",
|
|
88
156
|
standalone: true,
|
|
89
|
-
imports: [...HlmButtonImports],
|
|
157
|
+
imports: [EgLayoutSimple, ...HlmButtonImports],
|
|
90
158
|
template: \`
|
|
91
|
-
<eg-layout-simple [
|
|
159
|
+
<eg-layout-simple [leftMenus]="items">
|
|
92
160
|
<button hlmBtn variant="primary">Click</button>
|
|
93
161
|
</eg-layout-simple>
|
|
94
162
|
\`,
|
|
@@ -98,6 +166,55 @@ export class DemoComponent {
|
|
|
98
166
|
}
|
|
99
167
|
```
|
|
100
168
|
|
|
169
|
+
## Date picker values
|
|
170
|
+
|
|
171
|
+
`hlm-date-picker` emits a native JS `Date` (or `null` when cleared) via the `dateChange` output. Read it in the
|
|
172
|
+
controller with `(dateChange)`, a template ref (`picker.value()`), or a form binding (`ngModel`/`formControlName`,
|
|
173
|
+
the picker is a `ControlValueAccessor`):
|
|
174
|
+
|
|
175
|
+
```html
|
|
176
|
+
<hlm-date-picker (dateChange)="onDate($event)">
|
|
177
|
+
<hlm-date-picker-input placeholder="Pick a date" />
|
|
178
|
+
</hlm-date-picker>
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
```ts
|
|
182
|
+
onDate(date: Date | null) {
|
|
183
|
+
// date is a JS Date, e.g. 2026-09-23T00:00:00 local time (or null on clear)
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Unlike the React `FormDatePicker` (which normalizes to local midnight), the Angular picker passes dates through
|
|
188
|
+
untouched by default: calendar clicks usually arrive at local midnight already, but dates typed into the input are
|
|
189
|
+
parsed with `new Date(value)`, where `"YYYY-MM-DD"` means UTC midnight — so the time portion can be non-zero. To
|
|
190
|
+
normalize every value reaching the controller to local midnight, provide a custom config (no library changes needed):
|
|
191
|
+
|
|
192
|
+
```ts
|
|
193
|
+
import { provideHlmDatePickerConfig } from '@egose/shadcn-theme-ng/date-picker';
|
|
194
|
+
|
|
195
|
+
@Component({
|
|
196
|
+
// ...
|
|
197
|
+
providers: [
|
|
198
|
+
provideHlmDatePickerConfig({
|
|
199
|
+
// Strip the time portion, mirroring React's normalizeDate.
|
|
200
|
+
transformDate: (date: Date) => new Date(date.getFullYear(), date.getMonth(), date.getDate()),
|
|
201
|
+
// Parse typed "YYYY-MM-DD" as a local date instead of new Date(value) (UTC).
|
|
202
|
+
parseDate: (value: string) => {
|
|
203
|
+
const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(value);
|
|
204
|
+
if (!match) return null;
|
|
205
|
+
const date = new Date(+match[1], +match[2] - 1, +match[3]);
|
|
206
|
+
return isNaN(date.getTime()) ? null : date;
|
|
207
|
+
},
|
|
208
|
+
}),
|
|
209
|
+
],
|
|
210
|
+
})
|
|
211
|
+
export class MyComponent {}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
`transformDate` runs on every path into the model (calendar selection, typed input, `writeValue`), so the controller
|
|
215
|
+
then always sees local-midnight dates. Related: the picker stays open after selection by default; add the
|
|
216
|
+
`autoCloseOnSelect` attribute (or set it in the same config) to close it on select.
|
|
217
|
+
|
|
101
218
|
## Working example
|
|
102
219
|
|
|
103
220
|
A complete Angular consumer app lives at [`@examples/standard`](https://github.com/egose/shadcn-theme/tree/main/packages/angular/@examples/standard) — see its `src/app/...` for real usage of `@egose/shadcn-theme-ng/button`, `.../layout-simple`, `.../form-text-input`, `.../autocomplete`, `.../select`, `.../form-checkbox`, `.../sheet`, etc.
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
# Accordion Subpath
|
|
2
|
+
|
|
3
|
+
This project ships only as `@egose/shadcn-theme-ng/accordion` or `@egose/shadcn-theme-ng-tw/accordion`. See the [package README](../../README.md) for installation, compatibility, Tailwind variant, test, and release guidance. Do not publish this project directory independently.
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, input, computed, Directive, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@spartan-ng/brain/accordion';
|
|
4
|
+
import { BrnAccordion, BrnAccordionContent, BrnAccordionItem, BrnAccordionTrigger } from '@spartan-ng/brain/accordion';
|
|
5
|
+
import { hlm } from '@egose/shadcn-theme-ng-tw/utils';
|
|
6
|
+
import { provideIcons } from '@ng-icons/core';
|
|
7
|
+
import { lucideChevronDown } from '@ng-icons/lucide';
|
|
8
|
+
import { provideHlmIconConfig } from '@egose/shadcn-theme-ng-tw/icon';
|
|
9
|
+
|
|
10
|
+
class HlmAccordion {
|
|
11
|
+
_brn = inject(BrnAccordion);
|
|
12
|
+
userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
|
|
13
|
+
_computedClass = computed(() => hlm('tw:flex', this._brn.orientation() === 'horizontal' ? 'tw:flex-row' : 'tw:flex-col', this.userClass()), /* @ts-ignore */
|
|
14
|
+
...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordion, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
16
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: HlmAccordion, isStandalone: true, selector: "[hlmAccordion], hlm-accordion", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAccordion, inputs: ["type", "type", "orientation", "orientation"] }], ngImport: i0 });
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordion, decorators: [{
|
|
19
|
+
type: Directive,
|
|
20
|
+
args: [{
|
|
21
|
+
selector: '[hlmAccordion], hlm-accordion',
|
|
22
|
+
host: {
|
|
23
|
+
'[class]': '_computedClass()',
|
|
24
|
+
},
|
|
25
|
+
hostDirectives: [{ directive: BrnAccordion, inputs: ['type', 'orientation'] }],
|
|
26
|
+
}]
|
|
27
|
+
}], propDecorators: { userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
|
|
28
|
+
|
|
29
|
+
class HlmAccordionContent extends BrnAccordionContent {
|
|
30
|
+
userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
|
|
31
|
+
_computedClass = computed(() => {
|
|
32
|
+
const gridRows = this.state() === 'open' ? 'tw:grid-rows-[1fr]' : 'tw:hidden';
|
|
33
|
+
return hlm('tw:grid tw:text-sm tw:transition-all', gridRows, this.userClass());
|
|
34
|
+
}, /* @ts-ignore */
|
|
35
|
+
...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
|
|
36
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionContent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.3", type: HlmAccordionContent, isStandalone: true, selector: "hlm-accordion-content", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, usesInheritance: true, ngImport: i0, template: `
|
|
38
|
+
<div [attr.inert]="_inert()" style="tw:overflow:hidden">
|
|
39
|
+
<div class="tw:flex tw:flex-col tw:gap-4 tw:text-balance tw:pb-4 tw:pt-0">
|
|
40
|
+
<ng-content />
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionContent, decorators: [{
|
|
46
|
+
type: Component,
|
|
47
|
+
args: [{
|
|
48
|
+
selector: 'hlm-accordion-content',
|
|
49
|
+
template: `
|
|
50
|
+
<div [attr.inert]="_inert()" style="tw:overflow:hidden">
|
|
51
|
+
<div class="tw:flex tw:flex-col tw:gap-4 tw:text-balance tw:pb-4 tw:pt-0">
|
|
52
|
+
<ng-content />
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
`,
|
|
56
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
57
|
+
encapsulation: ViewEncapsulation.None,
|
|
58
|
+
host: {
|
|
59
|
+
'[class]': '_computedClass()',
|
|
60
|
+
},
|
|
61
|
+
}]
|
|
62
|
+
}], propDecorators: { userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
|
|
63
|
+
|
|
64
|
+
class HlmAccordionIcon {
|
|
65
|
+
userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
|
|
66
|
+
_computedClass = computed(() => hlm('tw:text-muted-foreground tw:pointer-events-none tw:size-4 tw:shrink-0 tw:translate-y-0.5 tw:transition-transform tw:duration-200', this.userClass()), /* @ts-ignore */
|
|
67
|
+
...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
|
|
68
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
69
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: HlmAccordionIcon, isStandalone: true, selector: "ng-icon[egAccordionIcon], ng-icon[hlmAccIcon]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, providers: [provideIcons({ lucideChevronDown }), provideHlmIconConfig({ size: 'sm' })], ngImport: i0 });
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionIcon, decorators: [{
|
|
72
|
+
type: Directive,
|
|
73
|
+
args: [{
|
|
74
|
+
selector: 'ng-icon[egAccordionIcon], ng-icon[hlmAccIcon]',
|
|
75
|
+
providers: [provideIcons({ lucideChevronDown }), provideHlmIconConfig({ size: 'sm' })],
|
|
76
|
+
host: {
|
|
77
|
+
'[class]': '_computedClass()',
|
|
78
|
+
},
|
|
79
|
+
}]
|
|
80
|
+
}], propDecorators: { userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
|
|
81
|
+
|
|
82
|
+
class HlmAccordionItem {
|
|
83
|
+
userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
|
|
84
|
+
_computedClass = computed(() => hlm('tw:border-border tw:flex tw:flex-1 tw:flex-col tw:border-b', this.userClass()), /* @ts-ignore */
|
|
85
|
+
...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
|
|
86
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
87
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: HlmAccordionItem, isStandalone: true, selector: "[hlmAccordionItem],brn-accordion-item[hlm],hlm-accordion-item", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAccordionItem, inputs: ["isOpened", "isOpened"] }], ngImport: i0 });
|
|
88
|
+
}
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionItem, decorators: [{
|
|
90
|
+
type: Directive,
|
|
91
|
+
args: [{
|
|
92
|
+
selector: '[hlmAccordionItem],brn-accordion-item[hlm],hlm-accordion-item',
|
|
93
|
+
host: {
|
|
94
|
+
'[class]': '_computedClass()',
|
|
95
|
+
},
|
|
96
|
+
hostDirectives: [
|
|
97
|
+
{
|
|
98
|
+
directive: BrnAccordionItem,
|
|
99
|
+
inputs: ['isOpened'],
|
|
100
|
+
},
|
|
101
|
+
],
|
|
102
|
+
}]
|
|
103
|
+
}], propDecorators: { userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
|
|
104
|
+
|
|
105
|
+
class HlmAccordionTrigger {
|
|
106
|
+
userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
|
|
107
|
+
_computedClass = computed(() => hlm('tw:focus-visible:border-ring tw:focus-visible:ring-ring/50 tw:flex tw:flex-1 tw:items-start tw:justify-between tw:gap-4 tw:rounded-md tw:py-4 tw:text-left tw:text-sm tw:font-medium tw:outline-none tw:transition-all tw:hover:underline tw:focus-visible:ring-[3px] tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:[&[data-state=open]>[egAccIcon]]:rotate-180', this.userClass()), /* @ts-ignore */
|
|
108
|
+
...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
|
|
109
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
110
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: HlmAccordionTrigger, isStandalone: true, selector: "[hlmAccordionTrigger]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--tw-ring-offset-shadow": "\"0 0 #000\"", "class": "_computedClass()" } }, hostDirectives: [{ directive: i1.BrnAccordionTrigger }], ngImport: i0 });
|
|
111
|
+
}
|
|
112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionTrigger, decorators: [{
|
|
113
|
+
type: Directive,
|
|
114
|
+
args: [{
|
|
115
|
+
selector: '[hlmAccordionTrigger]',
|
|
116
|
+
host: {
|
|
117
|
+
'[style.--tw-ring-offset-shadow]': '"0 0 #000"',
|
|
118
|
+
'[class]': '_computedClass()',
|
|
119
|
+
},
|
|
120
|
+
hostDirectives: [BrnAccordionTrigger],
|
|
121
|
+
}]
|
|
122
|
+
}], propDecorators: { userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
|
|
123
|
+
|
|
124
|
+
/*
|
|
125
|
+
* Public API Surface of accordion
|
|
126
|
+
*/
|
|
127
|
+
const HlmAccordionImports = [
|
|
128
|
+
HlmAccordion,
|
|
129
|
+
HlmAccordionItem,
|
|
130
|
+
HlmAccordionTrigger,
|
|
131
|
+
HlmAccordionIcon,
|
|
132
|
+
HlmAccordionContent,
|
|
133
|
+
];
|
|
134
|
+
class HlmAccordionModule {
|
|
135
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
136
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionModule, imports: [HlmAccordion,
|
|
137
|
+
HlmAccordionItem,
|
|
138
|
+
HlmAccordionTrigger,
|
|
139
|
+
HlmAccordionIcon,
|
|
140
|
+
HlmAccordionContent], exports: [HlmAccordion,
|
|
141
|
+
HlmAccordionItem,
|
|
142
|
+
HlmAccordionTrigger,
|
|
143
|
+
HlmAccordionIcon,
|
|
144
|
+
HlmAccordionContent] });
|
|
145
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionModule });
|
|
146
|
+
}
|
|
147
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAccordionModule, decorators: [{
|
|
148
|
+
type: NgModule,
|
|
149
|
+
args: [{
|
|
150
|
+
imports: [...HlmAccordionImports],
|
|
151
|
+
exports: [...HlmAccordionImports],
|
|
152
|
+
}]
|
|
153
|
+
}] });
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Generated bundle index. Do not edit.
|
|
157
|
+
*/
|
|
158
|
+
|
|
159
|
+
export { HlmAccordion, HlmAccordionContent, HlmAccordionIcon, HlmAccordionImports, HlmAccordionItem, HlmAccordionModule, HlmAccordionTrigger };
|
|
160
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "accordion",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^20.2.0 || ^22.0.0",
|
|
6
|
+
"@angular/core": "^20.2.0 || ^22.0.0",
|
|
7
|
+
"@spartan-ng/brain": "^0.0.1-alpha.512"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"tslib": "^2.3.0"
|
|
11
|
+
},
|
|
12
|
+
"sideEffects": false,
|
|
13
|
+
"module": "fesm2022/accordion.mjs",
|
|
14
|
+
"typings": "types/accordion.d.ts",
|
|
15
|
+
"exports": {
|
|
16
|
+
"./package.json": {
|
|
17
|
+
"default": "./package.json"
|
|
18
|
+
},
|
|
19
|
+
".": {
|
|
20
|
+
"types": "./types/accordion.d.ts",
|
|
21
|
+
"default": "./fesm2022/accordion.mjs"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"type": "module"
|
|
25
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { ClassValue } from 'clsx';
|
|
3
|
+
import * as i1 from '@spartan-ng/brain/accordion';
|
|
4
|
+
import { BrnAccordionContent } from '@spartan-ng/brain/accordion';
|
|
5
|
+
|
|
6
|
+
declare class HlmAccordion {
|
|
7
|
+
private readonly _brn;
|
|
8
|
+
readonly userClass: i0.InputSignal<ClassValue>;
|
|
9
|
+
protected readonly _computedClass: i0.Signal<string>;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HlmAccordion, never>;
|
|
11
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<HlmAccordion, "[hlmAccordion], hlm-accordion", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.BrnAccordion; inputs: { "type": "type"; "orientation": "orientation"; }; outputs: {}; }]>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
declare class HlmAccordionContent extends BrnAccordionContent {
|
|
15
|
+
readonly userClass: i0.InputSignal<ClassValue>;
|
|
16
|
+
protected readonly _computedClass: i0.Signal<string>;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HlmAccordionContent, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<HlmAccordionContent, "hlm-accordion-content", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
declare class HlmAccordionIcon {
|
|
22
|
+
readonly userClass: i0.InputSignal<ClassValue>;
|
|
23
|
+
protected readonly _computedClass: i0.Signal<string>;
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HlmAccordionIcon, never>;
|
|
25
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<HlmAccordionIcon, "ng-icon[egAccordionIcon], ng-icon[hlmAccIcon]", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
declare class HlmAccordionItem {
|
|
29
|
+
readonly userClass: i0.InputSignal<ClassValue>;
|
|
30
|
+
protected readonly _computedClass: i0.Signal<string>;
|
|
31
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HlmAccordionItem, never>;
|
|
32
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<HlmAccordionItem, "[hlmAccordionItem],brn-accordion-item[hlm],hlm-accordion-item", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.BrnAccordionItem; inputs: { "isOpened": "isOpened"; }; outputs: {}; }]>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
declare class HlmAccordionTrigger {
|
|
36
|
+
readonly userClass: i0.InputSignal<ClassValue>;
|
|
37
|
+
protected readonly _computedClass: i0.Signal<string>;
|
|
38
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HlmAccordionTrigger, never>;
|
|
39
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<HlmAccordionTrigger, "[hlmAccordionTrigger]", never, { "userClass": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.BrnAccordionTrigger; inputs: {}; outputs: {}; }]>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
declare const HlmAccordionImports: readonly [typeof HlmAccordion, typeof HlmAccordionItem, typeof HlmAccordionTrigger, typeof HlmAccordionIcon, typeof HlmAccordionContent];
|
|
43
|
+
declare class HlmAccordionModule {
|
|
44
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HlmAccordionModule, never>;
|
|
45
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<HlmAccordionModule, never, [typeof HlmAccordion, typeof HlmAccordionItem, typeof HlmAccordionTrigger, typeof HlmAccordionIcon, typeof HlmAccordionContent], [typeof HlmAccordion, typeof HlmAccordionItem, typeof HlmAccordionTrigger, typeof HlmAccordionIcon, typeof HlmAccordionContent]>;
|
|
46
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<HlmAccordionModule>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export { HlmAccordion, HlmAccordionContent, HlmAccordionIcon, HlmAccordionImports, HlmAccordionItem, HlmAccordionModule, HlmAccordionTrigger };
|
package/alert/README.md
CHANGED
|
@@ -1,64 +1,3 @@
|
|
|
1
|
-
# Alert
|
|
1
|
+
# Alert Subpath
|
|
2
2
|
|
|
3
|
-
This project
|
|
4
|
-
|
|
5
|
-
## Code scaffolding
|
|
6
|
-
|
|
7
|
-
Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
ng generate component component-name
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
ng generate --help
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Building
|
|
20
|
-
|
|
21
|
-
To build the library, run:
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
ng build alert
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
|
|
28
|
-
|
|
29
|
-
### Publishing the Library
|
|
30
|
-
|
|
31
|
-
Once the project is built, you can publish your library by following these steps:
|
|
32
|
-
|
|
33
|
-
1. Navigate to the `dist` directory:
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
cd dist/alert
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
2. Run the `npm publish` command to publish your library to the npm registry:
|
|
40
|
-
```bash
|
|
41
|
-
npm publish
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Running unit tests
|
|
45
|
-
|
|
46
|
-
To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
ng test
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
## Running end-to-end tests
|
|
53
|
-
|
|
54
|
-
For end-to-end (e2e) testing, run:
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
ng e2e
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
|
|
61
|
-
|
|
62
|
-
## Additional Resources
|
|
63
|
-
|
|
64
|
-
For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
|
|
3
|
+
This project ships only as `@egose/shadcn-theme-ng/alert` or `@egose/shadcn-theme-ng-tw/alert`. See the [package README](../../README.md) for installation, compatibility, Tailwind variant, test, and release guidance. Do not publish this project directory independently.
|
package/alert/fesm2022/alert.mjs
CHANGED
|
@@ -68,7 +68,7 @@ const alertVariants = cva('tw:relative tw:w-full tw:items-start tw:gap-y-0.5 tw:
|
|
|
68
68
|
class: 'tw:bg-dark/20 tw:text-dark tw:[&>[hlmAlertDescription]]:text-dark',
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
|
-
variant:
|
|
71
|
+
variant: "tw:accent",
|
|
72
72
|
appearance: 'light',
|
|
73
73
|
class: 'tw:bg-accent/20 tw:text-accent tw:[&>[hlmAlertDescription]]:text-accent',
|
|
74
74
|
},
|
|
@@ -99,17 +99,20 @@ const alertVariants = cva('tw:relative tw:w-full tw:items-start tw:gap-y-0.5 tw:
|
|
|
99
99
|
},
|
|
100
100
|
});
|
|
101
101
|
class HlmAlert {
|
|
102
|
-
userClass = input('', ...(ngDevMode ?
|
|
103
|
-
variant = input('primary',
|
|
104
|
-
|
|
102
|
+
userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
|
|
103
|
+
variant = input('primary', /* @ts-ignore */
|
|
104
|
+
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
105
|
+
appearance = input('solid', /* @ts-ignore */
|
|
106
|
+
...(ngDevMode ? [{ debugName: "appearance" }] : /* istanbul ignore next */ []));
|
|
105
107
|
_computedClass = computed(() => hlm(alertVariants({
|
|
106
108
|
variant: this.variant(),
|
|
107
109
|
appearance: this.appearance(),
|
|
108
|
-
}), this.userClass()),
|
|
109
|
-
|
|
110
|
-
static
|
|
110
|
+
}), this.userClass()), /* @ts-ignore */
|
|
111
|
+
...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
|
|
112
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlert, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
113
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: HlmAlert, isStandalone: true, selector: "[hlmAlert]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "alert" }, properties: { "class": "_computedClass()" } }, ngImport: i0 });
|
|
111
114
|
}
|
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlert, decorators: [{
|
|
113
116
|
type: Directive,
|
|
114
117
|
args: [{
|
|
115
118
|
selector: '[hlmAlert]',
|
|
@@ -121,12 +124,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
121
124
|
}], propDecorators: { userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], appearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "appearance", required: false }] }] } });
|
|
122
125
|
|
|
123
126
|
class HlmAlertDescription {
|
|
124
|
-
userClass = input('', ...(ngDevMode ?
|
|
125
|
-
_computedClass = computed(() => hlm('tw:text-current tw:col-start-2 tw:grid tw:justify-items-start tw:gap-1 tw:text-sm tw:[&_p]:leading-relaxed', this.userClass()),
|
|
126
|
-
|
|
127
|
-
static
|
|
127
|
+
userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
|
|
128
|
+
_computedClass = computed(() => hlm('tw:text-current tw:col-start-2 tw:grid tw:justify-items-start tw:gap-1 tw:text-sm tw:[&_p]:leading-relaxed', this.userClass()), /* @ts-ignore */
|
|
129
|
+
...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
|
|
130
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
131
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: HlmAlertDescription, isStandalone: true, selector: "[hlmAlertDesc],[hlmAlertDescription]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
|
|
128
132
|
}
|
|
129
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
133
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertDescription, decorators: [{
|
|
130
134
|
type: Directive,
|
|
131
135
|
args: [{
|
|
132
136
|
selector: '[hlmAlertDesc],[hlmAlertDescription]',
|
|
@@ -137,10 +141,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
137
141
|
}], propDecorators: { userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
|
|
138
142
|
|
|
139
143
|
class HlmAlertIcon {
|
|
140
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
141
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
144
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
145
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: HlmAlertIcon, isStandalone: true, selector: "[hlmAlertIcon]", providers: [provideHlmIconConfig({ size: 'sm' })], ngImport: i0 });
|
|
142
146
|
}
|
|
143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
147
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertIcon, decorators: [{
|
|
144
148
|
type: Directive,
|
|
145
149
|
args: [{
|
|
146
150
|
selector: '[hlmAlertIcon]',
|
|
@@ -149,12 +153,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
149
153
|
}] });
|
|
150
154
|
|
|
151
155
|
class HlmAlertTitle {
|
|
152
|
-
userClass = input('', ...(ngDevMode ?
|
|
153
|
-
_computedClass = computed(() => hlm('tw:col-start-2 tw:line-clamp-1 tw:min-h-4 tw:text-md tw:font-semibold tw:tracking-tight', this.userClass()),
|
|
154
|
-
|
|
155
|
-
static
|
|
156
|
+
userClass = input('', { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: 'class' });
|
|
157
|
+
_computedClass = computed(() => hlm('tw:col-start-2 tw:line-clamp-1 tw:min-h-4 tw:text-md tw:font-semibold tw:tracking-tight', this.userClass()), /* @ts-ignore */
|
|
158
|
+
...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
|
|
159
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
160
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: HlmAlertTitle, isStandalone: true, selector: "[hlmAlertTitle]", inputs: { userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0 });
|
|
156
161
|
}
|
|
157
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertTitle, decorators: [{
|
|
158
163
|
type: Directive,
|
|
159
164
|
args: [{
|
|
160
165
|
selector: '[hlmAlertTitle]',
|
|
@@ -169,11 +174,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
169
174
|
*/
|
|
170
175
|
const HlmAlertImports = [HlmAlert, HlmAlertTitle, HlmAlertDescription, HlmAlertIcon];
|
|
171
176
|
class HlmAlertModule {
|
|
172
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
173
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
174
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
177
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
178
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertModule, imports: [HlmAlert, HlmAlertTitle, HlmAlertDescription, HlmAlertIcon], exports: [HlmAlert, HlmAlertTitle, HlmAlertDescription, HlmAlertIcon] });
|
|
179
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertModule });
|
|
175
180
|
}
|
|
176
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: HlmAlertModule, decorators: [{
|
|
177
182
|
type: NgModule,
|
|
178
183
|
args: [{
|
|
179
184
|
imports: [...HlmAlertImports],
|
|
@@ -186,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
186
191
|
*/
|
|
187
192
|
|
|
188
193
|
export { HlmAlert, HlmAlertDescription, HlmAlertIcon, HlmAlertImports, HlmAlertModule, HlmAlertTitle };
|
|
189
|
-
|
|
194
|
+
|