@joanroucoux/cairn-ui 0.8.2 → 0.9.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.
Files changed (124) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/fesm2022/joanroucoux-cairn-ui-action-bar.mjs +57 -53
  3. package/fesm2022/joanroucoux-cairn-ui-action-bar.mjs.map +1 -1
  4. package/fesm2022/joanroucoux-cairn-ui-alert.mjs +155 -47
  5. package/fesm2022/joanroucoux-cairn-ui-alert.mjs.map +1 -1
  6. package/fesm2022/joanroucoux-cairn-ui-amount.mjs +220 -110
  7. package/fesm2022/joanroucoux-cairn-ui-amount.mjs.map +1 -1
  8. package/fesm2022/joanroucoux-cairn-ui-async.mjs +392 -216
  9. package/fesm2022/joanroucoux-cairn-ui-async.mjs.map +1 -1
  10. package/fesm2022/joanroucoux-cairn-ui-avatar.mjs +145 -68
  11. package/fesm2022/joanroucoux-cairn-ui-avatar.mjs.map +1 -1
  12. package/fesm2022/joanroucoux-cairn-ui-back-link.mjs +87 -47
  13. package/fesm2022/joanroucoux-cairn-ui-back-link.mjs.map +1 -1
  14. package/fesm2022/joanroucoux-cairn-ui-badge.mjs +83 -43
  15. package/fesm2022/joanroucoux-cairn-ui-badge.mjs.map +1 -1
  16. package/fesm2022/joanroucoux-cairn-ui-button.mjs +184 -104
  17. package/fesm2022/joanroucoux-cairn-ui-button.mjs.map +1 -1
  18. package/fesm2022/joanroucoux-cairn-ui-card.mjs +232 -137
  19. package/fesm2022/joanroucoux-cairn-ui-card.mjs.map +1 -1
  20. package/fesm2022/joanroucoux-cairn-ui-choice-chips.mjs +298 -102
  21. package/fesm2022/joanroucoux-cairn-ui-choice-chips.mjs.map +1 -1
  22. package/fesm2022/joanroucoux-cairn-ui-control.mjs +4 -17
  23. package/fesm2022/joanroucoux-cairn-ui-control.mjs.map +1 -1
  24. package/fesm2022/joanroucoux-cairn-ui-delta.mjs +150 -83
  25. package/fesm2022/joanroucoux-cairn-ui-delta.mjs.map +1 -1
  26. package/fesm2022/joanroucoux-cairn-ui-dialog.mjs +508 -471
  27. package/fesm2022/joanroucoux-cairn-ui-dialog.mjs.map +1 -1
  28. package/fesm2022/joanroucoux-cairn-ui-donut.mjs +255 -157
  29. package/fesm2022/joanroucoux-cairn-ui-donut.mjs.map +1 -1
  30. package/fesm2022/joanroucoux-cairn-ui-drawer.mjs +303 -0
  31. package/fesm2022/joanroucoux-cairn-ui-drawer.mjs.map +1 -0
  32. package/fesm2022/joanroucoux-cairn-ui-empty.mjs +76 -35
  33. package/fesm2022/joanroucoux-cairn-ui-empty.mjs.map +1 -1
  34. package/fesm2022/joanroucoux-cairn-ui-external-link.mjs +40 -31
  35. package/fesm2022/joanroucoux-cairn-ui-external-link.mjs.map +1 -1
  36. package/fesm2022/joanroucoux-cairn-ui-fact.mjs +188 -79
  37. package/fesm2022/joanroucoux-cairn-ui-fact.mjs.map +1 -1
  38. package/fesm2022/joanroucoux-cairn-ui-field.mjs +309 -173
  39. package/fesm2022/joanroucoux-cairn-ui-field.mjs.map +1 -1
  40. package/fesm2022/joanroucoux-cairn-ui-filter-chips.mjs +165 -87
  41. package/fesm2022/joanroucoux-cairn-ui-filter-chips.mjs.map +1 -1
  42. package/fesm2022/joanroucoux-cairn-ui-group-header.mjs +269 -0
  43. package/fesm2022/joanroucoux-cairn-ui-group-header.mjs.map +1 -0
  44. package/fesm2022/joanroucoux-cairn-ui-input.mjs +205 -85
  45. package/fesm2022/joanroucoux-cairn-ui-input.mjs.map +1 -1
  46. package/fesm2022/joanroucoux-cairn-ui-line-chart.mjs +838 -512
  47. package/fesm2022/joanroucoux-cairn-ui-line-chart.mjs.map +1 -1
  48. package/fesm2022/joanroucoux-cairn-ui-menu.mjs +401 -225
  49. package/fesm2022/joanroucoux-cairn-ui-menu.mjs.map +1 -1
  50. package/fesm2022/joanroucoux-cairn-ui-meter.mjs +143 -57
  51. package/fesm2022/joanroucoux-cairn-ui-meter.mjs.map +1 -1
  52. package/fesm2022/joanroucoux-cairn-ui-motion.mjs +367 -399
  53. package/fesm2022/joanroucoux-cairn-ui-motion.mjs.map +1 -1
  54. package/fesm2022/joanroucoux-cairn-ui-nav-item.mjs +73 -44
  55. package/fesm2022/joanroucoux-cairn-ui-nav-item.mjs.map +1 -1
  56. package/fesm2022/joanroucoux-cairn-ui-result-group.mjs +191 -0
  57. package/fesm2022/joanroucoux-cairn-ui-result-group.mjs.map +1 -0
  58. package/fesm2022/joanroucoux-cairn-ui-row.mjs +376 -146
  59. package/fesm2022/joanroucoux-cairn-ui-row.mjs.map +1 -1
  60. package/fesm2022/joanroucoux-cairn-ui-segmented.mjs +183 -81
  61. package/fesm2022/joanroucoux-cairn-ui-segmented.mjs.map +1 -1
  62. package/fesm2022/joanroucoux-cairn-ui-select-pill.mjs +233 -0
  63. package/fesm2022/joanroucoux-cairn-ui-select-pill.mjs.map +1 -0
  64. package/fesm2022/joanroucoux-cairn-ui-select.mjs +121 -67
  65. package/fesm2022/joanroucoux-cairn-ui-select.mjs.map +1 -1
  66. package/fesm2022/joanroucoux-cairn-ui-skeleton.mjs +129 -51
  67. package/fesm2022/joanroucoux-cairn-ui-skeleton.mjs.map +1 -1
  68. package/fesm2022/joanroucoux-cairn-ui-stale-link.mjs +80 -39
  69. package/fesm2022/joanroucoux-cairn-ui-stale-link.mjs.map +1 -1
  70. package/fesm2022/joanroucoux-cairn-ui-stat.mjs +85 -55
  71. package/fesm2022/joanroucoux-cairn-ui-stat.mjs.map +1 -1
  72. package/fesm2022/joanroucoux-cairn-ui-switch.mjs +48 -35
  73. package/fesm2022/joanroucoux-cairn-ui-switch.mjs.map +1 -1
  74. package/fesm2022/joanroucoux-cairn-ui-tab-bar.mjs +113 -69
  75. package/fesm2022/joanroucoux-cairn-ui-tab-bar.mjs.map +1 -1
  76. package/fesm2022/joanroucoux-cairn-ui-table.mjs +1036 -310
  77. package/fesm2022/joanroucoux-cairn-ui-table.mjs.map +1 -1
  78. package/fesm2022/joanroucoux-cairn-ui-toast.mjs +240 -127
  79. package/fesm2022/joanroucoux-cairn-ui-toast.mjs.map +1 -1
  80. package/fesm2022/joanroucoux-cairn-ui.mjs +0 -4
  81. package/package.json +17 -1
  82. package/styles/motion.css +1 -13
  83. package/styles/tokens.css +35 -64
  84. package/types/joanroucoux-cairn-ui-action-bar.d.ts +9 -14
  85. package/types/joanroucoux-cairn-ui-alert.d.ts +29 -15
  86. package/types/joanroucoux-cairn-ui-amount.d.ts +64 -32
  87. package/types/joanroucoux-cairn-ui-async.d.ts +85 -38
  88. package/types/joanroucoux-cairn-ui-avatar.d.ts +34 -22
  89. package/types/joanroucoux-cairn-ui-back-link.d.ts +20 -15
  90. package/types/joanroucoux-cairn-ui-badge.d.ts +22 -14
  91. package/types/joanroucoux-cairn-ui-button.d.ts +36 -18
  92. package/types/joanroucoux-cairn-ui-card.d.ts +48 -23
  93. package/types/joanroucoux-cairn-ui-choice-chips.d.ts +91 -35
  94. package/types/joanroucoux-cairn-ui-control.d.ts +9 -18
  95. package/types/joanroucoux-cairn-ui-delta.d.ts +46 -24
  96. package/types/joanroucoux-cairn-ui-dialog.d.ts +124 -57
  97. package/types/joanroucoux-cairn-ui-donut.d.ts +83 -46
  98. package/types/joanroucoux-cairn-ui-drawer.d.ts +73 -0
  99. package/types/joanroucoux-cairn-ui-empty.d.ts +20 -13
  100. package/types/joanroucoux-cairn-ui-external-link.d.ts +6 -10
  101. package/types/joanroucoux-cairn-ui-fact.d.ts +49 -25
  102. package/types/joanroucoux-cairn-ui-field.d.ts +72 -49
  103. package/types/joanroucoux-cairn-ui-filter-chips.d.ts +35 -20
  104. package/types/joanroucoux-cairn-ui-group-header.d.ts +58 -0
  105. package/types/joanroucoux-cairn-ui-input.d.ts +59 -37
  106. package/types/joanroucoux-cairn-ui-line-chart.d.ts +199 -89
  107. package/types/joanroucoux-cairn-ui-menu.d.ts +81 -44
  108. package/types/joanroucoux-cairn-ui-meter.d.ts +44 -22
  109. package/types/joanroucoux-cairn-ui-motion.d.ts +61 -75
  110. package/types/joanroucoux-cairn-ui-nav-item.d.ts +15 -13
  111. package/types/joanroucoux-cairn-ui-result-group.d.ts +52 -0
  112. package/types/joanroucoux-cairn-ui-row.d.ts +79 -37
  113. package/types/joanroucoux-cairn-ui-segmented.d.ts +51 -27
  114. package/types/joanroucoux-cairn-ui-select-pill.d.ts +52 -0
  115. package/types/joanroucoux-cairn-ui-select.d.ts +28 -18
  116. package/types/joanroucoux-cairn-ui-skeleton.d.ts +35 -18
  117. package/types/joanroucoux-cairn-ui-stale-link.d.ts +23 -16
  118. package/types/joanroucoux-cairn-ui-stat.d.ts +26 -21
  119. package/types/joanroucoux-cairn-ui-switch.d.ts +7 -11
  120. package/types/joanroucoux-cairn-ui-tab-bar.d.ts +20 -17
  121. package/types/joanroucoux-cairn-ui-table.d.ts +251 -89
  122. package/types/joanroucoux-cairn-ui-toast.d.ts +46 -36
  123. package/types/joanroucoux-cairn-ui.d.ts +1 -2
  124. package/fesm2022/joanroucoux-cairn-ui.mjs.map +0 -1
