@egose/shadcn-theme-ng 0.0.28 → 0.2.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 +376 -34
- package/accordion/fesm2022/accordion.mjs +27 -39
- package/alert/README.md +343 -34
- package/alert/fesm2022/alert.mjs +47 -47
- package/alert-dialog/README.md +471 -5
- package/alert-dialog/fesm2022/alert-dialog.mjs +47 -47
- package/aspect-ratio/README.md +272 -5
- package/aspect-ratio/fesm2022/aspect-ratio.mjs +9 -9
- package/autocomplete/README.md +473 -34
- package/autocomplete/fesm2022/autocomplete.mjs +53 -71
- package/avatar/README.md +357 -5
- package/avatar/fesm2022/avatar.mjs +32 -32
- package/badge/README.md +289 -34
- package/badge/fesm2022/badge.mjs +57 -57
- package/basic-alert/README.md +324 -34
- package/basic-alert/fesm2022/basic-alert.mjs +6 -18
- package/breadcrumb/README.md +406 -5
- package/breadcrumb/fesm2022/breadcrumb.mjs +33 -39
- package/button/README.md +453 -34
- package/button/fesm2022/button.mjs +147 -219
- package/button/types/button.d.ts +7 -10
- package/button-group/README.md +318 -5
- package/button-group/fesm2022/button-group.mjs +20 -20
- package/calendar/README.md +328 -34
- package/calendar/fesm2022/calendar.mjs +29 -743
- package/card/README.md +331 -5
- package/card/fesm2022/card.mjs +33 -33
- package/carousel/README.md +333 -5
- package/carousel/fesm2022/carousel.mjs +39 -78
- package/checkbox/README.md +291 -34
- package/checkbox/fesm2022/checkbox.mjs +20 -58
- package/checkbox/types/checkbox.d.ts +5 -4
- package/collapsible/README.md +332 -5
- package/collapsible/fesm2022/collapsible.mjs +15 -15
- package/combobox/README.md +507 -5
- package/combobox/fesm2022/combobox.mjs +91 -224
- package/command/README.md +435 -5
- package/command/fesm2022/command.mjs +49 -109
- package/confirmation-dialog/README.md +272 -34
- package/confirmation-dialog/fesm2022/confirmation-dialog.mjs +15 -40
- package/confirmation-dialog/types/confirmation-dialog.d.ts +8 -4
- package/context-menu/README.md +366 -5
- package/context-menu/fesm2022/context-menu.mjs +9 -9
- package/date-picker/README.md +436 -34
- package/date-picker/fesm2022/date-picker.mjs +64 -267
- package/date-picker/types/date-picker.d.ts +7 -3
- package/dialog/README.md +419 -34
- package/dialog/fesm2022/dialog.mjs +45 -71
- package/drawer/README.md +395 -5
- package/drawer/fesm2022/drawer.mjs +44 -54
- package/dropdown-menu/README.md +417 -5
- package/dropdown-menu/fesm2022/dropdown-menu.mjs +82 -70
- package/dropdown-menu/types/dropdown-menu.d.ts +4 -0
- package/empty/README.md +329 -5
- package/empty/fesm2022/empty.mjs +30 -30
- package/field/README.md +385 -5
- package/field/fesm2022/field.mjs +56 -72
- package/form-checkbox/README.md +283 -34
- package/form-checkbox/fesm2022/form-checkbox.mjs +25 -85
- package/form-checkbox/types/form-checkbox.d.ts +7 -1
- package/form-date-picker/README.md +293 -34
- package/form-date-picker/fesm2022/form-date-picker.mjs +31 -84
- package/form-date-picker/types/form-date-picker.d.ts +7 -1
- package/form-field/README.md +327 -34
- package/form-field/fesm2022/form-field.mjs +33 -19
- package/form-field/types/form-field.d.ts +28 -20
- package/form-field-simple/README.md +311 -34
- package/form-field-simple/fesm2022/form-field-simple.mjs +4 -4
- package/form-searchable-multiselect/README.md +332 -34
- package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs +31 -91
- package/form-searchable-multiselect/types/form-searchable-multiselect.d.ts +7 -1
- package/form-select/README.md +321 -34
- package/form-select/fesm2022/form-select.mjs +32 -149
- package/form-select/types/form-select.d.ts +7 -1
- package/form-text-input/README.md +342 -34
- package/form-text-input/fesm2022/form-text-input.mjs +35 -149
- package/form-text-input/types/form-text-input.d.ts +9 -12
- package/form-textarea/README.md +318 -34
- package/form-textarea/fesm2022/form-textarea.mjs +34 -109
- package/form-textarea/types/form-textarea.d.ts +8 -1
- package/hover-card/README.md +256 -5
- package/hover-card/fesm2022/hover-card.mjs +19 -19
- package/icon/README.md +210 -34
- package/icon/fesm2022/icon.mjs +8 -8
- package/input/README.md +240 -34
- package/input/fesm2022/input.mjs +17 -12
- package/input/types/input.d.ts +2 -1
- package/input-group/README.md +335 -5
- package/input-group/fesm2022/input-group.mjs +34 -34
- package/input-otp/README.md +375 -5
- package/input-otp/fesm2022/input-otp.mjs +26 -26
- package/item/README.md +385 -5
- package/item/fesm2022/item.mjs +53 -53
- package/kbd/README.md +291 -5
- package/kbd/fesm2022/kbd.mjs +12 -12
- package/label/README.md +243 -34
- package/label/fesm2022/label.mjs +10 -10
- package/label/types/label.d.ts +1 -1
- package/layout-simple/README.md +174 -44
- package/layout-simple/fesm2022/layout-simple.mjs +508 -603
- package/layout-simple/types/layout-simple.d.ts +179 -128
- package/menu/README.md +418 -0
- package/menu/fesm2022/menu.mjs +455 -0
- package/menu/package.json +24 -0
- package/menu/types/menu.d.ts +137 -0
- package/menubar/README.md +343 -5
- package/menubar/fesm2022/menubar.mjs +13 -13
- package/native-select/README.md +323 -5
- package/native-select/fesm2022/native-select.mjs +19 -19
- package/navigation-menu/README.md +369 -5
- package/navigation-menu/fesm2022/navigation-menu.mjs +35 -47
- package/package.json +183 -154
- package/pagination/README.md +388 -5
- package/pagination/fesm2022/pagination.mjs +45 -331
- package/popover/README.md +302 -34
- package/popover/fesm2022/popover.mjs +30 -30
- package/progress/README.md +311 -5
- package/progress/fesm2022/progress.mjs +13 -13
- package/radio-group/README.md +335 -34
- package/radio-group/fesm2022/radio-group.mjs +26 -19
- package/radio-group/types/radio-group.d.ts +1 -1
- package/resizable/README.md +269 -5
- package/resizable/fesm2022/resizable.mjs +18 -26
- package/scroll-area/README.md +233 -5
- package/scroll-area/fesm2022/scroll-area.mjs +9 -9
- package/searchable-multiselect/README.md +294 -34
- package/searchable-multiselect/fesm2022/searchable-multiselect.mjs +28 -117
- package/searchable-multiselect/types/searchable-multiselect.d.ts +8 -2
- package/select/README.md +408 -34
- package/select/fesm2022/select.mjs +71 -111
- package/select/types/select.d.ts +3 -1
- package/separator/README.md +193 -34
- package/separator/fesm2022/separator.mjs +9 -9
- package/separator/types/separator.d.ts +1 -1
- package/sheet/README.md +282 -34
- package/sheet/fesm2022/sheet.mjs +41 -53
- package/sidebar/README.md +457 -5
- package/sidebar/fesm2022/sidebar.mjs +125 -227
- package/skeleton/README.md +217 -5
- package/skeleton/fesm2022/skeleton.mjs +9 -9
- package/slider/README.md +273 -5
- package/slider/fesm2022/slider.mjs +10 -80
- package/sonner/README.md +317 -34
- package/sonner/fesm2022/sonner.mjs +13 -13
- package/spinner/README.md +255 -34
- package/spinner/fesm2022/spinner.mjs +11 -11
- package/switch/README.md +281 -34
- package/switch/fesm2022/switch.mjs +13 -15
- package/table/README.md +423 -5
- package/table/fesm2022/table.mjs +41 -41
- package/tabs/README.md +382 -34
- package/tabs/fesm2022/tabs.mjs +35 -111
- package/textarea/README.md +282 -5
- package/textarea/fesm2022/textarea.mjs +9 -9
- package/toggle/README.md +270 -5
- package/toggle/fesm2022/toggle.mjs +13 -13
- package/toggle-group/README.md +340 -5
- package/toggle-group/fesm2022/toggle-group.mjs +13 -13
- package/toggle-group/types/toggle-group.d.ts +13 -7
- package/tooltip/README.md +240 -34
- package/tooltip/fesm2022/tooltip.mjs +14 -14
- package/typography/README.md +271 -5
- package/typography/fesm2022/typography.mjs +53 -53
- package/typography/types/typography.d.ts +19 -19
- package/utils/README.md +274 -34
- package/utils/fesm2022/utils.mjs +68 -44
- package/accordion/fesm2022/accordion.mjs.map +0 -1
- package/alert/fesm2022/alert.mjs.map +0 -1
- package/alert-dialog/fesm2022/alert-dialog.mjs.map +0 -1
- package/aspect-ratio/fesm2022/aspect-ratio.mjs.map +0 -1
- package/autocomplete/fesm2022/autocomplete.mjs.map +0 -1
- package/avatar/fesm2022/avatar.mjs.map +0 -1
- package/badge/fesm2022/badge.mjs.map +0 -1
- package/basic-alert/fesm2022/basic-alert.mjs.map +0 -1
- package/breadcrumb/fesm2022/breadcrumb.mjs.map +0 -1
- package/button/fesm2022/button.mjs.map +0 -1
- package/button-group/fesm2022/button-group.mjs.map +0 -1
- package/calendar/fesm2022/calendar.mjs.map +0 -1
- package/card/fesm2022/card.mjs.map +0 -1
- package/carousel/fesm2022/carousel.mjs.map +0 -1
- package/checkbox/fesm2022/checkbox.mjs.map +0 -1
- package/collapsible/fesm2022/collapsible.mjs.map +0 -1
- package/combobox/fesm2022/combobox.mjs.map +0 -1
- package/command/fesm2022/command.mjs.map +0 -1
- package/confirmation-dialog/fesm2022/confirmation-dialog.mjs.map +0 -1
- package/context-menu/fesm2022/context-menu.mjs.map +0 -1
- package/date-picker/fesm2022/date-picker.mjs.map +0 -1
- package/dialog/fesm2022/dialog.mjs.map +0 -1
- package/drawer/fesm2022/drawer.mjs.map +0 -1
- package/dropdown-menu/fesm2022/dropdown-menu.mjs.map +0 -1
- package/empty/fesm2022/empty.mjs.map +0 -1
- package/field/fesm2022/field.mjs.map +0 -1
- package/form-checkbox/fesm2022/form-checkbox.mjs.map +0 -1
- 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-simple/fesm2022/form-field-simple.mjs.map +0 -1
- package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.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/hover-card/fesm2022/hover-card.mjs.map +0 -1
- package/icon/fesm2022/icon.mjs.map +0 -1
- package/input/fesm2022/input.mjs.map +0 -1
- package/input-group/fesm2022/input-group.mjs.map +0 -1
- package/input-otp/fesm2022/input-otp.mjs.map +0 -1
- package/item/fesm2022/item.mjs.map +0 -1
- package/kbd/fesm2022/kbd.mjs.map +0 -1
- package/label/fesm2022/label.mjs.map +0 -1
- package/layout-simple/fesm2022/layout-simple.mjs.map +0 -1
- package/menubar/fesm2022/menubar.mjs.map +0 -1
- package/native-select/fesm2022/native-select.mjs.map +0 -1
- package/navigation-menu/fesm2022/navigation-menu.mjs.map +0 -1
- package/pagination/fesm2022/pagination.mjs.map +0 -1
- package/popover/fesm2022/popover.mjs.map +0 -1
- package/progress/fesm2022/progress.mjs.map +0 -1
- package/radio-group/fesm2022/radio-group.mjs.map +0 -1
- package/resizable/fesm2022/resizable.mjs.map +0 -1
- package/scroll-area/fesm2022/scroll-area.mjs.map +0 -1
- package/searchable-multiselect/fesm2022/searchable-multiselect.mjs.map +0 -1
- package/select/fesm2022/select.mjs.map +0 -1
- package/separator/fesm2022/separator.mjs.map +0 -1
- package/sheet/fesm2022/sheet.mjs.map +0 -1
- package/sidebar/fesm2022/sidebar.mjs.map +0 -1
- package/skeleton/fesm2022/skeleton.mjs.map +0 -1
- package/slider/fesm2022/slider.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/table/fesm2022/table.mjs.map +0 -1
- package/tabs/fesm2022/tabs.mjs.map +0 -1
- package/textarea/fesm2022/textarea.mjs.map +0 -1
- package/toggle/fesm2022/toggle.mjs.map +0 -1
- package/toggle-group/fesm2022/toggle-group.mjs.map +0 -1
- package/tooltip/fesm2022/tooltip.mjs.map +0 -1
- package/typography/fesm2022/typography.mjs.map +0 -1
- package/utils/fesm2022/utils.mjs.map +0 -1
package/utils/README.md
CHANGED
|
@@ -1,64 +1,304 @@
|
|
|
1
|
-
# Utils
|
|
1
|
+
# Utils (`@egose/shadcn-theme-ng/utils`)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Shared styling and setup helpers used by every component in this library — equivalent to the `cn()`/`lib/utils` module in [shadcn/ui](https://ui.shadcn.com/docs/installation). This subpath exports **`hlm()`** (the `clsx` + `tailwind-merge` class merger), **`classes()`** (the reactive host-class manager behind every `hlm*` directive), and **`provideSpartanHlm()`** (the app-level overlay provider). It has no components and no `*Imports`/`*Module` — import the functions directly. Notably, `classes()` is SSR-safe (no `MutationObserver` on the server), transition-flash-safe (suppresses CSS transitions on first apply), and teardown-safe (disconnects observers / cancels animation frames via `DestroyRef`).
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
> **Ships as:** `@egose/shadcn-theme-ng/utils` and `@egose/shadcn-theme-ng-tw/utils` (the `tw:`-prefixed Tailwind variant). See the [package README](../../README.md) for install steps, peer dependencies, Tailwind setup, and testing/release guidance. Do not publish this project directory independently.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Installation
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
|
|
10
|
+
# Plain Tailwind (no prefix)
|
|
11
|
+
npm install @egose/shadcn-theme-ng
|
|
12
|
+
|
|
13
|
+
# Or the tw:-prefixed variant
|
|
14
|
+
npm install @egose/shadcn-theme-ng-tw
|
|
11
15
|
```
|
|
12
16
|
|
|
13
|
-
|
|
17
|
+
`clsx` and `tailwind-merge` arrive transitively. See the [package README](../../README.md) for the full peer-dependency table.
|
|
14
18
|
|
|
15
|
-
|
|
16
|
-
|
|
19
|
+
Register the environment provider once at bootstrap (required for overlay-based components):
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
// app.config.ts
|
|
23
|
+
import { ApplicationConfig } from '@angular/core';
|
|
24
|
+
import { provideSpartanHlm } from '@egose/shadcn-theme-ng/utils';
|
|
25
|
+
|
|
26
|
+
export const appConfig: ApplicationConfig = {
|
|
27
|
+
providers: [provideSpartanHlm()],
|
|
28
|
+
};
|
|
17
29
|
```
|
|
18
30
|
|
|
19
|
-
##
|
|
31
|
+
## Imports
|
|
20
32
|
|
|
21
|
-
|
|
33
|
+
All public symbols are re-exported from `projects/utils/src/public-api.ts` (`./lib/utils` + `./lib/provide-spartan-hlm`):
|
|
22
34
|
|
|
23
|
-
```
|
|
24
|
-
|
|
35
|
+
```ts
|
|
36
|
+
import { classes, hlm, provideSpartanHlm } from '@egose/shadcn-theme-ng/utils';
|
|
37
|
+
// tw variant: swap to '@egose/shadcn-theme-ng-tw/utils'
|
|
25
38
|
```
|
|
26
39
|
|
|
27
|
-
|
|
40
|
+
| Symbol | Kind | Signature (real) | Description |
|
|
41
|
+
| ------------------- | -------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------ |
|
|
42
|
+
| `hlm` | Function | `hlm(...inputs: ClassValue[]): string` | Merges class lists (`twMerge(clsx(inputs))`). |
|
|
43
|
+
| `classes` | Function | `classes(computed: () => ClassValue[] \| string, options?: ClassesOptions): void` | Reactively applies computed classes to the host element. |
|
|
44
|
+
| `provideSpartanHlm` | Function | `provideSpartanHlm(): EnvironmentProviders` | Provides `OVERLAY_DEFAULT_CONFIG` (`{ usePopover: false }`). |
|
|
28
45
|
|
|
29
|
-
|
|
46
|
+
`ClassesOptions` (interface, not exported from the barrel — structural shape):
|
|
30
47
|
|
|
31
|
-
|
|
48
|
+
```ts
|
|
49
|
+
interface ClassesOptions {
|
|
50
|
+
elementRef?: ElementRef<HTMLElement>;
|
|
51
|
+
injector?: Injector;
|
|
52
|
+
}
|
|
53
|
+
```
|
|
32
54
|
|
|
33
|
-
|
|
55
|
+
There is no `UtilsImports` / `UtilsModule` — nothing to add to `imports: [...]`.
|
|
34
56
|
|
|
35
|
-
|
|
36
|
-
cd dist/utils
|
|
37
|
-
```
|
|
57
|
+
## Anatomy / Structure
|
|
38
58
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
59
|
+
```ts
|
|
60
|
+
// 1. One-off merge (templates, custom components)
|
|
61
|
+
import { hlm } from '@egose/shadcn-theme-ng/utils';
|
|
62
|
+
const cls = hlm('px-4 py-2', condition && 'bg-primary', userClass);
|
|
43
63
|
|
|
44
|
-
|
|
64
|
+
// 2. Reactive host styling (directives/components)
|
|
65
|
+
import { Directive } from '@angular/core';
|
|
66
|
+
import { classes } from '@egose/shadcn-theme-ng/utils';
|
|
45
67
|
|
|
46
|
-
|
|
68
|
+
@Directive({ selector: '[myStyled]' })
|
|
69
|
+
export class MyStyled {
|
|
70
|
+
constructor() {
|
|
71
|
+
classes(() => 'rounded-md border bg-background');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
47
74
|
|
|
48
|
-
|
|
49
|
-
ng
|
|
75
|
+
// 3. App bootstrap (once)
|
|
76
|
+
import { provideSpartanHlm } from '@egose/shadcn-theme-ng/utils';
|
|
77
|
+
export const appConfig: ApplicationConfig = { providers: [provideSpartanHlm()] };
|
|
50
78
|
```
|
|
51
79
|
|
|
52
|
-
##
|
|
80
|
+
## API reference
|
|
53
81
|
|
|
54
|
-
|
|
82
|
+
### `hlm(...inputs: ClassValue[]): string`
|
|
55
83
|
|
|
56
|
-
|
|
57
|
-
|
|
84
|
+
Merges any `clsx`-compatible inputs (`string | string[] | Record<string, boolean> | false | null | undefined`, nested) and resolves Tailwind conflicts with `twMerge`. Later arguments win on conflict.
|
|
85
|
+
|
|
86
|
+
| Call | Result |
|
|
87
|
+
| ------------------------------------------------------- | ---------------------------- |
|
|
88
|
+
| `hlm('px-2 px-4')` | `'px-4'` (conflict resolved) |
|
|
89
|
+
| `hlm('text-sm', isActive && 'text-primary', userClass)` | conditional merge |
|
|
90
|
+
| `hlm(['rounded', { 'bg-muted': selected }])` | array/object forms |
|
|
91
|
+
|
|
92
|
+
Backed by `clsx` + `tailwind-merge`; string inputs are cached (up to 1000 entries) internally.
|
|
93
|
+
|
|
94
|
+
### `classes(computed, options?): void`
|
|
95
|
+
|
|
96
|
+
Runs in an injection context (`runInInjectionContext`) and wires the host element to a reactive class computation. Must be called in a constructor (or any injection context) of a directive/component.
|
|
97
|
+
|
|
98
|
+
- `computed: () => ClassValue[] | string` — re-evaluated in an `effect()`; any signals read inside are tracked, so class updates are automatic.
|
|
99
|
+
- `options.elementRef?: ElementRef<HTMLElement>` — defaults to the injected host `ElementRef`. Pass explicitly for out-of-band elements (tests, portals, iframes).
|
|
100
|
+
- `options.injector?: Injector` — defaults to the current injector. Pass explicitly when calling outside the construction context (e.g. per-document setup in tests).
|
|
101
|
+
|
|
102
|
+
Behavioral guarantees (verified by `utils.spec.ts`):
|
|
103
|
+
|
|
104
|
+
- Base-class preservation: pre-existing `class` attribute values and externally added classes are kept and re-merged (not wiped) via a per-document `MutationObserver`.
|
|
105
|
+
- Scoped observation: one shared observer per `Document` (isolated per iframe document); unrelated elements never trigger callbacks.
|
|
106
|
+
- Transition suppression: CSS `transition` is forced to `none !important` on first apply, then restored on the next animation frame — prevents initial style flashes.
|
|
107
|
+
- Teardown: `DestroyRef.onDestroy` removes the source, cancels pending RAFs, restores transitions, disconnects the observer when the last managed element is destroyed, and cleans per-document state.
|
|
108
|
+
- SSR-safe: no `MutationObserver` is created when `PLATFORM_ID` is `'server'`.
|
|
109
|
+
|
|
110
|
+
### `provideSpartanHlm(): EnvironmentProviders`
|
|
111
|
+
|
|
112
|
+
```ts
|
|
113
|
+
export function provideSpartanHlm(): EnvironmentProviders {
|
|
114
|
+
return makeEnvironmentProviders([{ provide: OVERLAY_DEFAULT_CONFIG, useValue: { usePopover: false } }]);
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Call once in `appConfig.providers`. Forces CDK overlays (tooltip, popover, dropdown, dialog, …) to use the classic overlay strategy instead of the native `popover` API.
|
|
119
|
+
|
|
120
|
+
## Examples
|
|
121
|
+
|
|
122
|
+
### 1. `hlm()` — conditional class merging
|
|
123
|
+
|
|
124
|
+
```ts
|
|
125
|
+
// demo-merge.component.ts
|
|
126
|
+
import { Component, input } from '@angular/core';
|
|
127
|
+
import { hlm } from '@egose/shadcn-theme-ng/utils';
|
|
128
|
+
|
|
129
|
+
@Component({
|
|
130
|
+
selector: 'demo-merge',
|
|
131
|
+
standalone: true,
|
|
132
|
+
template: `<div [class]="cls()">Hello</div>`,
|
|
133
|
+
})
|
|
134
|
+
export class DemoMerge {
|
|
135
|
+
readonly active = input(false);
|
|
136
|
+
readonly userClass = input<string>('', { alias: 'class' });
|
|
137
|
+
|
|
138
|
+
protected cls() {
|
|
139
|
+
return hlm(
|
|
140
|
+
'rounded-md border px-4 py-2 text-sm',
|
|
141
|
+
this.active() && 'border-primary bg-primary/10',
|
|
142
|
+
this.userClass(),
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
```html
|
|
149
|
+
<demo-merge [active]="true" class="shadow-lg" />
|
|
150
|
+
<!-- later utilities win: hlm('px-2 px-4') === 'px-4' -->
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 2. `hlm()` — object / array forms
|
|
154
|
+
|
|
155
|
+
```ts
|
|
156
|
+
import { hlm } from '@egose/shadcn-theme-ng/utils';
|
|
157
|
+
|
|
158
|
+
const cls = hlm(
|
|
159
|
+
['inline-flex items-center gap-2', 'rounded-md'],
|
|
160
|
+
{ 'bg-primary text-primary-foreground': true, 'opacity-50': false },
|
|
161
|
+
null,
|
|
162
|
+
undefined,
|
|
163
|
+
);
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### 3. `classes()` — custom styled directive (signal-reactive)
|
|
167
|
+
|
|
168
|
+
```ts
|
|
169
|
+
// status-dot.directive.ts
|
|
170
|
+
import { Directive, input } from '@angular/core';
|
|
171
|
+
import { classes } from '@egose/shadcn-theme-ng/utils';
|
|
172
|
+
|
|
173
|
+
@Directive({ selector: '[statusDot]' })
|
|
174
|
+
export class StatusDot {
|
|
175
|
+
readonly tone = input<'ok' | 'warn' | 'bad'>('ok');
|
|
176
|
+
|
|
177
|
+
constructor() {
|
|
178
|
+
classes(() => [
|
|
179
|
+
'inline-block size-2 rounded-full',
|
|
180
|
+
this.tone() === 'ok' && 'bg-emerald-500',
|
|
181
|
+
this.tone() === 'warn' && 'bg-amber-500',
|
|
182
|
+
this.tone() === 'bad' && 'bg-destructive',
|
|
183
|
+
]);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
```ts
|
|
189
|
+
// usage
|
|
190
|
+
import { Component } from '@angular/core';
|
|
191
|
+
|
|
192
|
+
@Component({
|
|
193
|
+
selector: 'demo-dot',
|
|
194
|
+
standalone: true,
|
|
195
|
+
imports: [StatusDot],
|
|
196
|
+
template: `
|
|
197
|
+
<span statusDot tone="ok"></span>
|
|
198
|
+
<span statusDot tone="bad" class="ml-2"></span>
|
|
199
|
+
`,
|
|
200
|
+
})
|
|
201
|
+
export class DemoDot {}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
The trailing `class="ml-2"` is preserved — `classes()` merges base classes instead of overwriting them.
|
|
205
|
+
|
|
206
|
+
### 4. `classes()` — variant-driven component (cva + signals)
|
|
207
|
+
|
|
208
|
+
```ts
|
|
209
|
+
// pill.component.ts
|
|
210
|
+
import { Component, input } from '@angular/core';
|
|
211
|
+
import { cva, type VariantProps } from 'class-variance-authority';
|
|
212
|
+
import { classes } from '@egose/shadcn-theme-ng/utils';
|
|
213
|
+
|
|
214
|
+
export const pillVariants = cva('inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium', {
|
|
215
|
+
variants: { tone: { default: 'bg-muted', brand: 'bg-primary text-primary-foreground' } },
|
|
216
|
+
defaultVariants: { tone: 'default' },
|
|
217
|
+
});
|
|
218
|
+
export type PillTones = VariantProps<typeof pillVariants>;
|
|
219
|
+
|
|
220
|
+
@Component({
|
|
221
|
+
selector: 'demo-pill',
|
|
222
|
+
standalone: true,
|
|
223
|
+
template: `<ng-content />`,
|
|
224
|
+
})
|
|
225
|
+
export class DemoPill {
|
|
226
|
+
readonly tone = input<PillTones['tone']>('default');
|
|
227
|
+
|
|
228
|
+
constructor() {
|
|
229
|
+
classes(() => pillVariants({ tone: this.tone() }));
|
|
230
|
+
}
|
|
231
|
+
}
|
|
58
232
|
```
|
|
59
233
|
|
|
60
|
-
|
|
234
|
+
### 5. `provideSpartanHlm()` — app bootstrap + overlay consumers
|
|
235
|
+
|
|
236
|
+
```ts
|
|
237
|
+
// app.config.ts
|
|
238
|
+
import { ApplicationConfig } from '@angular/core';
|
|
239
|
+
import { provideAnimations } from '@angular/platform-browser/animations';
|
|
240
|
+
import { provideSpartanHlm } from '@egose/shadcn-theme-ng/utils';
|
|
241
|
+
|
|
242
|
+
export const appConfig: ApplicationConfig = {
|
|
243
|
+
providers: [provideAnimations(), provideSpartanHlm()],
|
|
244
|
+
};
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Any overlay component (tooltip, popover, dropdown-menu, dialog, hover-card, …) then uses the supported overlay strategy without per-component configuration:
|
|
248
|
+
|
|
249
|
+
```ts
|
|
250
|
+
// demo-overlay.component.ts
|
|
251
|
+
import { Component } from '@angular/core';
|
|
252
|
+
import { HlmTooltipImports } from '@egose/shadcn-theme-ng/tooltip';
|
|
253
|
+
import { HlmButtonImports } from '@egose/shadcn-theme-ng/button';
|
|
254
|
+
|
|
255
|
+
@Component({
|
|
256
|
+
selector: 'demo-overlay',
|
|
257
|
+
standalone: true,
|
|
258
|
+
imports: [...HlmTooltipImports, ...HlmButtonImports],
|
|
259
|
+
template: `<button hlmBtn [hlmTooltip]="'Overlay-styled hint'">Hover</button>`,
|
|
260
|
+
})
|
|
261
|
+
export class DemoOverlay {}
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### 6. Advanced: explicit `elementRef` / multi-document usage
|
|
265
|
+
|
|
266
|
+
```ts
|
|
267
|
+
// managed-element.service.ts (e.g. portals, iframes, tests)
|
|
268
|
+
import { DOCUMENT, Injectable, inject, Injector, ElementRef } from '@angular/core';
|
|
269
|
+
import { classes } from '@egose/shadcn-theme-ng/utils';
|
|
270
|
+
|
|
271
|
+
@Injectable({ providedIn: 'root' })
|
|
272
|
+
export class ManagedElementService {
|
|
273
|
+
private readonly injector = inject(Injector);
|
|
274
|
+
private readonly document = inject(DOCUMENT);
|
|
275
|
+
|
|
276
|
+
styleDetached(element: HTMLElement, extra: string) {
|
|
277
|
+
// Drives classes on an element outside the current host,
|
|
278
|
+
// tracked against this injector's DestroyRef lifecycle.
|
|
279
|
+
classes(() => ['rounded-md border', extra], {
|
|
280
|
+
elementRef: new ElementRef(element),
|
|
281
|
+
injector: this.injector,
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Per-document observer isolation means elements in different `Document`s (iframes) each get their own observer lifecycle — destroying the injector disconnects only its own document's observer.
|
|
288
|
+
|
|
289
|
+
## Accessibility notes
|
|
290
|
+
|
|
291
|
+
- `hlm()`/`classes()` are styling-only — they confer no semantics. Pair visual treatments with real roles, labels, and focus management from the component subpaths.
|
|
292
|
+
- When toggling state classes (e.g. `bg-destructive` for errors), always also surface a text cue (`hlm-error`, `aria-invalid`, `aria-describedby`) — color alone is not perceivable.
|
|
293
|
+
- Transition suppression in `classes()` avoids first-paint flashes but does not disable motion for users with `prefers-reduced-motion` — respect that media query in your own animation utilities.
|
|
294
|
+
|
|
295
|
+
## Theming / CSS variables
|
|
296
|
+
|
|
297
|
+
No theme of its own — `hlm()`/`classes()` are token-agnostic mergers. They resolve whatever utilities you pass (including shadcn theme tokens like `bg-background`, `text-muted-foreground`, `border-input`), so output follows your configured theme automatically.
|
|
61
298
|
|
|
62
|
-
##
|
|
299
|
+
## Related subpaths
|
|
63
300
|
|
|
64
|
-
|
|
301
|
+
- Every component subpath (`button`, `dialog`, `table`, …) — all consume `hlm()`/`classes()` internally; import this subpath when building custom shadcn-styled directives.
|
|
302
|
+
- `@egose/shadcn-theme-ng/tooltip` — example consumer of `hlm()` for arrow/content classes (`tooltipPositionVariants`).
|
|
303
|
+
- `@egose/shadcn-theme-ng/toggle` / `@egose/shadcn-theme-ng/toggle-group` — example consumers of the cva + `classes()` pattern.
|
|
304
|
+
- `@egose/shadcn-theme-ng/typography` — example consumer re-exporting class constants composed with `hlm()`.
|
package/utils/fesm2022/utils.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isPlatformBrowser } from '@angular/common';
|
|
1
|
+
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
2
2
|
import { runInInjectionContext, inject, Injector, ElementRef, PLATFORM_ID, DestroyRef, HostAttributeToken, effect, makeEnvironmentProviders } from '@angular/core';
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
@@ -7,19 +7,19 @@ import { OVERLAY_DEFAULT_CONFIG } from '@angular/cdk/overlay';
|
|
|
7
7
|
function hlm(...inputs) {
|
|
8
8
|
return twMerge(clsx(inputs));
|
|
9
9
|
}
|
|
10
|
-
const
|
|
11
|
-
let globalObserver = null;
|
|
12
|
-
const observedElements = new Set();
|
|
10
|
+
const documentClassStates = new WeakMap();
|
|
13
11
|
let sourceCounter = 0;
|
|
14
12
|
function classes(computed, options = {}) {
|
|
15
13
|
runInInjectionContext(options.injector ?? inject(Injector), () => {
|
|
16
14
|
const elementRef = options.elementRef ?? inject(ElementRef);
|
|
17
15
|
const platformId = inject(PLATFORM_ID);
|
|
16
|
+
const document = inject(DOCUMENT);
|
|
18
17
|
const destroyRef = inject(DestroyRef);
|
|
19
18
|
const baseClasses = inject(new HostAttributeToken('class'), { optional: true });
|
|
20
19
|
const element = elementRef.nativeElement;
|
|
21
20
|
const sourceId = sourceCounter++;
|
|
22
|
-
|
|
21
|
+
const state = getDocumentState(document);
|
|
22
|
+
let manager = state.managers.get(element);
|
|
23
23
|
if (!manager) {
|
|
24
24
|
const initialBaseClasses = new Set();
|
|
25
25
|
if (baseClasses) {
|
|
@@ -36,11 +36,12 @@ function classes(computed, options = {}) {
|
|
|
36
36
|
transitionsSuppressed: false,
|
|
37
37
|
previousTransition: '',
|
|
38
38
|
previousTransitionPriority: '',
|
|
39
|
+
state,
|
|
40
|
+
view: document.defaultView,
|
|
39
41
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
if (isPlatformBrowser(platformId)) {
|
|
42
|
+
state.managers.set(element, manager);
|
|
43
|
+
observeManagedElement(state, element, platformId, document);
|
|
44
|
+
if (isPlatformBrowser(platformId) && manager.view) {
|
|
44
45
|
manager.previousTransition = element.style.getPropertyValue('transition');
|
|
45
46
|
manager.previousTransitionPriority = element.style.getPropertyPriority('transition');
|
|
46
47
|
element.style.setProperty('transition', 'none', 'important');
|
|
@@ -57,7 +58,7 @@ function classes(computed, options = {}) {
|
|
|
57
58
|
updateElement(manager);
|
|
58
59
|
if (manager.transitionsSuppressed) {
|
|
59
60
|
manager.transitionsSuppressed = false;
|
|
60
|
-
manager.restoreRafId = requestAnimationFrame(() => {
|
|
61
|
+
manager.restoreRafId = manager.view.requestAnimationFrame(() => {
|
|
61
62
|
manager.restoreRafId = null;
|
|
62
63
|
restoreTransitionSuppression(manager);
|
|
63
64
|
});
|
|
@@ -65,7 +66,7 @@ function classes(computed, options = {}) {
|
|
|
65
66
|
}
|
|
66
67
|
destroyRef.onDestroy(() => {
|
|
67
68
|
if (manager.restoreRafId !== null) {
|
|
68
|
-
cancelAnimationFrame(manager.restoreRafId);
|
|
69
|
+
manager.view?.cancelAnimationFrame(manager.restoreRafId);
|
|
69
70
|
manager.restoreRafId = null;
|
|
70
71
|
}
|
|
71
72
|
if (manager.transitionsSuppressed) {
|
|
@@ -74,7 +75,7 @@ function classes(computed, options = {}) {
|
|
|
74
75
|
}
|
|
75
76
|
manager.sources.delete(sourceId);
|
|
76
77
|
if (manager.sources.size === 0) {
|
|
77
|
-
cleanupManager(
|
|
78
|
+
cleanupManager(manager);
|
|
78
79
|
}
|
|
79
80
|
else {
|
|
80
81
|
updateElement(manager);
|
|
@@ -92,38 +93,48 @@ function restoreTransitionSuppression(manager) {
|
|
|
92
93
|
manager.element.style.removeProperty('transition');
|
|
93
94
|
}
|
|
94
95
|
}
|
|
95
|
-
function
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
96
|
+
function getDocumentState(document) {
|
|
97
|
+
let state = documentClassStates.get(document);
|
|
98
|
+
if (!state) {
|
|
99
|
+
state = { document, managers: new Map(), observer: null };
|
|
100
|
+
documentClassStates.set(document, state);
|
|
101
|
+
}
|
|
102
|
+
return state;
|
|
103
|
+
}
|
|
104
|
+
function observeManagedElement(state, element, platformId, document) {
|
|
105
|
+
const MutationObserver = document.defaultView?.MutationObserver;
|
|
106
|
+
if (isPlatformBrowser(platformId) && MutationObserver) {
|
|
107
|
+
if (!state.observer) {
|
|
108
|
+
state.observer = new MutationObserver((mutations) => {
|
|
109
|
+
for (const mutation of mutations) {
|
|
110
|
+
if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
|
|
111
|
+
const element = mutation.target;
|
|
112
|
+
const manager = state.managers.get(element);
|
|
113
|
+
if (manager) {
|
|
114
|
+
if (manager.isUpdating)
|
|
115
|
+
continue;
|
|
116
|
+
const currentClasses = toClassList(element.className);
|
|
117
|
+
const allSourceClasses = new Set();
|
|
118
|
+
for (const source of manager.sources.values()) {
|
|
119
|
+
for (const className of source.classes) {
|
|
120
|
+
allSourceClasses.add(className);
|
|
121
|
+
}
|
|
110
122
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
123
|
+
manager.baseClasses.clear();
|
|
124
|
+
for (const className of currentClasses) {
|
|
125
|
+
if (!allSourceClasses.has(className)) {
|
|
126
|
+
manager.baseClasses.add(className);
|
|
127
|
+
}
|
|
116
128
|
}
|
|
129
|
+
updateElement(manager);
|
|
117
130
|
}
|
|
118
|
-
updateElement(manager);
|
|
119
131
|
}
|
|
120
132
|
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
state.observer.observe(element, {
|
|
124
136
|
attributes: true,
|
|
125
137
|
attributeFilter: ['class'],
|
|
126
|
-
subtree: true,
|
|
127
138
|
});
|
|
128
139
|
}
|
|
129
140
|
}
|
|
@@ -157,12 +168,25 @@ function updateElement(manager) {
|
|
|
157
168
|
}
|
|
158
169
|
manager.isUpdating = false;
|
|
159
170
|
}
|
|
160
|
-
function cleanupManager(
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if (
|
|
164
|
-
|
|
165
|
-
|
|
171
|
+
function cleanupManager(manager) {
|
|
172
|
+
const { element, state } = manager;
|
|
173
|
+
state.managers.delete(element);
|
|
174
|
+
if (state.observer) {
|
|
175
|
+
state.observer.disconnect();
|
|
176
|
+
if (state.managers.size === 0) {
|
|
177
|
+
state.observer = null;
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
for (const managedElement of state.managers.keys()) {
|
|
181
|
+
state.observer.observe(managedElement, {
|
|
182
|
+
attributes: true,
|
|
183
|
+
attributeFilter: ['class'],
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
if (state.managers.size === 0) {
|
|
189
|
+
documentClassStates.delete(state.document);
|
|
166
190
|
}
|
|
167
191
|
}
|
|
168
192
|
const classListCache = new Map();
|
|
@@ -197,4 +221,4 @@ function provideSpartanHlm() {
|
|
|
197
221
|
*/
|
|
198
222
|
|
|
199
223
|
export { classes, hlm, provideSpartanHlm };
|
|
200
|
-
|
|
224
|
+
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.mjs","sources":["../../../projects/accordion/src/lib/accordion.ts","../../../projects/accordion/src/lib/accordion-content.ts","../../../projects/accordion/src/lib/accordion-icon.ts","../../../projects/accordion/src/lib/accordion-item.ts","../../../projects/accordion/src/lib/accordion-trigger.ts","../../../projects/accordion/src/public-api.ts","../../../projects/accordion/src/accordion.ts"],"sourcesContent":["import { Directive, computed, inject, input } from '@angular/core';\nimport { BrnAccordion } from '@spartan-ng/brain/accordion';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmAccordion], hlm-accordion',\n host: {\n '[class]': '_computedClass()',\n },\n hostDirectives: [{ directive: BrnAccordion, inputs: ['type', 'orientation'] }],\n})\nexport class HlmAccordion {\n private readonly _brn = inject(BrnAccordion);\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm('tw:flex', this._brn.orientation() === 'horizontal' ? 'tw:flex-row' : 'tw:flex-col', this.userClass()),\n );\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\nimport { BrnAccordionContent } from '@spartan-ng/brain/accordion';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-accordion-content',\n template: `\n <div [attr.inert]=\"_inert()\" style=\"tw:overflow:hidden\">\n <div class=\"tw:flex tw:flex-col tw:gap-4 tw:text-balance tw:pb-4 tw:pt-0\">\n <ng-content />\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmAccordionContent extends BrnAccordionContent {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => {\n const gridRows = this.state() === 'open' ? 'tw:grid-rows-[1fr]' : 'tw:hidden';\n return hlm('tw:grid tw:text-sm tw:transition-all', gridRows, this.userClass());\n });\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { provideHlmIconConfig } from '@egose/shadcn-theme-ng/icon';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: 'ng-icon[egAccordionIcon], ng-icon[hlmAccIcon]',\n providers: [provideIcons({ lucideChevronDown }), provideHlmIconConfig({ size: 'sm' })],\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmAccordionIcon {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(\n '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',\n this.userClass(),\n ),\n );\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { BrnAccordionItem } from '@spartan-ng/brain/accordion';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmAccordionItem],brn-accordion-item[hlm],hlm-accordion-item',\n host: {\n '[class]': '_computedClass()',\n },\n hostDirectives: [\n {\n directive: BrnAccordionItem,\n inputs: ['isOpened'],\n },\n ],\n})\nexport class HlmAccordionItem {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm('tw:border-border tw:flex tw:flex-1 tw:flex-col tw:border-b', this.userClass()),\n );\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { BrnAccordionTrigger } from '@spartan-ng/brain/accordion';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmAccordionTrigger]',\n host: {\n '[style.--tw-ring-offset-shadow]': '\"0 0 #000\"',\n '[class]': '_computedClass()',\n },\n hostDirectives: [BrnAccordionTrigger],\n})\nexport class HlmAccordionTrigger {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(\n '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',\n this.userClass(),\n ),\n );\n}\n","/*\n * Public API Surface of accordion\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { HlmAccordion } from './lib/accordion';\nimport { HlmAccordionContent } from './lib/accordion-content';\nimport { HlmAccordionIcon } from './lib/accordion-icon';\nimport { HlmAccordionItem } from './lib/accordion-item';\nimport { HlmAccordionTrigger } from './lib/accordion-trigger';\n\nexport * from './lib/accordion';\nexport * from './lib/accordion-content';\nexport * from './lib/accordion-icon';\nexport * from './lib/accordion-item';\nexport * from './lib/accordion-trigger';\n\nexport const HlmAccordionImports = [\n HlmAccordion,\n HlmAccordionItem,\n HlmAccordionTrigger,\n HlmAccordionIcon,\n HlmAccordionContent,\n] as const;\n\n@NgModule({\n imports: [...HlmAccordionImports],\n exports: [...HlmAccordionImports],\n})\nexport class HlmAccordionModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alert.mjs","sources":["../../../projects/alert/src/lib/alert.ts","../../../projects/alert/src/lib/alert-description.ts","../../../projects/alert/src/lib/alert-icon.ts","../../../projects/alert/src/lib/alert-title.ts","../../../projects/alert/src/public-api.ts","../../../projects/alert/src/alert.ts"],"sourcesContent":["import { Directive, computed, input } from '@angular/core';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport { type VariantProps, cva } from 'class-variance-authority';\nimport type { ClassValue } from 'clsx';\n\nconst alertVariants = cva(\n 'tw:relative tw:w-full tw:items-start tw:gap-y-0.5 tw:rounded-lg tw:border tw:px-4 tw:py-3 tw:text-sm tw:has-[>[hlmAlertIcon]]:grid tw:has-[>[hlmAlertIcon]]:grid-cols-[calc(theme(spacing.1)*4)_1fr] tw:has-[>[hlmAlertIcon]]:gap-x-3 tw:[&>[hlmAlertIcon]]:size-4 tw:[&>[hlmAlertIcon]]:translate-y-0.5 tw:[&>[hlmAlertIcon]]:text-current',\n {\n variants: {\n variant: {\n primary: 'tw:bg-primary tw:text-primary-foreground tw:[&>[hlmAlertDescription]]:text-primary-foreground/90',\n secondary:\n 'tw:bg-secondary tw:text-secondary-foreground tw:[&>[hlmAlertDescription]]:text-secondary-foreground/90',\n success: 'tw:bg-success tw:text-success-foreground tw:[&>[hlmAlertDescription]]:text-success-foreground/90',\n warning: 'tw:bg-warning tw:text-warning-foreground tw:[&>[hlmAlertDescription]]:text-warning-foreground/90',\n danger: 'tw:bg-danger tw:text-danger-foreground tw:[&>[hlmAlertDescription]]:text-danger-foreground/90',\n info: 'tw:bg-info tw:text-info-foreground tw:[&>[hlmAlertDescription]]:text-info-foreground/90',\n light: 'tw:bg-light tw:text-light-foreground tw:[&>[hlmAlertDescription]]:text-light-foreground/90',\n dark: 'tw:bg-dark tw:text-dark-foreground tw:[&>[hlmAlertDescription]]:text-dark-foreground/90',\n accent: 'tw:bg-accent tw:text-accent-foreground tw:[&>[hlmAlertDescription]]:text-accent-foreground/90',\n destructive:\n 'tw:bg-destructive tw:text-destructive-foreground tw:[&>[hlmAlertDescription]]:text-destructive-foreground/90',\n muted: 'tw:bg-muted tw:text-muted-foreground tw:[&>[hlmAlertDescription]]:text-muted-foreground/90',\n link: 'tw:text-primary tw:underline-offset-4 tw:[&>[hlmAlertDescription]]:text-primary/90',\n ghost: 'tw:[&>[hlmAlertDescription]]:text-muted-foreground',\n },\n appearance: {\n solid: '',\n light: 'tw:font-semibold',\n },\n },\n compoundVariants: [\n {\n variant: 'primary',\n appearance: 'light',\n class: 'tw:bg-primary/20 tw:text-primary tw:[&>[hlmAlertDescription]]:text-primary',\n },\n {\n variant: 'secondary',\n appearance: 'light',\n class: 'tw:bg-secondary/20 tw:text-secondary tw:[&>[hlmAlertDescription]]:text-secondary',\n },\n {\n variant: 'success',\n appearance: 'light',\n class: 'tw:bg-success/20 tw:text-success tw:[&>[hlmAlertDescription]]:text-success',\n },\n {\n variant: 'warning',\n appearance: 'light',\n class: 'tw:bg-warning/20 tw:text-warning tw:[&>[hlmAlertDescription]]:text-warning',\n },\n {\n variant: 'danger',\n appearance: 'light',\n class: 'tw:bg-danger/20 tw:text-danger tw:[&>[hlmAlertDescription]]:text-danger',\n },\n {\n variant: 'info',\n appearance: 'light',\n class: 'tw:bg-info/20 tw:text-info tw:[&>[hlmAlertDescription]]:text-info',\n },\n {\n variant: 'light',\n appearance: 'light',\n class: 'tw:bg-light/20 tw:text-light tw:[&>[hlmAlertDescription]]:text-light',\n },\n {\n variant: 'dark',\n appearance: 'light',\n class: 'tw:bg-dark/20 tw:text-dark tw:[&>[hlmAlertDescription]]:text-dark',\n },\n {\n variant: 'accent',\n appearance: 'light',\n class: 'tw:bg-accent/20 tw:text-accent tw:[&>[hlmAlertDescription]]:text-accent',\n },\n {\n variant: 'destructive',\n appearance: 'light',\n class: 'tw:bg-destructive/20 tw:text-destructive tw:[&>[hlmAlertDescription]]:text-destructive',\n },\n {\n variant: 'muted',\n appearance: 'light',\n class: 'tw:bg-muted/20 tw:text-muted tw:[&>[hlmAlertDescription]]:text-muted',\n },\n {\n variant: 'link',\n appearance: 'light',\n class: 'tw:bg-primary/10 tw:text-primary tw:[&>[hlmAlertDescription]]:text-primary',\n },\n {\n variant: 'ghost',\n appearance: 'light',\n class: 'tw:bg-muted/10 tw:text-muted-foreground tw:[&>[hlmAlertDescription]]:text-muted-foreground',\n },\n ],\n defaultVariants: {\n variant: 'primary',\n appearance: 'solid',\n },\n },\n);\nexport type AlertVariants = VariantProps<typeof alertVariants>;\nexport type VariantType = NonNullable<AlertVariants['variant']>;\nexport type AppearanceType = NonNullable<AlertVariants['appearance']>;\n@Directive({\n selector: '[hlmAlert]',\n host: {\n role: 'alert',\n '[class]': '_computedClass()',\n },\n})\nexport class HlmAlert {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n public readonly variant = input<AlertVariants['variant']>('primary');\n public readonly appearance = input<AlertVariants['appearance']>('solid');\n protected readonly _computedClass = computed(() =>\n hlm(\n alertVariants({\n variant: this.variant(),\n appearance: this.appearance(),\n }),\n this.userClass(),\n ),\n );\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmAlertDesc],[hlmAlertDescription]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmAlertDescription {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(\n 'tw:text-current tw:col-start-2 tw:grid tw:justify-items-start tw:gap-1 tw:text-sm tw:[&_p]:leading-relaxed',\n this.userClass(),\n ),\n );\n}\n","import { Directive } from '@angular/core';\nimport { provideHlmIconConfig } from '@egose/shadcn-theme-ng/icon';\n\n@Directive({\n selector: '[hlmAlertIcon]',\n providers: [provideHlmIconConfig({ size: 'sm' })],\n})\nexport class HlmAlertIcon {}\n","import { Directive, computed, input } from '@angular/core';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmAlertTitle]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmAlertTitle {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm('tw:col-start-2 tw:line-clamp-1 tw:min-h-4 tw:text-md tw:font-semibold tw:tracking-tight', this.userClass()),\n );\n}\n","/*\n * Public API Surface of alert\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { HlmAlert } from './lib/alert';\nimport { HlmAlertDescription } from './lib/alert-description';\nimport { HlmAlertIcon } from './lib/alert-icon';\nimport { HlmAlertTitle } from './lib/alert-title';\n\nexport * from './lib/alert';\nexport * from './lib/alert-description';\nexport * from './lib/alert-icon';\nexport * from './lib/alert-title';\n\nexport const HlmAlertImports = [HlmAlert, HlmAlertTitle, HlmAlertDescription, HlmAlertIcon] as const;\n\n@NgModule({\n imports: [...HlmAlertImports],\n exports: [...HlmAlertImports],\n})\nexport class HlmAlertModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alert-dialog.mjs","sources":["../../../projects/alert-dialog/src/lib/hlm-alert-dialog-overlay.ts","../../../projects/alert-dialog/src/lib/hlm-alert-dialog.ts","../../../projects/alert-dialog/src/lib/hlm-alert-dialog-action.ts","../../../projects/alert-dialog/src/lib/hlm-alert-dialog-cancel.ts","../../../projects/alert-dialog/src/lib/hlm-alert-dialog-content.ts","../../../projects/alert-dialog/src/lib/hlm-alert-dialog-description.ts","../../../projects/alert-dialog/src/lib/hlm-alert-dialog-footer.ts","../../../projects/alert-dialog/src/lib/hlm-alert-dialog-header.ts","../../../projects/alert-dialog/src/lib/hlm-alert-dialog-media.ts","../../../projects/alert-dialog/src/lib/hlm-alert-dialog-portal.ts","../../../projects/alert-dialog/src/lib/hlm-alert-dialog-title.ts","../../../projects/alert-dialog/src/lib/hlm-alert-dialog-trigger.ts","../../../projects/alert-dialog/src/public-api.ts","../../../projects/alert-dialog/src/alert-dialog.ts"],"sourcesContent":["import { Directive, computed, effect, input, untracked } from '@angular/core';\nimport { BrnAlertDialogOverlay } from '@spartan-ng/brain/alert-dialog';\nimport { injectCustomClassSettable } from '@spartan-ng/brain/core';\nimport { hlm } from '@egose/shadcn-theme-ng/utils';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmAlertDialogOverlay],hlm-alert-dialog-overlay',\n hostDirectives: [BrnAlertDialogOverlay],\n})\nexport class HlmAlertDialogOverlay {\n private readonly _classSettable = injectCustomClassSettable({ optional: true, host: true });\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 isolate bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs',\n this.userClass(),\n ),\n );\n\n constructor() {\n effect(() => {\n const classValue = this._computedClass();\n untracked(() => this._classSettable?.setClassToCustomElement(classValue));\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\nimport { BRN_ALERT_DIALOG_DEFAULT_OPTIONS, BrnAlertDialog } from '@spartan-ng/brain/alert-dialog';\nimport { BrnDialog, provideBrnDialogDefaultOptions } from '@spartan-ng/brain/dialog';\nimport { HlmAlertDialogOverlay } from './hlm-alert-dialog-overlay';\n\n@Component({\n selector: 'hlm-alert-dialog',\n exportAs: 'hlmAlertDialog',\n imports: [HlmAlertDialogOverlay],\n providers: [\n {\n provide: BrnDialog,\n useExisting: forwardRef(() => HlmAlertDialog),\n },\n provideBrnDialogDefaultOptions({\n ...BRN_ALERT_DIALOG_DEFAULT_OPTIONS,\n }),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <hlm-alert-dialog-overlay />\n <ng-content />\n `,\n})\nexport class HlmAlertDialog extends BrnAlertDialog {}\n","import { Directive, input } from '@angular/core';\nimport { HlmBtn } from '@egose/shadcn-theme-ng/button';\n\n@Directive({\n selector: 'button[hlmAlertDialogAction]',\n hostDirectives: [{ directive: HlmBtn, inputs: ['variant', 'size'] }],\n host: { 'data-slot': 'alert-dialog-action', '[type]': 'type()' },\n})\nexport class HlmAlertDialogAction {\n public readonly type = input<'button' | 'submit' | 'reset'>('button');\n}\n","import { Directive, input } from '@angular/core';\nimport { BrnDialogClose } from '@spartan-ng/brain/dialog';\nimport { HlmBtn, provideBrnButtonConfig } from '@egose/shadcn-theme-ng/button';\n\n@Directive({\n selector: 'button[hlmAlertDialogCancel]',\n providers: [provideBrnButtonConfig({ variant: 'outline' })],\n hostDirectives: [BrnDialogClose, { directive: HlmBtn, inputs: ['variant', 'size'] }],\n host: { 'data-slot': 'alert-dialog-cancel', '[type]': 'type()' },\n})\nexport class HlmAlertDialogCancel {\n public readonly type = input<'button' | 'submit' | 'reset'>('button');\n}\n","import { Directive, input, signal } from '@angular/core';\nimport { injectExposesStateProvider } from '@spartan-ng/brain/core';\nimport { classes } from '@egose/shadcn-theme-ng/utils';\n\n@Directive({\n selector: '[hlmAlertDialogContent],hlm-alert-dialog-content',\n host: {\n 'data-slot': 'alert-dialog-content',\n '[attr.data-state]': 'state()',\n '[attr.data-size]': 'size()',\n },\n})\nexport class HlmAlertDialogContent {\n private readonly _stateProvider = injectExposesStateProvider({ optional: true, host: true });\n public readonly state = this._stateProvider?.state ?? signal('closed');\n\n public readonly size = input<'sm' | 'default'>('default');\n\n constructor() {\n classes(\n () =>\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 bg-popover text-popover-foreground ring-foreground/10 gap-6 rounded-xl p-6 ring-1 duration-100 data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg group/alert-dialog-content grid w-full outline-none',\n );\n }\n}\n","import { Directive } from '@angular/core';\nimport { BrnAlertDialogDescription } from '@spartan-ng/brain/alert-dialog';\nimport { classes } from '@egose/shadcn-theme-ng/utils';\n\n@Directive({\n selector: '[hlmAlertDialogDescription]',\n hostDirectives: [BrnAlertDialogDescription],\n host: { 'data-slot': 'alert-dialog-description' },\n})\nexport class HlmAlertDialogDescription {\n constructor() {\n classes(\n () =>\n 'text-muted-foreground *:[a]:hover:text-foreground text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3',\n );\n }\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '@egose/shadcn-theme-ng/utils';\n\n@Directive({\n selector: '[hlmAlertDialogFooter],hlm-alert-dialog-footer',\n host: { 'data-slot': 'alert-dialog-footer' },\n})\nexport class HlmAlertDialogFooter {\n constructor() {\n classes(\n () =>\n 'flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end',\n );\n }\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '@egose/shadcn-theme-ng/utils';\n\n@Directive({\n selector: '[hlmAlertDialogHeader],hlm-alert-dialog-header',\n host: { 'data-slot': 'alert-dialog-header' },\n})\nexport class HlmAlertDialogHeader {\n constructor() {\n classes(\n () =>\n 'grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-start sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]',\n );\n }\n}\n","import { Directive } from '@angular/core';\nimport { classes } from '@egose/shadcn-theme-ng/utils';\n\n@Directive({\n selector: '[hlmAlertDialogMedia],hlm-alert-dialog-media',\n host: { 'data-slot': 'alert-dialog-media' },\n})\nexport class HlmAlertDialogMedia {\n constructor() {\n classes(\n () =>\n \"bg-muted mb-2 inline-flex size-16 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[ng-icon:not([class*='text-'])]:text-[length:--spacing(8)]\",\n );\n }\n}\n","import { Directive } from '@angular/core';\nimport { BrnAlertDialogContent } from '@spartan-ng/brain/alert-dialog';\n\n@Directive({\n selector: '[hlmAlertDialogPortal]',\n hostDirectives: [{ directive: BrnAlertDialogContent, inputs: ['context', 'class'] }],\n})\nexport class HlmAlertDialogPortal {}\n","import { Directive } from '@angular/core';\nimport { BrnAlertDialogTitle } from '@spartan-ng/brain/alert-dialog';\nimport { classes } from '@egose/shadcn-theme-ng/utils';\n\n@Directive({\n selector: '[hlmAlertDialogTitle]',\n hostDirectives: [BrnAlertDialogTitle],\n host: { 'data-slot': 'alert-dialog-title' },\n})\nexport class HlmAlertDialogTitle {\n constructor() {\n classes(\n () =>\n 'text-lg font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2',\n );\n }\n}\n","import { Directive } from '@angular/core';\nimport { BrnAlertDialogTrigger } from '@spartan-ng/brain/alert-dialog';\n\n@Directive({\n selector: 'button[hlmAlertDialogTrigger],button[hlmAlertDialogTriggerFor]',\n hostDirectives: [\n { directive: BrnAlertDialogTrigger, inputs: ['id', 'brnAlertDialogTriggerFor: hlmAlertDialogTriggerFor', 'type'] },\n ],\n host: { 'data-slot': 'alert-dialog-trigger' },\n})\nexport class HlmAlertDialogTrigger {}\n","/*\n * Public API Surface of alert-dialog\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { HlmAlertDialog } from './lib/hlm-alert-dialog';\nimport { HlmAlertDialogAction } from './lib/hlm-alert-dialog-action';\nimport { HlmAlertDialogCancel } from './lib/hlm-alert-dialog-cancel';\nimport { HlmAlertDialogContent } from './lib/hlm-alert-dialog-content';\nimport { HlmAlertDialogDescription } from './lib/hlm-alert-dialog-description';\nimport { HlmAlertDialogFooter } from './lib/hlm-alert-dialog-footer';\nimport { HlmAlertDialogHeader } from './lib/hlm-alert-dialog-header';\nimport { HlmAlertDialogMedia } from './lib/hlm-alert-dialog-media';\nimport { HlmAlertDialogOverlay } from './lib/hlm-alert-dialog-overlay';\nimport { HlmAlertDialogPortal } from './lib/hlm-alert-dialog-portal';\nimport { HlmAlertDialogTitle } from './lib/hlm-alert-dialog-title';\nimport { HlmAlertDialogTrigger } from './lib/hlm-alert-dialog-trigger';\n\nexport * from './lib/hlm-alert-dialog';\nexport * from './lib/hlm-alert-dialog-action';\nexport * from './lib/hlm-alert-dialog-cancel';\nexport * from './lib/hlm-alert-dialog-content';\nexport * from './lib/hlm-alert-dialog-description';\nexport * from './lib/hlm-alert-dialog-footer';\nexport * from './lib/hlm-alert-dialog-header';\nexport * from './lib/hlm-alert-dialog-media';\nexport * from './lib/hlm-alert-dialog-overlay';\nexport * from './lib/hlm-alert-dialog-portal';\nexport * from './lib/hlm-alert-dialog-title';\nexport * from './lib/hlm-alert-dialog-trigger';\n\nexport const HlmAlertDialogImports = [\n HlmAlertDialog,\n HlmAlertDialogAction,\n HlmAlertDialogCancel,\n HlmAlertDialogContent,\n HlmAlertDialogDescription,\n HlmAlertDialogFooter,\n HlmAlertDialogHeader,\n HlmAlertDialogMedia,\n HlmAlertDialogOverlay,\n HlmAlertDialogPortal,\n HlmAlertDialogTitle,\n HlmAlertDialogTrigger,\n] as const;\n\n@NgModule({\n imports: [...HlmAlertDialogImports],\n exports: [...HlmAlertDialogImports],\n})\nexport class HlmAlertDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
|