@salesforce/ui-bundle-template-app-angular-template-b2x 11.60.0 → 11.62.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/dist/CHANGELOG.md +16 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/angular.json +2 -7
- package/dist/force-app/main/default/uiBundles/angularextapp/components.json +6 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/eslint.config.js +9 -1
- package/dist/force-app/main/default/uiBundles/angularextapp/package.json +16 -11
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/app.config.ts +4 -6
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/app.routes.ts +2 -2
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/alert/alert.html +9 -13
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/alert/alert.ts +16 -28
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/button/button.html +19 -10
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/button/button.ts +34 -25
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/card/card.ts +40 -50
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/collapsible/collapsible.html +38 -10
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/collapsible/collapsible.ts +6 -11
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/date-picker/date-picker.html +17 -22
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/date-picker/date-picker.ts +29 -21
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/date-range-picker/date-range-picker.html +16 -30
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/date-range-picker/date-range-picker.ts +39 -36
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/dialog/dialog.html +13 -30
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/dialog/dialog.ts +6 -21
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/dropdown-menu/dropdown-menu.html +20 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/dropdown-menu/dropdown-menu.ts +100 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/field/field.html +5 -11
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/field/field.ts +10 -18
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/field-appearance.ts +8 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/icon/icon.ts +62 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/input/input.html +32 -17
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/input/input.ts +57 -14
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/label/label.ts +8 -4
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/paginator/paginator.html +74 -10
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/paginator/paginator.ts +74 -18
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/paginator/types.ts +13 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/popover/popover.html +10 -38
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/popover/popover.ts +12 -15
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/select/select.html +34 -22
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/select/select.ts +25 -34
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/separator/separator.ts +11 -36
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/skeleton/skeleton.ts +5 -9
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/spinner/spinner.ts +14 -21
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/authentication/auth-form/auth-form.html +2 -3
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/authentication/menu/auth-menu/auth-menu.html +31 -21
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/authentication/menu/auth-menu/auth-menu.ts +6 -18
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/authentication/session/session.html +2 -2
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/authentication/submit-button/submit-button.html +8 -4
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/authentication/submit-button/submit-button.ts +4 -16
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/breadcrumb/breadcrumb.html +4 -24
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/breadcrumb/breadcrumb.ts +3 -16
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/filters/date-filter.ts +1 -1
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/filters/date-range-filter.html +2 -1
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/filters/date-range-filter.ts +6 -15
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/filters/filter-field-wrapper.html +2 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/filters/filter-field-wrapper.ts +2 -17
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/filters/multi-select-filter.html +2 -1
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/filters/numeric-range-filter.ts +3 -21
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/filters/search-filter.html +3 -3
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/filters/search-filter.ts +9 -13
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/filters/select-filter.html +2 -5
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/filters/select-filter.ts +1 -15
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/filters/text-filter.html +2 -5
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/filters/text-filter.ts +3 -17
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/pagination/pagination.ts +4 -20
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/search-bar/search-bar.html +10 -59
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/search-bar/search-bar.ts +13 -93
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/sort-control/sort-control.html +3 -29
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/object-search/sort-control/sort-control.ts +5 -12
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/account-detail/account-detail-page.html +1 -23
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/account-detail/account-detail-page.ts +3 -23
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/account-search/account-search-page.html +1 -19
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/account-search/account-search-page.ts +8 -36
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/home/home.html +15 -4
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/home/home.spec.ts +8 -6
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/home/home.ts +56 -4
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/alert/src/index.ts +16 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/alert/src/lib/hlm-alert-action.ts +14 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/alert/src/lib/hlm-alert-description.ts +17 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/alert/src/lib/hlm-alert-title.ts +17 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/alert/src/lib/hlm-alert.ts +35 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/button/src/index.ts +6 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/button/src/lib/hlm-button.token.ts +22 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/button/src/lib/hlm-button.ts +72 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/calendar/src/index.ts +16 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/calendar/src/lib/hlm-calendar-multi.ts +195 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/calendar/src/lib/hlm-calendar-range.ts +194 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/calendar/src/lib/hlm-calendar.ts +189 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/calendar/src/lib/hlm-month-year-calendar.ts +119 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/card/src/index.ts +28 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/card/src/lib/hlm-card-action.ts +12 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/card/src/lib/hlm-card-avatar.ts +14 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/card/src/lib/hlm-card-content.ts +12 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/card/src/lib/hlm-card-description.ts +12 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/card/src/lib/hlm-card-footer.ts +12 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/card/src/lib/hlm-card-header.ts +15 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/card/src/lib/hlm-card-title.ts +12 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/card/src/lib/hlm-card.token.ts +19 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/card/src/lib/hlm-card.ts +22 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/collapsible/src/index.ts +13 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/collapsible/src/lib/hlm-collapsible-content.ts +14 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/collapsible/src/lib/hlm-collapsible-trigger.ts +9 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/collapsible/src/lib/hlm-collapsible.ts +15 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/date-picker/src/index.ts +38 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/date-picker/src/lib/hlm-date-multi-input.ts +104 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/date-picker/src/lib/hlm-date-picker-anchor.ts +23 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/date-picker/src/lib/hlm-date-picker-input.ts +118 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/date-picker/src/lib/hlm-date-picker-multi.token.ts +109 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/date-picker/src/lib/hlm-date-picker-multi.ts +220 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/date-picker/src/lib/hlm-date-picker-trigger.ts +104 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/date-picker/src/lib/hlm-date-picker.token.ts +69 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/date-picker/src/lib/hlm-date-picker.ts +203 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/date-picker/src/lib/hlm-date-range-input.ts +120 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/date-picker/src/lib/hlm-date-range-picker.token.ts +86 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/date-picker/src/lib/hlm-date-range-picker.ts +252 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/date-picker/src/lib/hlm-month-year-input.ts +105 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/date-picker/src/lib/hlm-month-year-picker.token.ts +89 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/date-picker/src/lib/hlm-month-year-picker.ts +196 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dialog/src/index.ts +35 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dialog/src/lib/hlm-dialog-close.ts +9 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dialog/src/lib/hlm-dialog-content.ts +74 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dialog/src/lib/hlm-dialog-description.ts +17 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dialog/src/lib/hlm-dialog-footer.ts +15 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dialog/src/lib/hlm-dialog-header.ts +12 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dialog/src/lib/hlm-dialog-overlay.ts +27 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dialog/src/lib/hlm-dialog-portal.ts +8 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dialog/src/lib/hlm-dialog-title.ts +14 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dialog/src/lib/hlm-dialog-trigger.ts +14 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dialog/src/lib/hlm-dialog.service.ts +46 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dialog/src/lib/hlm-dialog.ts +24 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/index.ts +49 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu-checkbox-indicator.ts +21 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu-checkbox.ts +54 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu-focus-on-hover.ts +35 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu-group.ts +14 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu-item-sub-indicator.ts +19 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu-item.ts +42 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu-label.ts +20 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu-radio-indicator.ts +21 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu-radio.ts +49 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu-separator.ts +12 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu-shortcut.ts +15 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu-sub-trigger.ts +52 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu-sub.ts +53 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu-token.ts +26 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu-trigger.ts +46 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/dropdown-menu/src/lib/hlm-dropdown-menu.ts +57 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/field/src/index.ts +34 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/field/src/lib/hlm-field-content.ts +12 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/field/src/lib/hlm-field-description.ts +53 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/field/src/lib/hlm-field-error.ts +100 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/field/src/lib/hlm-field-group.ts +15 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/field/src/lib/hlm-field-label.ts +17 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/field/src/lib/hlm-field-legend.ts +19 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/field/src/lib/hlm-field-separator.ts +24 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/field/src/lib/hlm-field-set.ts +15 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/field/src/lib/hlm-field-title.ts +15 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/field/src/lib/hlm-field.ts +47 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/input/src/index.ts +5 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/input/src/lib/hlm-input.ts +21 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/input-group/src/index.ts +19 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/input-group/src/lib/hlm-input-group-addon.ts +40 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/input-group/src/lib/hlm-input-group-button.ts +47 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/input-group/src/lib/hlm-input-group-input.ts +17 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/input-group/src/lib/hlm-input-group-text.ts +14 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/input-group/src/lib/hlm-input-group.ts +18 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/label/label.html +11 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/label/src/index.ts +5 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/label/src/lib/hlm-label.ts +17 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/pagination/src/index.ts +31 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/pagination/src/lib/hlm-numbered-pagination-query-params.ts +191 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/pagination/src/lib/hlm-numbered-pagination.ts +290 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/pagination/src/lib/hlm-pagination-content.ts +12 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/pagination/src/lib/hlm-pagination-ellipsis.ts +27 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/pagination/src/lib/hlm-pagination-item.ts +7 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/pagination/src/lib/hlm-pagination-link.ts +51 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/pagination/src/lib/hlm-pagination-next.ts +65 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/pagination/src/lib/hlm-pagination-previous.ts +65 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/pagination/src/lib/hlm-pagination.ts +19 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/popover/src/index.ts +25 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/popover/src/lib/hlm-popover-content.ts +25 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/popover/src/lib/hlm-popover-description.ts +12 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/popover/src/lib/hlm-popover-header.ts +12 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/popover/src/lib/hlm-popover-portal.ts +8 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/popover/src/lib/hlm-popover-title.ts +12 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/popover/src/lib/hlm-popover-trigger.ts +14 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/popover/src/lib/hlm-popover.ts +23 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/index.ts +52 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select-content.ts +44 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select-group.ts +14 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select-item.ts +36 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select-label.ts +14 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select-multiple.ts +37 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select-placeholder.ts +17 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select-portal.ts +8 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select-scroll-down.ts +22 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select-scroll-up.ts +22 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select-separator.ts +14 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select-trigger.ts +59 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select-value-template.ts +5 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select-value.ts +18 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select-values-content.ts +9 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select-values.ts +5 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/select/src/lib/hlm-select.ts +37 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/separator/src/index.ts +5 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/separator/src/lib/hlm-separator.ts +19 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/skeleton/src/index.ts +5 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/skeleton/src/lib/hlm-skeleton.ts +14 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/spinner/src/index.ts +5 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/spinner/src/lib/hlm-spinner.ts +26 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/utils/src/index.ts +2 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/utils/src/lib/hlm.ts +313 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/shared/spartan/utils/src/lib/provide-spartan-hlm.ts +34 -0
- package/dist/force-app/main/default/uiBundles/angularextapp/src/index.html +0 -1
- package/dist/force-app/main/default/uiBundles/angularextapp/src/{styles.scss → styles.css} +7 -38
- package/dist/force-app/main/default/uiBundles/angularextapp/tsconfig.json +4 -1
- package/dist/package-lock.json +2 -2
- package/dist/package.json +1 -1
- package/package.json +1 -1
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/_field-size.scss +0 -42
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/button/button.scss +0 -112
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/card/card.scss +0 -34
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/date-picker/date-picker.scss +0 -36
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/date-range-picker/date-range-picker.scss +0 -33
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/input/input.scss +0 -35
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/label/label.html +0 -3
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/select/select.scss +0 -35
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/separator/separator.html +0 -1
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/separator/separator.scss +0 -23
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/skeleton/skeleton.html +0 -1
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/skeleton/skeleton.scss +0 -28
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/features/authentication/submit-button/submit-button.scss +0 -17
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/account-detail/account-detail-page.scss +0 -7
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/home/home-page.html +0 -18
- package/dist/force-app/main/default/uiBundles/angularextapp/src/app/pages/home/home-page.ts +0 -47
- package/dist/force-app/main/default/uiBundles/angularextapp/src/theme.scss +0 -39
package/dist/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [11.62.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.61.0...v11.62.0) (2026-08-17)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [11.61.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.60.0...v11.61.0) (2026-08-17)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## [11.60.0](https://github.com/salesforce-experience-platform-emu/webapps/compare/v11.59.2...v11.60.0) (2026-08-17)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @salesforce/ui-bundle-template-base-sfdx-project
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"projectType": "application",
|
|
15
15
|
"schematics": {
|
|
16
16
|
"@schematics/angular:component": {
|
|
17
|
-
"style": "
|
|
17
|
+
"style": "css"
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
20
|
"root": "",
|
|
@@ -37,12 +37,7 @@
|
|
|
37
37
|
"input": "public"
|
|
38
38
|
}
|
|
39
39
|
],
|
|
40
|
-
"styles": ["src/
|
|
41
|
-
"stylePreprocessorOptions": {
|
|
42
|
-
"sass": {
|
|
43
|
-
"silenceDeprecations": ["import"]
|
|
44
|
-
}
|
|
45
|
-
},
|
|
40
|
+
"styles": ["src/styles.css"],
|
|
46
41
|
"plugins": []
|
|
47
42
|
},
|
|
48
43
|
"configurations": {
|
|
@@ -12,7 +12,15 @@ const angularGraphqlPlugin = createPlugin({ schemaPath });
|
|
|
12
12
|
export default tseslint.config(
|
|
13
13
|
// Global ignores
|
|
14
14
|
{
|
|
15
|
-
ignores: [
|
|
15
|
+
ignores: [
|
|
16
|
+
'dist/**/*',
|
|
17
|
+
'.angular/**/*',
|
|
18
|
+
'coverage/**/*',
|
|
19
|
+
'node_modules/**/*',
|
|
20
|
+
// Vendored Spartan primitives use upstream hlm*/brn* selectors and are
|
|
21
|
+
// not authored here, so they can't satisfy the app-prefix/a11y rules.
|
|
22
|
+
'**/shared/spartan/**',
|
|
23
|
+
],
|
|
16
24
|
},
|
|
17
25
|
// TypeScript files
|
|
18
26
|
{
|
|
@@ -9,28 +9,32 @@
|
|
|
9
9
|
"scripts": {
|
|
10
10
|
"dev": "sf-angular-serve",
|
|
11
11
|
"dev:design": "sf-angular-serve --design",
|
|
12
|
-
"build": "ng build",
|
|
12
|
+
"build": "ng lint && ng build",
|
|
13
13
|
"watch": "ng build --watch --configuration development",
|
|
14
14
|
"test": "ng test",
|
|
15
15
|
"lint": "ng lint",
|
|
16
|
-
"build:e2e": "ng build && node scripts/rewrite-e2e-assets.mjs",
|
|
16
|
+
"build:e2e": "ng lint && ng build && node scripts/rewrite-e2e-assets.mjs",
|
|
17
17
|
"e2e": "playwright test",
|
|
18
18
|
"graphql:schema": "node scripts/get-graphql-schema.mjs",
|
|
19
19
|
"graphql:codegen": "graphql-codegen"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@angular/animations": "^21.2.0",
|
|
23
22
|
"@angular/cdk": "^21.2.0",
|
|
24
23
|
"@angular/common": "^21.2.0",
|
|
25
24
|
"@angular/compiler": "^21.2.0",
|
|
26
25
|
"@angular/core": "^21.2.0",
|
|
27
26
|
"@angular/forms": "^21.2.0",
|
|
28
|
-
"@angular/material": "^21.2.0",
|
|
29
27
|
"@angular/platform-browser": "^21.2.0",
|
|
30
28
|
"@angular/router": "^21.2.0",
|
|
31
|
-
"@
|
|
32
|
-
"@
|
|
29
|
+
"@ng-icons/core": "^32.2.0",
|
|
30
|
+
"@ng-icons/lucide": "^32.2.0",
|
|
31
|
+
"@salesforce/angular-plugin-ui-bundle": "^11.62.0",
|
|
32
|
+
"@salesforce/platform-sdk": "^11.62.0",
|
|
33
|
+
"@spartan-ng/brain": "^1.3.1",
|
|
34
|
+
"class-variance-authority": "^0.7.1",
|
|
35
|
+
"clsx": "^2.1.1",
|
|
33
36
|
"rxjs": "~7.8.0",
|
|
37
|
+
"tailwind-merge": "^3.5.0",
|
|
34
38
|
"tslib": "^2.3.0"
|
|
35
39
|
},
|
|
36
40
|
"devDependencies": {
|
|
@@ -40,11 +44,16 @@
|
|
|
40
44
|
"@angular/cli": "^21.2.11",
|
|
41
45
|
"@angular/compiler-cli": "^21.2.0",
|
|
42
46
|
"@eslint/js": "^9.0.0",
|
|
47
|
+
"@graphql-codegen/cli": "^6.1.0",
|
|
48
|
+
"@graphql-codegen/typescript-operations": "^5.0.6",
|
|
43
49
|
"@graphql-eslint/eslint-plugin": "^4.1.0",
|
|
44
50
|
"@playwright/test": "^1.49.0",
|
|
51
|
+
"@spartan-ng/cli": "^1.3.1",
|
|
45
52
|
"@tailwindcss/postcss": "^4.0.0",
|
|
46
53
|
"angular-eslint": "^21.0.0",
|
|
47
54
|
"eslint": "^9.0.0",
|
|
55
|
+
"graphql": "^16.11.0",
|
|
56
|
+
"graphql-codegen-typescript-operation-types": "^2.0.2",
|
|
48
57
|
"jsdom": "^28.0.0",
|
|
49
58
|
"postcss": "^8.5.0",
|
|
50
59
|
"serve": "^14.2.5",
|
|
@@ -52,11 +61,7 @@
|
|
|
52
61
|
"typescript": "~5.9.2",
|
|
53
62
|
"typescript-eslint": "^8.0.0",
|
|
54
63
|
"vitest": "^4.1.0",
|
|
55
|
-
"@salesforce/graphiti": "^11.
|
|
56
|
-
"@graphql-codegen/cli": "^6.1.0",
|
|
57
|
-
"@graphql-codegen/typescript-operations": "^5.0.6",
|
|
58
|
-
"graphql": "^16.11.0",
|
|
59
|
-
"graphql-codegen-typescript-operation-types": "^2.0.2"
|
|
64
|
+
"@salesforce/graphiti": "^11.62.0"
|
|
60
65
|
},
|
|
61
66
|
"overrides": {
|
|
62
67
|
"undici": "^7.28.0"
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { ApplicationConfig, provideBrowserGlobalErrorListeners } from '@angular/core';
|
|
7
7
|
import { provideRouter } from '@angular/router';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { provideNativeDateAdapter as provideBrnNativeDateAdapter } from '@spartan-ng/brain/date-time';
|
|
9
|
+
import { provideNgIconsConfig } from '@ng-icons/core';
|
|
10
10
|
|
|
11
11
|
import { routes } from './app.routes';
|
|
12
12
|
|
|
@@ -14,9 +14,7 @@ export const appConfig: ApplicationConfig = {
|
|
|
14
14
|
providers: [
|
|
15
15
|
provideBrowserGlobalErrorListeners(),
|
|
16
16
|
provideRouter(routes),
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
// filters) with the browser's native Date, avoiding a moment/luxon dep.
|
|
20
|
-
provideNativeDateAdapter(),
|
|
17
|
+
provideBrnNativeDateAdapter(),
|
|
18
|
+
provideNgIconsConfig({ size: '1rem' }),
|
|
21
19
|
],
|
|
22
20
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Routes } from '@angular/router';
|
|
2
|
+
import { HomeComponent } from './pages/home/home';
|
|
2
3
|
import { NotFoundComponent } from './pages/not-found/not-found';
|
|
3
4
|
import { authGuard } from "./features/authentication/auth/auth.guard";
|
|
4
5
|
import { LoginPageComponent } from "./pages/login/login-page";
|
|
@@ -8,7 +9,6 @@ import { ResetPasswordPageComponent } from "./pages/reset-password/reset-passwor
|
|
|
8
9
|
import { ProfilePageComponent } from "./pages/profile/profile-page";
|
|
9
10
|
import { ChangePasswordPageComponent } from "./pages/change-password/change-password-page";
|
|
10
11
|
import { AppLayoutComponent } from "./components/layout/app-layout/app-layout";
|
|
11
|
-
import { HomePageComponent } from "./pages/home/home-page";
|
|
12
12
|
import { AccountSearchPageComponent } from "./pages/account-search/account-search-page";
|
|
13
13
|
import { AccountDetailPageComponent } from "./pages/account-detail/account-detail-page";
|
|
14
14
|
|
|
@@ -19,7 +19,7 @@ export const routes: Routes = [
|
|
|
19
19
|
children: [
|
|
20
20
|
{
|
|
21
21
|
path: "",
|
|
22
|
-
component:
|
|
22
|
+
component: HomeComponent,
|
|
23
23
|
data: { showInNavigation: true, label: "Home" }
|
|
24
24
|
},
|
|
25
25
|
{
|
package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/alert/alert.html
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
@if (icon()) {
|
|
2
|
-
<
|
|
3
|
-
icon()
|
|
4
|
-
|
|
2
|
+
<ng-icon
|
|
3
|
+
[name]="icon()"
|
|
4
|
+
class="row-span-2 translate-y-0.5 size-4 text-base leading-4"
|
|
5
|
+
aria-hidden="true"
|
|
6
|
+
/>
|
|
5
7
|
}
|
|
8
|
+
<ng-content select="[icon]" />
|
|
6
9
|
|
|
7
10
|
@if (title()) {
|
|
8
|
-
<div
|
|
11
|
+
<div hlmAlertTitle>{{ title() }}</div>
|
|
9
12
|
}
|
|
10
13
|
@if (description()) {
|
|
11
14
|
<div
|
|
12
|
-
|
|
13
|
-
class="col-start-2 text-sm"
|
|
15
|
+
hlmAlertDescription
|
|
14
16
|
[class.text-muted-foreground]="variant() === 'default'"
|
|
15
17
|
[class.text-destructive]="variant() === 'destructive'"
|
|
16
18
|
>
|
|
@@ -18,14 +20,8 @@
|
|
|
18
20
|
</div>
|
|
19
21
|
}
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
Default slot for callers that project body content (e.g. app-status-alert
|
|
23
|
-
composing a message with a link) instead of the `description` input. Sits in
|
|
24
|
-
the second grid column to align with the icon. Inert when only inputs are used.
|
|
25
|
-
-->
|
|
26
|
-
<div class="col-start-2 text-sm">
|
|
23
|
+
<div class="text-sm empty:hidden group-has-[>ng-icon]/alert:col-start-2">
|
|
27
24
|
<ng-content />
|
|
28
25
|
</div>
|
|
29
26
|
|
|
30
|
-
<!-- Optional caller-owned trailing control, pinned top-right. -->
|
|
31
27
|
<ng-content select="app-alert-action" />
|
package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/alert/alert.ts
CHANGED
|
@@ -3,51 +3,39 @@
|
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
* For full license text, see the LICENSE.txt file
|
|
5
5
|
*/
|
|
6
|
-
import { ChangeDetectionStrategy, Component,
|
|
7
|
-
import {
|
|
6
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
7
|
+
import { NgIcon, provideIcons } from '@ng-icons/core';
|
|
8
|
+
import {
|
|
9
|
+
HlmAlert,
|
|
10
|
+
HlmAlertAction,
|
|
11
|
+
HlmAlertDescription,
|
|
12
|
+
HlmAlertTitle,
|
|
13
|
+
} from '@spartan-ng/styles/alert';
|
|
14
|
+
import { APP_ICONS, type AppIconName } from '../icon/icon';
|
|
8
15
|
|
|
9
|
-
/** Visual variant. */
|
|
10
16
|
export type AppAlertVariant = 'default' | 'destructive';
|
|
11
17
|
|
|
12
|
-
const BASE_CLASSES =
|
|
13
|
-
'relative w-full grid grid-cols-[auto_1fr] items-start gap-x-2 gap-y-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-[app-alert-action]:pr-18';
|
|
14
|
-
const VARIANT_CLASSES: Record<AppAlertVariant, string> = {
|
|
15
|
-
default: 'bg-card text-card-foreground',
|
|
16
|
-
destructive: 'bg-card text-destructive',
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
/** Alert banner. Optional trailing control via the `app-alert-action` slot. */
|
|
20
18
|
@Component({
|
|
21
19
|
selector: 'app-alert',
|
|
22
20
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
23
|
-
imports: [
|
|
21
|
+
imports: [NgIcon, HlmAlertTitle, HlmAlertDescription],
|
|
22
|
+
providers: [provideIcons(APP_ICONS)],
|
|
23
|
+
hostDirectives: [{ directive: HlmAlert, inputs: ['variant'] }],
|
|
24
24
|
templateUrl: './alert.html',
|
|
25
|
-
host: {
|
|
26
|
-
'data-slot': 'alert',
|
|
27
|
-
role: 'alert',
|
|
28
|
-
'[class]': 'hostClass()',
|
|
29
|
-
},
|
|
30
25
|
})
|
|
31
26
|
export class AlertComponent {
|
|
32
27
|
readonly variant = input<AppAlertVariant>('default');
|
|
33
28
|
readonly title = input<string>('');
|
|
34
29
|
readonly description = input<string>('');
|
|
35
|
-
|
|
36
|
-
readonly icon = input<string>('');
|
|
37
|
-
|
|
38
|
-
protected readonly hostClass = computed(
|
|
39
|
-
() => `${BASE_CLASSES} ${VARIANT_CLASSES[this.variant()]}`,
|
|
40
|
-
);
|
|
30
|
+
readonly icon = input<AppIconName | ''>('');
|
|
41
31
|
}
|
|
42
32
|
|
|
43
|
-
/** Trailing action slot for `app-alert`, pinned to the top-right. */
|
|
44
33
|
@Component({
|
|
45
34
|
selector: 'app-alert-action',
|
|
46
35
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
36
|
+
hostDirectives: [HlmAlertAction],
|
|
47
37
|
template: '<ng-content />',
|
|
48
|
-
host: {
|
|
49
|
-
'data-slot': 'alert-action',
|
|
50
|
-
class: 'absolute top-2 right-2',
|
|
51
|
-
},
|
|
52
38
|
})
|
|
53
39
|
export class AlertActionComponent {}
|
|
40
|
+
|
|
41
|
+
export const AlertImports = [AlertComponent, AlertActionComponent] as const;
|
package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/button/button.html
CHANGED
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
<button
|
|
2
|
-
|
|
3
|
-
[
|
|
4
|
-
[
|
|
2
|
+
hlmBtn
|
|
3
|
+
[variant]="hlmVariant()"
|
|
4
|
+
[size]="size()"
|
|
5
|
+
[disabled]="disabled() || loading()"
|
|
5
6
|
[type]="type()"
|
|
6
|
-
[disabled]="disabled()"
|
|
7
7
|
[attr.aria-label]="ariaLabel()"
|
|
8
8
|
[attr.aria-expanded]="ariaExpanded()"
|
|
9
|
+
[attr.aria-busy]="loading() || null"
|
|
10
|
+
[class]="classes()"
|
|
9
11
|
(click)="clicked.emit($event)"
|
|
10
12
|
>
|
|
11
|
-
@if (
|
|
12
|
-
<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
@if (loading()) {
|
|
14
|
+
<app-spinner data-icon="inline-start" class="flex items-center" aria-hidden="true" />
|
|
15
|
+
@if (loadingLabel()) {
|
|
16
|
+
{{ loadingLabel() }}
|
|
17
|
+
}
|
|
18
|
+
} @else {
|
|
19
|
+
@if (icon()) {
|
|
20
|
+
<ng-icon [name]="icon()" class="size-4" aria-hidden="true" />
|
|
21
|
+
}
|
|
22
|
+
<ng-content />
|
|
23
|
+
@if (iconEnd()) {
|
|
24
|
+
<ng-icon [name]="iconEnd()" class="size-4" aria-hidden="true" />
|
|
25
|
+
}
|
|
17
26
|
}
|
|
18
27
|
</button>
|
package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/button/button.ts
CHANGED
|
@@ -3,14 +3,20 @@
|
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
* For full license text, see the LICENSE.txt file
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
import {
|
|
7
|
+
ChangeDetectionStrategy,
|
|
8
|
+
Component,
|
|
9
|
+
booleanAttribute,
|
|
10
|
+
computed,
|
|
11
|
+
input,
|
|
12
|
+
output,
|
|
13
|
+
} from '@angular/core';
|
|
14
|
+
import { NgIcon, provideIcons } from '@ng-icons/core';
|
|
15
|
+
import { HlmButtonImports } from '@spartan-ng/styles/button';
|
|
16
|
+
import { APP_ICONS, type AppIconName } from '../icon/icon';
|
|
17
|
+
import { SpinnerComponent } from '../spinner/spinner';
|
|
9
18
|
|
|
10
|
-
|
|
11
|
-
export type AppButtonAppearance = MatButtonAppearance | 'destructive';
|
|
12
|
-
|
|
13
|
-
/** Button size variants. */
|
|
19
|
+
export type AppButtonAppearance = 'filled' | 'outlined' | 'text' | 'destructive';
|
|
14
20
|
export type AppButtonSize =
|
|
15
21
|
| 'default'
|
|
16
22
|
| 'xs'
|
|
@@ -21,37 +27,40 @@ export type AppButtonSize =
|
|
|
21
27
|
| 'icon-sm'
|
|
22
28
|
| 'icon-lg';
|
|
23
29
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
const APPEARANCE_TO_VARIANT: Record<AppButtonAppearance, string> = {
|
|
31
|
+
filled: 'default',
|
|
32
|
+
outlined: 'outline',
|
|
33
|
+
text: 'ghost',
|
|
34
|
+
destructive: 'destructive',
|
|
35
|
+
};
|
|
36
|
+
|
|
29
37
|
@Component({
|
|
30
38
|
selector: 'app-button',
|
|
31
39
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
32
|
-
imports: [
|
|
40
|
+
imports: [HlmButtonImports, NgIcon, SpinnerComponent],
|
|
41
|
+
providers: [provideIcons(APP_ICONS)],
|
|
33
42
|
templateUrl: './button.html',
|
|
34
|
-
styleUrl: './button.scss',
|
|
35
43
|
})
|
|
36
44
|
export class ButtonComponent {
|
|
37
45
|
readonly appearance = input<AppButtonAppearance>('filled');
|
|
38
46
|
readonly size = input<AppButtonSize>('default');
|
|
39
47
|
readonly type = input<'button' | 'submit' | 'reset'>('button');
|
|
40
|
-
readonly disabled = input
|
|
48
|
+
readonly disabled = input(false, { transform: booleanAttribute });
|
|
49
|
+
// While loading the button is disabled and shows a spinner; loadingLabel
|
|
50
|
+
// replaces the content (empty label => spinner only).
|
|
51
|
+
readonly loading = input(false, { transform: booleanAttribute });
|
|
52
|
+
readonly loadingLabel = input<string>('');
|
|
41
53
|
readonly ariaLabel = input<string>();
|
|
42
54
|
readonly ariaExpanded = input<boolean>();
|
|
43
|
-
/** Extra classes for the inner button — `class` on the host forwards here. */
|
|
44
55
|
readonly classes = input<string>('', { alias: 'class' });
|
|
45
|
-
|
|
46
|
-
readonly
|
|
47
|
-
readonly iconEnd = input<string>('');
|
|
56
|
+
readonly icon = input<AppIconName | ''>('');
|
|
57
|
+
readonly iconEnd = input<AppIconName | ''>('');
|
|
48
58
|
readonly clicked = output<MouseEvent>();
|
|
49
59
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
60
|
+
protected readonly hlmVariant = computed(
|
|
61
|
+
() =>
|
|
62
|
+
APPEARANCE_TO_VARIANT[this.appearance()] as 'default' | 'outline' | 'ghost' | 'destructive',
|
|
53
63
|
);
|
|
54
|
-
protected readonly isDestructive = computed(() => this.appearance() === 'destructive');
|
|
55
|
-
/** Size class merged with any caller-supplied classes, applied to the button. */
|
|
56
|
-
protected readonly buttonClass = computed(() => `size-${this.size()} ${this.classes()}`.trim());
|
|
57
64
|
}
|
|
65
|
+
|
|
66
|
+
export const ButtonImports = [ButtonComponent] as const;
|
package/dist/force-app/main/default/uiBundles/angularextapp/src/app/components/ui/card/card.ts
CHANGED
|
@@ -5,106 +5,96 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
7
7
|
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
HlmCard,
|
|
9
|
+
HlmCardAction,
|
|
10
|
+
HlmCardAvatar,
|
|
11
|
+
HlmCardContent,
|
|
12
|
+
HlmCardDescription,
|
|
13
|
+
HlmCardFooter,
|
|
14
|
+
HlmCardHeader,
|
|
15
|
+
HlmCardTitle,
|
|
16
|
+
} from '@spartan-ng/styles/card';
|
|
15
17
|
|
|
16
|
-
/** Card container density. */
|
|
17
18
|
export type AppCardSize = 'default' | 'sm';
|
|
18
19
|
|
|
19
|
-
/**
|
|
20
|
-
* Thin wrapper over `mat-card`. Preserves the `app-card` / `app-card-*` slot API
|
|
21
|
-
* while Material drives the visual. `size="sm"` maps to a compact-padding class.
|
|
22
|
-
*/
|
|
23
20
|
@Component({
|
|
24
21
|
selector: 'app-card',
|
|
25
22
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
styleUrl: './card.scss',
|
|
23
|
+
hostDirectives: [{ directive: HlmCard, inputs: ['size'] }],
|
|
24
|
+
host: { '[class]': 'classes()' },
|
|
25
|
+
template: '<ng-content />',
|
|
30
26
|
})
|
|
31
27
|
export class CardComponent {
|
|
32
28
|
readonly size = input<AppCardSize>('default');
|
|
33
|
-
/** Extra classes forwarded to the inner `mat-card` (host `class` lands here). */
|
|
34
29
|
readonly classes = input<string>('', { alias: 'class' });
|
|
35
30
|
}
|
|
36
31
|
|
|
37
|
-
/**
|
|
38
|
-
* Header slot — wraps `mat-card-header` and recreates its title/subtitle stack
|
|
39
|
-
* so the slots project by element selector (Material's static
|
|
40
|
-
* `[mat-card-title]` projection can't see the runtime attribute across this
|
|
41
|
-
* boundary, and would otherwise render title + subtitle side by side).
|
|
42
|
-
*/
|
|
43
32
|
@Component({
|
|
44
33
|
selector: 'app-card-header',
|
|
45
34
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<div class="app-card-header-text">
|
|
50
|
-
<ng-content select="app-card-title" />
|
|
51
|
-
<ng-content select="app-card-description" />
|
|
52
|
-
</div>
|
|
53
|
-
<ng-content />
|
|
54
|
-
</mat-card-header>`,
|
|
55
|
-
styles: '.app-card-header-text { display: flex; flex-direction: column; gap: 0.25rem; }',
|
|
35
|
+
hostDirectives: [HlmCardHeader],
|
|
36
|
+
host: { '[class]': 'classes()' },
|
|
37
|
+
template: '<ng-content />',
|
|
56
38
|
})
|
|
57
39
|
export class CardHeaderComponent {
|
|
58
|
-
/** Extra classes forwarded to the inner `mat-card-header`. */
|
|
59
40
|
readonly classes = input<string>('', { alias: 'class' });
|
|
60
41
|
}
|
|
61
42
|
|
|
62
|
-
/** Title slot — Material's `MatCardTitle` styling. */
|
|
63
43
|
@Component({
|
|
64
44
|
selector: 'app-card-title',
|
|
65
45
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
66
|
-
hostDirectives: [
|
|
46
|
+
hostDirectives: [HlmCardTitle],
|
|
67
47
|
template: '<ng-content />',
|
|
68
48
|
})
|
|
69
49
|
export class CardTitleComponent {}
|
|
70
50
|
|
|
71
|
-
/** Description slot — Material's `mat-card-subtitle` styling. */
|
|
72
51
|
@Component({
|
|
73
52
|
selector: 'app-card-description',
|
|
74
53
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
75
|
-
hostDirectives: [
|
|
54
|
+
hostDirectives: [HlmCardDescription],
|
|
76
55
|
template: '<ng-content />',
|
|
77
56
|
})
|
|
78
57
|
export class CardDescriptionComponent {}
|
|
79
58
|
|
|
80
|
-
|
|
59
|
+
@Component({
|
|
60
|
+
selector: 'app-card-avatar',
|
|
61
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
62
|
+
hostDirectives: [HlmCardAvatar],
|
|
63
|
+
template: '<ng-content />',
|
|
64
|
+
})
|
|
65
|
+
export class CardAvatarComponent {}
|
|
66
|
+
|
|
81
67
|
@Component({
|
|
82
68
|
selector: 'app-card-action',
|
|
83
69
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
84
|
-
|
|
70
|
+
hostDirectives: [HlmCardAction],
|
|
85
71
|
template: '<ng-content />',
|
|
86
72
|
})
|
|
87
73
|
export class CardActionComponent {}
|
|
88
74
|
|
|
89
|
-
/** Body slot — Material's `mat-card-content`. */
|
|
90
75
|
@Component({
|
|
91
76
|
selector: 'app-card-content',
|
|
92
77
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
93
|
-
hostDirectives: [
|
|
78
|
+
hostDirectives: [HlmCardContent],
|
|
94
79
|
template: '<ng-content />',
|
|
95
80
|
})
|
|
96
81
|
export class CardContentComponent {}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Footer slot — Material's `mat-card-actions` (a flex-row action bar).
|
|
100
|
-
* Material ships no inter-button spacing, so `:host` (the actions element)
|
|
101
|
-
* sets a `gap`.
|
|
102
|
-
*/
|
|
103
82
|
@Component({
|
|
104
83
|
selector: 'app-card-footer',
|
|
105
84
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
106
|
-
hostDirectives: [
|
|
107
|
-
|
|
85
|
+
hostDirectives: [HlmCardFooter],
|
|
86
|
+
host: { class: 'gap-2' },
|
|
108
87
|
template: '<ng-content />',
|
|
109
88
|
})
|
|
110
89
|
export class CardFooterComponent {}
|
|
90
|
+
|
|
91
|
+
export const CardImports = [
|
|
92
|
+
CardComponent,
|
|
93
|
+
CardHeaderComponent,
|
|
94
|
+
CardTitleComponent,
|
|
95
|
+
CardDescriptionComponent,
|
|
96
|
+
CardAvatarComponent,
|
|
97
|
+
CardActionComponent,
|
|
98
|
+
CardContentComponent,
|
|
99
|
+
CardFooterComponent,
|
|
100
|
+
] as const;
|
|
@@ -1,10 +1,38 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
<div
|
|
2
|
+
hlmCollapsible
|
|
3
|
+
[expanded]="open()"
|
|
4
|
+
[disabled]="disabled()"
|
|
5
|
+
(expandedChange)="open.set($event)"
|
|
6
|
+
class="rounded-[12px] bg-card shadow-md overflow-hidden"
|
|
7
|
+
>
|
|
8
|
+
<button
|
|
9
|
+
hlmCollapsibleTrigger
|
|
10
|
+
type="button"
|
|
11
|
+
class="flex w-full items-center justify-between px-6 min-h-12 font-medium transition-[min-height,background-color] duration-225 rounded-[inherit] disabled:pointer-events-none disabled:text-foreground/[0.38]"
|
|
12
|
+
[class.min-h-16]="open()"
|
|
13
|
+
[disabled]="disabled()"
|
|
14
|
+
>
|
|
15
|
+
<span class="flex flex-1 items-center overflow-hidden">
|
|
16
|
+
@if (title()) {
|
|
17
|
+
<span>{{ title() }}</span>
|
|
18
|
+
} @else {
|
|
19
|
+
<ng-content select="[collapsibleHeader]" />
|
|
20
|
+
}
|
|
21
|
+
</span>
|
|
22
|
+
<svg
|
|
23
|
+
class="size-6 shrink-0 transition-transform duration-225 fill-foreground/60"
|
|
24
|
+
[class.rotate-180]="open()"
|
|
25
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
26
|
+
viewBox="0 -960 960 960"
|
|
27
|
+
aria-hidden="true"
|
|
28
|
+
focusable="false"
|
|
29
|
+
>
|
|
30
|
+
<path d="M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z" />
|
|
31
|
+
</svg>
|
|
32
|
+
</button>
|
|
33
|
+
<div hlmCollapsibleContent>
|
|
34
|
+
<div class="px-6 pb-4">
|
|
35
|
+
<ng-content />
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
@@ -3,24 +3,19 @@
|
|
|
3
3
|
* All rights reserved.
|
|
4
4
|
* For full license text, see the LICENSE.txt file
|
|
5
5
|
*/
|
|
6
|
-
import { ChangeDetectionStrategy, Component, input, model } from '@angular/core';
|
|
7
|
-
import {
|
|
6
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, input, model } from '@angular/core';
|
|
7
|
+
import { HlmCollapsibleImports } from '@spartan-ng/styles/collapsible';
|
|
8
8
|
|
|
9
|
-
/**
|
|
10
|
-
* Thin wrapper over Material's `mat-expansion-panel`. Two-way bindable `open`
|
|
11
|
-
* and a `title`; body via `<ng-content>`. For custom header content, omit
|
|
12
|
-
* `title` and project `[collapsibleHeader]`.
|
|
13
|
-
*/
|
|
14
9
|
@Component({
|
|
15
10
|
selector: 'app-collapsible',
|
|
16
11
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
17
|
-
imports: [
|
|
12
|
+
imports: [HlmCollapsibleImports],
|
|
18
13
|
templateUrl: './collapsible.html',
|
|
19
14
|
})
|
|
20
15
|
export class CollapsibleComponent {
|
|
21
|
-
/** Two-way bindable expanded state. Supports `[(open)]`. */
|
|
22
16
|
readonly open = model<boolean>(false);
|
|
23
|
-
|
|
24
|
-
/** Header title text. Omit and project `[collapsibleHeader]` for custom content. */
|
|
25
17
|
readonly title = input<string>('');
|
|
18
|
+
readonly disabled = input(false, { transform: booleanAttribute });
|
|
26
19
|
}
|
|
20
|
+
|
|
21
|
+
export const CollapsibleImports = [CollapsibleComponent] as const;
|