@@ -1,146 +1,241 @@
1
- import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, computed, Component } from '@angular/core';
3
-
4
- /** Available card variants. `CardVariant` is derived from this tuple. */
5
- const CARD_VARIANTS = ['default', 'elevated', 'inset'];
6
- /** Available card paddings. `CardPadding` is derived from this tuple. */
7
- const CARD_PADDINGS = ['none', 'xs', 'sm', 'md', 'list', 'rows', 'recap', 'panel'];
8
- /** Where the card surface (fill, border, radius) and its padding apply. `CardSurface` is derived from this tuple. */
9
- const CARD_SURFACES = ['always', 'lg', 'max-lg'];
10
- /** Border of the card surface; `auto` follows the variant. `CardBorder` is derived from this tuple. */
11
- const CARD_BORDERS = ['auto', 'none', 'border', 'hairline'];
12
- const BASE_CLASSES = 'block';
1
+ import * as i0 from "@angular/core";
2
+ import { Component, booleanAttribute, computed, input } from "@angular/core";
3
+ const CARD_VARIANTS = [
4
+ "default",
5
+ "elevated",
6
+ "inset"
7
+ ];
8
+ const CARD_PADDINGS = [
9
+ "none",
10
+ "xs",
11
+ "sm",
12
+ "md",
13
+ "list",
14
+ "rows",
15
+ "recap",
16
+ "panel"
17
+ ];
18
+ const CARD_SURFACES = [
19
+ "always",
20
+ "lg",
21
+ "max-lg"
22
+ ];
23
+ const BASE_CLASSES = "block";
13
24
  const VARIANT_CLASSES = {
14
- default: {
15
- always: 'rounded-container bg-(--card) text-(--card-foreground)',
16
- lg: 'lg:rounded-container lg:bg-(--card) lg:text-(--card-foreground)',
17
- 'max-lg': 'max-lg:rounded-container max-lg:bg-(--card) max-lg:text-(--card-foreground)',
18
- },
19
- elevated: {
20
- always: 'rounded-container bg-(--elevated) text-(--foreground)',
21
- lg: 'lg:rounded-container lg:bg-(--elevated) lg:text-(--foreground)',
22
- 'max-lg': 'max-lg:rounded-container max-lg:bg-(--elevated) max-lg:text-(--foreground)',
23
- },
24
- inset: {
25
- always: 'rounded-control bg-(--background) text-(--foreground)',
26
- lg: 'lg:rounded-control lg:bg-(--background) lg:text-(--foreground)',
27
- 'max-lg': 'max-lg:rounded-control max-lg:bg-(--background) max-lg:text-(--foreground)',
28
- },
25
+ default: {
26
+ always: "rounded-container bg-(--card) text-(--card-foreground)",
27
+ lg: "lg:rounded-container lg:bg-(--card) lg:text-(--card-foreground)",
28
+ "max-lg": "max-lg:rounded-container max-lg:bg-(--card) max-lg:text-(--card-foreground)"
29
+ },
30
+ elevated: {
31
+ always: "rounded-container bg-(--elevated) text-(--foreground)",
32
+ lg: "lg:rounded-container lg:bg-(--elevated) lg:text-(--foreground)",
33
+ "max-lg": "max-lg:rounded-container max-lg:bg-(--elevated) max-lg:text-(--foreground)"
34
+ },
35
+ inset: {
36
+ always: "rounded-control bg-(--background) text-(--foreground)",
37
+ lg: "lg:rounded-control lg:bg-(--background) lg:text-(--foreground)",
38
+ "max-lg": "max-lg:rounded-control max-lg:bg-(--background) max-lg:text-(--foreground)"
39
+ }
29
40
  };
