@underlayerdev/ui 0.14.10 → 0.15.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@underlayerdev/ui",
3
- "version": "0.14.10",
3
+ "version": "0.15.0",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "^22.0.0",
6
6
  "@angular/common": "^22.0.0",
@@ -1126,7 +1126,7 @@ export declare class DockItemComponent {
1126
1126
  };
1127
1127
  }, {}, ["contentSlot"], ["[ul-dock-item-content]"], true, never>;
1128
1128
  }
1129
- export type ListItemTheme = 'ghost-white' | 'transparent-white' | 'outline-white' | 'outline-purple';
1129
+ export type ListItemTheme = 'ghost-white' | 'ghost-red' | 'transparent-white' | 'outline-white' | 'outline-purple';
1130
1130
  export declare class ListItemComponent {
1131
1131
  checkbox: import("@angular/core").Signal<CheckboxComponent | undefined>;
1132
1132
  theme: import("@angular/core").InputSignal<ListItemTheme>;
@@ -1164,6 +1164,58 @@ export declare class ListItemComponent {
1164
1164
  };
1165
1165
  }, {}, ["checkbox"], ["[ul-list-item-before-label]", "[ul-list-item-label]", "[ul-list-item-after-label]"], true, never>;
1166
1166
  }
1167
+ /**
1168
+ * One action in a `ul-menu`, written in the template of the component that
1169
+ * owns the menu, so each item can choose its own icon, text and theme:
1170
+ *
1171
+ * @example
1172
+ * ```html
1173
+ * <ul-menu triggerIconOnly="more_options">
1174
+ * <ul-menu-item (triggered)="reconnect()">
1175
+ * <ul-icon ul-menu-item-icon icon="refresh_cw" size="5" />
1176
+ * Reconnect
1177
+ * </ul-menu-item>
1178
+ * <ul-menu-item theme="ghost-red" (triggered)="disconnect()">
1179
+ * <ul-icon ul-menu-item-icon icon="link_unlink" size="5" />
1180
+ * Disconnect
1181
+ * </ul-menu-item>
1182
+ * </ul-menu>
1183
+ * ```
1184
+ *
1185
+ * The menu closes when an item is triggered. For a list of plain label+icon
1186
+ * actions, `ul-menu`'s `items` input is shorter; this is for items that need
1187
+ * more than that, such as a different theme.
1188
+ *
1189
+ * The item only declares its content. The menu draws the row itself, inside
1190
+ * its own panel, so keyboard navigation and closing work as they do for
1191
+ * `items`; this element renders nothing where it is written.
1192
+ */
1193
+ export declare class MenuItemComponent {
1194
+ /** `ghost-red` marks an action that removes or ends something. */
1195
+ theme: import("@angular/core").InputSignal<ListItemTheme>;
1196
+ disabled: import("@angular/core").InputSignal<boolean>;
1197
+ /** Emitted when the item is chosen, by click or keyboard. */
1198
+ triggered: import("@angular/core").OutputEmitterRef<void>;
1199
+ /** The icon the consumer put in the `ul-menu-item-icon` slot, for the menu to draw. */
1200
+ readonly iconTemplate: import("@angular/core").Signal<TemplateRef<unknown>>;
1201
+ /** The rest of the consumer's content, for the menu to draw as the label. */
1202
+ readonly labelTemplate: import("@angular/core").Signal<TemplateRef<unknown>>;
1203
+ static ɵfac: i0.ɵɵFactoryDeclaration<MenuItemComponent, never>;
1204
+ static ɵcmp: i0.ɵɵComponentDeclaration<MenuItemComponent, "ul-menu-item", never, {
1205
+ "theme": {
1206
+ "alias": "theme";
1207
+ "required": false;
1208
+ "isSignal": true;
1209
+ };
1210
+ "disabled": {
1211
+ "alias": "disabled";
1212
+ "required": false;
1213
+ "isSignal": true;
1214
+ };
1215
+ }, {
1216
+ "triggered": "triggered";
1217
+ }, never, ["[ul-menu-item-icon]", "*"], true, never>;
1218
+ }
1167
1219
  /** A single row in a `ul-menu` or `ul-dropdown` menu panel. */
1168
1220
  export type MenuItem = {
1169
1221
  /** Display text for the item. */
@@ -1186,6 +1238,8 @@ export type MenuItem = {
1186
1238
  */
1187
1239
  export declare class MenuItemsComponent {
1188
1240
  items: import("@angular/core").InputSignal<MenuItem[]>;
1241
+ /** Items written in the consumer's template (`ul-menu-item`), drawn before `items`. */
1242
+ templateItems: import("@angular/core").InputSignal<readonly MenuItemComponent[]>;
1189
1243
  theme: import("@angular/core").InputSignal<ListItemTheme>;
1190
1244
  /**
1191
1245
  * Index of the item to render as checked/selected.
@@ -1200,6 +1254,11 @@ export declare class MenuItemsComponent {
1200
1254
  "required": false;
1201
1255
  "isSignal": true;
1202
1256
  };
1257
+ "templateItems": {
1258
+ "alias": "templateItems";
1259
+ "required": false;
1260
+ "isSignal": true;
1261
+ };
1203
1262
  "theme": {
1204
1263
  "alias": "theme";
1205
1264
  "required": false;
@@ -2180,6 +2239,8 @@ export declare class LongPressDirective {
2180
2239
  export declare class MenuComponent {
2181
2240
  /** Visual theme, passed through to the trigger and to any items rendered via `items`. */
2182
2241
  theme: import("@angular/core").InputSignal<ListItemTheme>;
2242
+ /** The `ul-menu-item`s written inside this menu in the consumer's template. */
2243
+ readonly templateItems: import("@angular/core").Signal<readonly MenuItemComponent[]>;
2183
2244
  /** Simple label+icon action items. Optional — content projection covers everything else. */
2184
2245
  items: import("@angular/core").InputSignal<MenuItem[]>;
2185
2246
  disabled: import("@angular/core").InputSignal<boolean>;
@@ -2254,7 +2315,7 @@ export declare class MenuComponent {
2254
2315
  }, {
2255
2316
  "itemSelected": "itemSelected";
2256
2317
  "closed": "closed";
2257
- }, never, ["*"], true, never>;
2318
+ }, ["templateItems"], ["*"], true, never>;
2258
2319
  }
2259
2320
  /**
2260
2321
  * The trigger button shared by `ul-dropdown` and `ul-menu`: either an