30
41
  const AUTO_BORDERS = {
31
- default: 'border',
32
- elevated: 'hairline',
33
- inset: 'none',
42
+ default: "border",
43
+ elevated: "hairline",
44
+ inset: "none"
34
45
  };
35
46
  const BORDER_CLASSES = {
36
- none: { always: '', lg: '', 'max-lg': '' },
37
- border: {
38
- always: 'shadow-[inset_0_0_0_1px_var(--border)]',
39
- lg: 'lg:shadow-[inset_0_0_0_1px_var(--border)]',
40
- 'max-lg': 'max-lg:shadow-[inset_0_0_0_1px_var(--border)]',
41
- },
42
- hairline: {
43
- always: 'shadow-[inset_0_0_0_1px_var(--hairline)]',
44
- lg: 'lg:shadow-[inset_0_0_0_1px_var(--hairline)]',
45
- 'max-lg': 'max-lg:shadow-[inset_0_0_0_1px_var(--hairline)]',
46
- },
47
+ none: {
48
+ always: "",
49
+ lg: "",
50
+ "max-lg": ""
51
+ },
52
+ border: {
53
+ always: "shadow-[inset_0_0_0_1px_var(--border)]",
54
+ lg: "lg:shadow-[inset_0_0_0_1px_var(--border)]",
55
+ "max-lg": "max-lg:shadow-[inset_0_0_0_1px_var(--border)]"
56
+ },
57
+ hairline: {
58
+ always: "shadow-[inset_0_0_0_1px_var(--hairline)]",
59
+ lg: "lg:shadow-[inset_0_0_0_1px_var(--hairline)]",
60
+ "max-lg": "max-lg:shadow-[inset_0_0_0_1px_var(--hairline)]"
61
+ }
47
62
  };
48
63
  const PADDING_CLASSES = {
49
- none: {
50
- always: 'p-0',
51
- lg: 'lg:p-0',
52
- 'max-lg': 'max-lg:p-0',
53
- },
54
- xs: {
55
- always: 'p-1',
56
- lg: 'lg:p-1',
57
- 'max-lg': 'max-lg:p-1',
58
- },
59
- sm: {
60
- always: 'p-3',
61
- lg: 'lg:p-3',
62
- 'max-lg': 'max-lg:p-3',
63
- },
64
- md: {
65
- always: 'p-(--inset-card)',
66
- lg: 'lg:p-(--inset-card)',
67
- 'max-lg': 'max-lg:p-(--inset-card)',
68
- },
69
- list: {
70
- always: 'px-2 py-3',
71
- lg: 'lg:px-2 lg:py-3',
72
- 'max-lg': 'max-lg:px-2 max-lg:py-3',
73
- },
74
- rows: {
75
- always: 'px-(--inset-card) py-1',
76
- lg: 'lg:px-(--inset-card) lg:py-1',
77
- 'max-lg': 'max-lg:px-(--inset-card) max-lg:py-1',
78
- },
79
- recap: {
80
- always: 'px-3 py-1',
81
- lg: 'lg:px-3 lg:py-1',
82
- 'max-lg': 'max-lg:px-3 max-lg:py-1',
83
- },
84
- panel: {
85
- always: 'px-3 py-2.5 lg:px-4 lg:py-3',
86
- lg: 'lg:px-4 lg:py-3',
87
- 'max-lg': 'max-lg:px-3 max-lg:py-2.5',
88
- },
64
+ none: {
65
+ always: "p-0",
66
+ lg: "lg:p-0",
67
+ "max-lg": "max-lg:p-0"
68
+ },
69
+ xs: {
70
+ always: "p-1",
71
+ lg: "lg:p-1",
72
+ "max-lg": "max-lg:p-1"
73
+ },
74
+ sm: {
75
+ always: "p-3",
76
+ lg: "lg:p-3",
77
+ "max-lg": "max-lg:p-3"
78
+ },
79
+ md: {
80
+ always: "p-(--inset-card)",
81
+ lg: "lg:p-(--inset-card)",
82
+ "max-lg": "max-lg:p-(--inset-card)"
83
+ },
84
+ list: {
85
+ always: "px-2 py-3",
86
+ lg: "lg:px-2 lg:py-3",
87
+ "max-lg": "max-lg:px-2 max-lg:py-3"
88
+ },
89
+ rows: {
90
+ always: "px-(--inset-card) py-1",
91
+ lg: "lg:px-(--inset-card) lg:py-1",
92
+ "max-lg": "max-lg:px-(--inset-card) max-lg:py-1"
93
+ },
94
+ recap: {
95
+ always: "px-3 py-1",
96
+ lg: "lg:px-3 lg:py-1",
97
+ "max-lg": "max-lg:px-3 max-lg:py-1"
98
+ },
99
+ panel: {
100
+ always: "px-3 py-2.5 lg:px-4 lg:py-3",
101
+ lg: "lg:px-4 lg:py-3",
102
+ "max-lg": "max-lg:px-3 max-lg:py-2.5"
103
+ }
89
104
  };
90
- /**
91
- * Surface that groups related content: a summary block, a table, a side panel. `surface` limits the
92
- * fill, border, radius and padding to one side of `64rem`, for a block that is a card on a desktop and
93
- * plain on an iPhone, or the reverse. `variant="inset"` is the `--background` box that sits inside a
94
- * card or a dialog: a picked title, a results list, a recap, an empty-state panel.
95
- *
96
- * @example
97
- * <ui-card variant="elevated" padding="sm">Total</ui-card>
98
- * <ui-card variant="inset" border="hairline" padding="xs">Results</ui-card>
99
- * <ui-card padding="none" clip>Table that touches the edges, clipped to the corners</ui-card>
100
- * <ui-card surface="max-lg">Card on an iPhone, plain on a desktop</ui-card>
101
- */
102
- class UiCard {
103
- variant = input('default', /* @ts-ignore */
104
- ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
105
- padding = input('md', /* @ts-ignore */
106
- ...(ngDevMode ? [{ debugName: "padding" }] : /* istanbul ignore next */ []));
107
- surface = input('always', /* @ts-ignore */
108
- ...(ngDevMode ? [{ debugName: "surface" }] : /* istanbul ignore next */ []));
109
- border = input('auto', /* @ts-ignore */
110
- ...(ngDevMode ? [{ debugName: "border" }] : /* istanbul ignore next */ []));
111
- clip = input(false, { ...(ngDevMode ? { debugName: "clip" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
112
- classes = computed(() => {
113
- const variant = this.variant();
114
- const surface = this.surface();
115
- const border = this.border();
116
- return [
117
- BASE_CLASSES,
118
- VARIANT_CLASSES[variant][surface],
119
- BORDER_CLASSES[border === 'auto' ? AUTO_BORDERS[variant] : border][surface],
120
- PADDING_CLASSES[this.padding()][surface],
121
- this.clip() ? 'overflow-hidden' : '',
122
- ]
123
- .filter(Boolean)
124
- .join(' ');
125
- }, /* @ts-ignore */
126
- ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
127
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
128
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: UiCard, isStandalone: true, selector: "ui-card", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, surface: { classPropertyName: "surface", publicName: "surface", isSignal: true, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null }, clip: { classPropertyName: "clip", publicName: "clip", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()" } }, ngImport: i0, template: '<ng-content />', isInline: true });
129
- }
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: UiCard, decorators: [{
131
- type: Component,
132
- args: [{
133
- selector: 'ui-card',
134
- template: '<ng-content />',
135
- host: {
136
- '[class]': 'classes()',
137
- },
138
- }]
139
- }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }], surface: [{ type: i0.Input, args: [{ isSignal: true, alias: "surface", required: false }] }], border: [{ type: i0.Input, args: [{ isSignal: true, alias: "border", required: false }] }], clip: [{ type: i0.Input, args: [{ isSignal: true, alias: "clip", required: false }] }] } });
140
-
141
- /**
142
- * Generated bundle index. Do not edit.
143
- */
144
-
105
+ var UiCard = class UiCard {
106
+ variant = input("default", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
107
+ padding = input("md", ...ngDevMode ? [{ debugName: "padding" }] : /* istanbul ignore next */ []);
108
+ surface = input("always", ...ngDevMode ? [{ debugName: "surface" }] : /* istanbul ignore next */ []);
109
+ border = input("auto", ...ngDevMode ? [{ debugName: "border" }] : /* istanbul ignore next */ []);
110
+ clip = input(false, {
111
+ ...ngDevMode ? { debugName: "clip" } : /* istanbul ignore next */ {},
112
+ transform: booleanAttribute
113
+ });
114
+ classes = computed(() => {
115
+ const variant = this.variant();
116
+ const surface = this.surface();
117
+ const border = this.border();
118
+ return [
119
+ BASE_CLASSES,
120
+ VARIANT_CLASSES[variant][surface],
121
+ BORDER_CLASSES[border === "auto" ? AUTO_BORDERS[variant] : border][surface],
122
+ PADDING_CLASSES[this.padding()][surface],
123
+ this.clip() ? "overflow-hidden" : ""
124
+ ].filter(Boolean).join(" ");
125
+ }, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
126
+ static ɵfac = i0.ɵɵngDeclareFactory({
127
+ minVersion: "12.0.0",
128
+ version: "22.2.0",
129
+ ngImport: i0,
130
+ type: UiCard,
131
+ deps: [],
132
+ target: i0.ɵɵFactoryTarget.Component
133
+ });
134
+ static ɵcmp = i0.ɵɵngDeclareComponent({
135
+ minVersion: "17.1.0",
136
+ version: "22.2.0",
137
+ type: UiCard,
138
+ isStandalone: true,
139
+ selector: "ui-card",
140
+ inputs: {
141
+ variant: {
142
+ classPropertyName: "variant",
143
+ publicName: "variant",
144
+ isSignal: true,
145
+ isRequired: false,
146
+ transformFunction: null
147
+ },
148
+ padding: {
149
+ classPropertyName: "padding",
150
+ publicName: "padding",
151
+ isSignal: true,
152
+ isRequired: false,
153
+ transformFunction: null
154
+ },
155
+ surface: {
156
+ classPropertyName: "surface",
157
+ publicName: "surface",
158
+ isSignal: true,
159
+ isRequired: false,
160
+ transformFunction: null
161
+ },
162
+ border: {
163
+ classPropertyName: "border",
164
+ publicName: "border",
165
+ isSignal: true,
166
+ isRequired: false,
167
+ transformFunction: null
168
+ },
169
+ clip: {
170
+ classPropertyName: "clip",
171
+ publicName: "clip",
172
+ isSignal: true,
173
+ isRequired: false,
174
+ transformFunction: null
175
+ }
176
+ },
177
+ host: { properties: { "class": "classes()" } },
178
+ ngImport: i0,
179
+ template: "<ng-content />",
180
+ isInline: true
181
+ });
182
+ };
183
+ i0.ɵɵngDeclareClassMetadata({
184
+ minVersion: "12.0.0",
185
+ version: "22.2.0",
186
+ ngImport: i0,
187
+ type: UiCard,
188
+ decorators: [{
189
+ type: Component,
190
+ args: [{
191
+ selector: "ui-card",
192
+ template: "<ng-content />",
193
+ host: { "[class]": "classes()" }
194
+ }]
195
+ }],
196
+ propDecorators: {
197
+ variant: [{
198
+ type: i0.Input,
199
+ args: [{
200
+ isSignal: true,
201
+ alias: "variant",
202
+ required: false
203
+ }]
204
+ }],
205
+ padding: [{
206
+ type: i0.Input,
207
+ args: [{
208
+ isSignal: true,
209
+ alias: "padding",
210
+ required: false
211
+ }]
212
+ }],
213
+ surface: [{
214
+ type: i0.Input,
215
+ args: [{
216
+ isSignal: true,
217
+ alias: "surface",
218
+ required: false
219
+ }]
220
+ }],
221
+ border: [{
222
+ type: i0.Input,
223
+ args: [{
224
+ isSignal: true,
225
+ alias: "border",
226
+ required: false
227
+ }]
228
+ }],
229
+ clip: [{
230
+ type: i0.Input,
231
+ args: [{
232
+ isSignal: true,
233
+ alias: "clip",
234
+ required: false
235
+ }]
236
+ }]
237
+ }
238
+ });
145
239
  export { CARD_PADDINGS, CARD_SURFACES, CARD_VARIANTS, UiCard };
146
- //# sourceMappingURL=joanroucoux-cairn-ui-card.mjs.map
240
+
241
+ //# sourceMappingURL=joanroucoux-cairn-ui-card.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"joanroucoux-cairn-ui-card.mjs","sources":["../../../projects/ui/card/card.ts","../../../projects/ui/card/joanroucoux-cairn-ui-card.ts"],"sourcesContent":["import { Component, booleanAttribute, computed, input } from '@angular/core';\n\n/** Available card variants. `CardVariant` is derived from this tuple. */\nexport const CARD_VARIANTS = ['default', 'elevated', 'inset'] as const;\nexport type CardVariant = (typeof CARD_VARIANTS)[number];\n\n/** Available card paddings. `CardPadding` is derived from this tuple. */\nexport const CARD_PADDINGS = ['none', 'xs', 'sm', 'md', 'list', 'rows', 'recap', 'panel'] as const;\nexport type CardPadding = (typeof CARD_PADDINGS)[number];\n\n/** Where the card surface (fill, border, radius) and its padding apply. `CardSurface` is derived from this tuple. */\nexport const CARD_SURFACES = ['always', 'lg', 'max-lg'] as const;\nexport type CardSurface = (typeof CARD_SURFACES)[number];\n\n/** Border of the card surface; `auto` follows the variant. `CardBorder` is derived from this tuple. */\nexport const CARD_BORDERS = ['auto', 'none', 'border', 'hairline'] as const;\nexport type CardBorder = (typeof CARD_BORDERS)[number];\n\nconst BASE_CLASSES = 'block';\n\nconst VARIANT_CLASSES: Record<CardVariant, Record<CardSurface, string>> = {\n default: {\n always: 'rounded-container bg-(--card) text-(--card-foreground)',\n lg: 'lg:rounded-container lg:bg-(--card) lg:text-(--card-foreground)',\n 'max-lg': 'max-lg:rounded-container max-lg:bg-(--card) max-lg:text-(--card-foreground)',\n },\n elevated: {\n always: 'rounded-container bg-(--elevated) text-(--foreground)',\n lg: 'lg:rounded-container lg:bg-(--elevated) lg:text-(--foreground)',\n 'max-lg': 'max-lg:rounded-container max-lg:bg-(--elevated) max-lg:text-(--foreground)',\n },\n inset: {\n always: 'rounded-control bg-(--background) text-(--foreground)',\n lg: 'lg:rounded-control lg:bg-(--background) lg:text-(--foreground)',\n 'max-lg': 'max-lg:rounded-control max-lg:bg-(--background) max-lg:text-(--foreground)',\n },\n};\n\nconst AUTO_BORDERS: Record<CardVariant, Exclude<CardBorder, 'auto'>> = {\n default: 'border',\n elevated: 'hairline',\n inset: 'none',\n};\n\nconst BORDER_CLASSES: Record<Exclude<CardBorder, 'auto'>, Record<CardSurface, string>> = {\n none: { always: '', lg: '', 'max-lg': '' },\n border: {\n always: 'shadow-[inset_0_0_0_1px_var(--border)]',\n lg: 'lg:shadow-[inset_0_0_0_1px_var(--border)]',\n 'max-lg': 'max-lg:shadow-[inset_0_0_0_1px_var(--border)]',\n },\n hairline: {\n always: 'shadow-[inset_0_0_0_1px_var(--hairline)]',\n lg: 'lg:shadow-[inset_0_0_0_1px_var(--hairline)]',\n 'max-lg': 'max-lg:shadow-[inset_0_0_0_1px_var(--hairline)]',\n },\n};\n\nconst PADDING_CLASSES: Record<CardPadding, Record<CardSurface, string>> = {\n none: {\n always: 'p-0',\n lg: 'lg:p-0',\n 'max-lg': 'max-lg:p-0',\n },\n xs: {\n always: 'p-1',\n lg: 'lg:p-1',\n 'max-lg': 'max-lg:p-1',\n },\n sm: {\n always: 'p-3',\n lg: 'lg:p-3',\n 'max-lg': 'max-lg:p-3',\n },\n md: {\n always: 'p-(--inset-card)',\n lg: 'lg:p-(--inset-card)',\n 'max-lg': 'max-lg:p-(--inset-card)',\n },\n list: {\n always: 'px-2 py-3',\n lg: 'lg:px-2 lg:py-3',\n 'max-lg': 'max-lg:px-2 max-lg:py-3',\n },\n rows: {\n always: 'px-(--inset-card) py-1',\n lg: 'lg:px-(--inset-card) lg:py-1',\n 'max-lg': 'max-lg:px-(--inset-card) max-lg:py-1',\n },\n recap: {\n always: 'px-3 py-1',\n lg: 'lg:px-3 lg:py-1',\n 'max-lg': 'max-lg:px-3 max-lg:py-1',\n },\n panel: {\n always: 'px-3 py-2.5 lg:px-4 lg:py-3',\n lg: 'lg:px-4 lg:py-3',\n 'max-lg': 'max-lg:px-3 max-lg:py-2.5',\n },\n};\n\n/**\n * Surface that groups related content: a summary block, a table, a side panel. `surface` limits the\n * fill, border, radius and padding to one side of `64rem`, for a block that is a card on a desktop and\n * plain on an iPhone, or the reverse. `variant=\"inset\"` is the `--background` box that sits inside a\n * card or a dialog: a picked title, a results list, a recap, an empty-state panel.\n *\n * @example\n * <ui-card variant=\"elevated\" padding=\"sm\">Total</ui-card>\n * <ui-card variant=\"inset\" border=\"hairline\" padding=\"xs\">Results</ui-card>\n * <ui-card padding=\"none\" clip>Table that touches the edges, clipped to the corners</ui-card>\n * <ui-card surface=\"max-lg\">Card on an iPhone, plain on a desktop</ui-card>\n */\n@Component({\n selector: 'ui-card',\n template: '<ng-content />',\n host: {\n '[class]': 'classes()',\n },\n})\nexport class UiCard {\n readonly variant = input<CardVariant>('default');\n readonly padding = input<CardPadding>('md');\n readonly surface = input<CardSurface>('always');\n readonly border = input<CardBorder>('auto');\n readonly clip = input(false, { transform: booleanAttribute });\n\n protected readonly classes = computed(() => {\n const variant = this.variant();\n const surface = this.surface();\n const border = this.border();\n\n return [\n BASE_CLASSES,\n VARIANT_CLASSES[variant][surface],\n BORDER_CLASSES[border === 'auto' ? AUTO_BORDERS[variant] : border][surface],\n PADDING_CLASSES[this.padding()][surface],\n this.clip() ? 'overflow-hidden' : '',\n ]\n .filter(Boolean)\n .join(' ');\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"joanroucoux-cairn-ui-card.mjs","names":[],"sources":["../../../projects/ui/card/card.ts"],"sourcesContent":["import { Component, booleanAttribute, computed, input } from '@angular/core';\n\n/** Available card variants. */\nexport const CARD_VARIANTS = ['default', 'elevated', 'inset'] as const;\nexport type CardVariant = (typeof CARD_VARIANTS)[number];\n\n/** Available card paddings. */\nexport const CARD_PADDINGS = ['none', 'xs', 'sm', 'md', 'list', 'rows', 'recap', 'panel'] as const;\nexport type CardPadding = (typeof CARD_PADDINGS)[number];\n\n/** Where the card surface (fill, border, radius) and its padding apply. */\nexport const CARD_SURFACES = ['always', 'lg', 'max-lg'] as const;\nexport type CardSurface = (typeof CARD_SURFACES)[number];\n\n/** Border of the card surface; `auto` follows the variant. */\nexport const CARD_BORDERS = ['auto', 'none', 'border', 'hairline'] as const;\nexport type CardBorder = (typeof CARD_BORDERS)[number];\n\nconst BASE_CLASSES = 'block';\n\nconst VARIANT_CLASSES: Record<CardVariant, Record<CardSurface, string>> = {\n default: {\n always: 'rounded-container bg-(--card) text-(--card-foreground)',\n lg: 'lg:rounded-container lg:bg-(--card) lg:text-(--card-foreground)',\n 'max-lg': 'max-lg:rounded-container max-lg:bg-(--card) max-lg:text-(--card-foreground)',\n },\n elevated: {\n always: 'rounded-container bg-(--elevated) text-(--foreground)',\n lg: 'lg:rounded-container lg:bg-(--elevated) lg:text-(--foreground)',\n 'max-lg': 'max-lg:rounded-container max-lg:bg-(--elevated) max-lg:text-(--foreground)',\n },\n inset: {\n always: 'rounded-control bg-(--background) text-(--foreground)',\n lg: 'lg:rounded-control lg:bg-(--background) lg:text-(--foreground)',\n 'max-lg': 'max-lg:rounded-control max-lg:bg-(--background) max-lg:text-(--foreground)',\n },\n};\n\nconst AUTO_BORDERS: Record<CardVariant, Exclude<CardBorder, 'auto'>> = {\n default: 'border',\n elevated: 'hairline',\n inset: 'none',\n};\n\nconst BORDER_CLASSES: Record<Exclude<CardBorder, 'auto'>, Record<CardSurface, string>> = {\n none: { always: '', lg: '', 'max-lg': '' },\n border: {\n always: 'shadow-[inset_0_0_0_1px_var(--border)]',\n lg: 'lg:shadow-[inset_0_0_0_1px_var(--border)]',\n 'max-lg': 'max-lg:shadow-[inset_0_0_0_1px_var(--border)]',\n },\n hairline: {\n always: 'shadow-[inset_0_0_0_1px_var(--hairline)]',\n lg: 'lg:shadow-[inset_0_0_0_1px_var(--hairline)]',\n 'max-lg': 'max-lg:shadow-[inset_0_0_0_1px_var(--hairline)]',\n },\n};\n\nconst PADDING_CLASSES: Record<CardPadding, Record<CardSurface, string>> = {\n none: {\n always: 'p-0',\n lg: 'lg:p-0',\n 'max-lg': 'max-lg:p-0',\n },\n xs: {\n always: 'p-1',\n lg: 'lg:p-1',\n 'max-lg': 'max-lg:p-1',\n },\n sm: {\n always: 'p-3',\n lg: 'lg:p-3',\n 'max-lg': 'max-lg:p-3',\n },\n md: {\n always: 'p-(--inset-card)',\n lg: 'lg:p-(--inset-card)',\n 'max-lg': 'max-lg:p-(--inset-card)',\n },\n list: {\n always: 'px-2 py-3',\n lg: 'lg:px-2 lg:py-3',\n 'max-lg': 'max-lg:px-2 max-lg:py-3',\n },\n rows: {\n always: 'px-(--inset-card) py-1',\n lg: 'lg:px-(--inset-card) lg:py-1',\n 'max-lg': 'max-lg:px-(--inset-card) max-lg:py-1',\n },\n recap: {\n always: 'px-3 py-1',\n lg: 'lg:px-3 lg:py-1',\n 'max-lg': 'max-lg:px-3 max-lg:py-1',\n },\n panel: {\n always: 'px-3 py-2.5 lg:px-4 lg:py-3',\n lg: 'lg:px-4 lg:py-3',\n 'max-lg': 'max-lg:px-3 max-lg:py-2.5',\n },\n};\n\n/**\n * Surface that groups related content: a summary block, a table, a side panel. `surface` limits the\n * card styling to one side of `64rem`. `variant=\"inset\"` is the `--background` box that sits inside\n * a card or a dialog.\n *\n * @example\n * <ui-card variant=\"elevated\" padding=\"sm\">Total</ui-card>\n * <ui-card variant=\"inset\" border=\"hairline\" padding=\"xs\">Results</ui-card>\n * <ui-card padding=\"none\" clip>Table that touches the edges, clipped to the corners</ui-card>\n * <ui-card surface=\"max-lg\">Card on an iPhone, plain on a desktop</ui-card>\n */\n@Component({\n selector: 'ui-card',\n template: '<ng-content />',\n host: {\n '[class]': 'classes()',\n },\n})\nexport class UiCard {\n readonly variant = input<CardVariant>('default');\n readonly padding = input<CardPadding>('md');\n readonly surface = input<CardSurface>('always');\n readonly border = input<CardBorder>('auto');\n readonly clip = input(false, { transform: booleanAttribute });\n\n protected readonly classes = computed(() => {\n const variant = this.variant();\n const surface = this.surface();\n const border = this.border();\n\n return [\n BASE_CLASSES,\n VARIANT_CLASSES[variant][surface],\n BORDER_CLASSES[border === 'auto' ? AUTO_BORDERS[variant] : border][surface],\n PADDING_CLASSES[this.padding()][surface],\n this.clip() ? 'overflow-hidden' : '',\n ]\n .filter(Boolean)\n .join(' ');\n });\n}\n"],"mappings":"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"}