@sula-tech/webcomponents 0.20.1 → 0.21.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 (143) hide show
  1. package/dist/cjs/index.cjs.js +7 -3
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/{sula-avatar_31.cjs.entry.js → sula-avatar_32.cjs.entry.js} +411 -81
  5. package/dist/cjs/sula-avatar_32.cjs.entry.js.map +1 -0
  6. package/dist/cjs/{sula-menu.model-BDxbWyPG.js → sula-calendar.model-BI5cNrUo.js} +8 -2
  7. package/dist/cjs/sula-calendar.model-BI5cNrUo.js.map +1 -0
  8. package/dist/cjs/sula-toast-stack.cjs.entry.js +4 -4
  9. package/dist/cjs/sula-toast.cjs.entry.js +2 -2
  10. package/dist/cjs/webcomponents.cjs.js +1 -1
  11. package/dist/collection/collection-manifest.json +1 -0
  12. package/dist/collection/components/sula-calendar/model/sula-calendar.model.js +6 -0
  13. package/dist/collection/components/sula-calendar/model/sula-calendar.model.js.map +1 -0
  14. package/dist/collection/components/sula-calendar/sula-calendar.css +1 -0
  15. package/dist/collection/components/sula-calendar/sula-calendar.js +747 -0
  16. package/dist/collection/components/sula-calendar/sula-calendar.js.map +1 -0
  17. package/dist/collection/components/sula-calendar/sula-calendar.stories.js +273 -0
  18. package/dist/collection/components/sula-calendar/sula-calendar.stories.js.map +1 -0
  19. package/dist/collection/components/sula-checkbox/sula-checkbox.js +3 -3
  20. package/dist/collection/components/sula-chip/sula-chip.js +3 -3
  21. package/dist/collection/components/sula-dropdown/sula-dropdown.js +3 -3
  22. package/dist/collection/components/sula-icon/sula-icon.css +1 -1
  23. package/dist/collection/components/sula-icon/sula-icon.js +1 -1
  24. package/dist/collection/components/sula-icon-picker/sula-icon-picker.js +2 -2
  25. package/dist/collection/components/sula-loader/sula-loader.js +1 -1
  26. package/dist/collection/components/sula-menu/sula-menu.js +8 -8
  27. package/dist/collection/components/sula-menu-select-list/sula-menu-select-list.js +1 -1
  28. package/dist/collection/components/sula-progress-bar/sula-progress-bar.js +2 -2
  29. package/dist/collection/components/sula-radio-button/sula-radio-button.js +2 -2
  30. package/dist/collection/components/sula-search-bar/sula-search-bar.js +2 -2
  31. package/dist/collection/components/sula-segmented-control/sula-segmented-control.js +1 -1
  32. package/dist/collection/components/sula-switch/sula-switch.js +4 -4
  33. package/dist/collection/components/sula-table/sula-table.js +3 -3
  34. package/dist/collection/components/sula-table-body/sula-table-body.js +1 -1
  35. package/dist/collection/components/sula-table-cell/sula-table-cell.js +2 -2
  36. package/dist/collection/components/sula-table-head-cell/sula-table-head-cell.js +2 -2
  37. package/dist/collection/components/sula-table-header/sula-table-header.js +1 -1
  38. package/dist/collection/components/sula-table-row/sula-table-row.js +1 -1
  39. package/dist/collection/components/sula-tag/sula-tag.js +3 -3
  40. package/dist/collection/components/sula-textarea/sula-textarea.js +6 -6
  41. package/dist/collection/components/sula-textfield/sula-textfield.css +1 -1
  42. package/dist/collection/components/sula-textfield/sula-textfield.js +27 -3
  43. package/dist/collection/components/sula-textfield/sula-textfield.js.map +1 -1
  44. package/dist/collection/components/sula-textfield/sula-textfield.stories.js +9 -0
  45. package/dist/collection/components/sula-textfield/sula-textfield.stories.js.map +1 -1
  46. package/dist/collection/components/sula-tiles/sula-tiles.js +1 -1
  47. package/dist/collection/components/sula-timeline-list/sula-timeline-list.js +1 -1
  48. package/dist/collection/components/sula-toast/sula-toast.js +2 -2
  49. package/dist/collection/components/sula-toast-stack/sula-toast-stack.js +4 -4
  50. package/dist/collection/components/sula-toggle/sula-toggle.js +1 -1
  51. package/dist/collection/components/sula-tooltip/sula-tooltip.js +1 -1
  52. package/dist/collection/index.js +1 -0
  53. package/dist/collection/index.js.map +1 -1
  54. package/dist/components/index.js +1 -0
  55. package/dist/components/index.js.map +1 -1
  56. package/dist/components/{p-DmQoJS86.js → p-B_NGmHsm.js} +5 -5
  57. package/dist/components/{p-DmQoJS86.js.map → p-B_NGmHsm.js.map} +1 -1
  58. package/dist/components/{p-D0ZAC0yK.js → p-BjgwRn5o.js} +7 -7
  59. package/dist/components/{p-D0ZAC0yK.js.map → p-BjgwRn5o.js.map} +1 -1
  60. package/dist/components/{p-DGfvh6dZ.js → p-BlH9b-mx.js} +4 -4
  61. package/dist/components/{p-DGfvh6dZ.js.map → p-BlH9b-mx.js.map} +1 -1
  62. package/dist/components/p-Cp_4qTxj.js +10 -0
  63. package/dist/components/p-Cp_4qTxj.js.map +1 -0
  64. package/dist/components/{p-DqRqPukj.js → p-DaG0HavP.js} +4 -4
  65. package/dist/components/{p-DqRqPukj.js.map → p-DaG0HavP.js.map} +1 -1
  66. package/dist/components/{p-b7t6bSNa.js → p-DtVQ10Ux.js} +4 -4
  67. package/dist/components/{p-b7t6bSNa.js.map → p-DtVQ10Ux.js.map} +1 -1
  68. package/dist/components/{p-CJ2i2jVV.js → p-VozP-C7p.js} +5 -5
  69. package/dist/components/{p-CJ2i2jVV.js.map → p-VozP-C7p.js.map} +1 -1
  70. package/dist/components/{p-DmCNhtp_.js → p-rCU8ay8s.js} +3 -3
  71. package/dist/components/{p-DmCNhtp_.js.map → p-rCU8ay8s.js.map} +1 -1
  72. package/dist/components/p-rm8YKiRh.js +555 -0
  73. package/dist/components/p-rm8YKiRh.js.map +1 -0
  74. package/dist/components/sula-avatar.js +1 -1
  75. package/dist/components/sula-badge.js +1 -1
  76. package/dist/components/sula-breadcrumb.js +1 -1
  77. package/dist/components/sula-button.js +1 -1
  78. package/dist/components/sula-calendar.d.ts +11 -0
  79. package/dist/components/sula-calendar.js +385 -0
  80. package/dist/components/sula-calendar.js.map +1 -0
  81. package/dist/components/sula-checkbox.js +4 -4
  82. package/dist/components/sula-chip.js +5 -5
  83. package/dist/components/sula-dropdown.js +1 -1
  84. package/dist/components/sula-icon-picker.js +6 -6
  85. package/dist/components/sula-icon.js +1 -1
  86. package/dist/components/sula-loader.js +1 -1
  87. package/dist/components/sula-menu-select-list.js +1 -1
  88. package/dist/components/sula-menu.js +9 -9
  89. package/dist/components/sula-modal.js +3 -3
  90. package/dist/components/sula-progress-bar.js +3 -3
  91. package/dist/components/sula-radio-button.js +2 -2
  92. package/dist/components/sula-search-bar.js +1 -1
  93. package/dist/components/sula-segmented-control.js +2 -2
  94. package/dist/components/sula-switch.js +4 -4
  95. package/dist/components/sula-table-body.js +1 -1
  96. package/dist/components/sula-table-cell.js +2 -2
  97. package/dist/components/sula-table-head-cell.js +2 -2
  98. package/dist/components/sula-table-header.js +1 -1
  99. package/dist/components/sula-table-row.js +1 -1
  100. package/dist/components/sula-table.js +3 -3
  101. package/dist/components/sula-tag.js +4 -4
  102. package/dist/components/sula-textarea.js +6 -6
  103. package/dist/components/sula-textfield.js +1 -545
  104. package/dist/components/sula-textfield.js.map +1 -1
  105. package/dist/components/sula-tiles.js +2 -2
  106. package/dist/components/sula-timeline-list.js +2 -2
  107. package/dist/components/sula-toast-stack.js +6 -6
  108. package/dist/components/sula-toast.js +1 -1
  109. package/dist/components/sula-toggle.js +2 -2
  110. package/dist/components/sula-tooltip.js +2 -2
  111. package/dist/esm/index.js +1 -1
  112. package/dist/esm/loader.js +1 -1
  113. package/dist/esm/{sula-avatar_31.entry.js → sula-avatar_32.entry.js} +405 -76
  114. package/dist/esm/sula-avatar_32.entry.js.map +1 -0
  115. package/dist/esm/{sula-menu.model-Cs9RR1ZV.js → sula-calendar.model-BbsLJDfp.js} +9 -3
  116. package/dist/esm/sula-calendar.model-BbsLJDfp.js.map +1 -0
  117. package/dist/esm/sula-toast-stack.entry.js +4 -4
  118. package/dist/esm/sula-toast.entry.js +2 -2
  119. package/dist/esm/webcomponents.js +1 -1
  120. package/dist/types/components/sula-calendar/model/sula-calendar.model.d.ts +28 -0
  121. package/dist/types/components/sula-calendar/sula-calendar.d.ts +128 -0
  122. package/dist/types/components/sula-calendar/sula-calendar.stories.d.ts +159 -0
  123. package/dist/types/components/sula-textfield/sula-textfield.d.ts +4 -0
  124. package/dist/types/components/sula-textfield/sula-textfield.stories.d.ts +8 -0
  125. package/dist/types/components.d.ts +199 -0
  126. package/dist/types/index.d.ts +2 -0
  127. package/dist/webcomponents/index.esm.js +1 -1
  128. package/dist/webcomponents/{p-f4ef50ea.entry.js → p-0004eff8.entry.js} +790 -366
  129. package/dist/webcomponents/p-0004eff8.entry.js.map +1 -0
  130. package/dist/webcomponents/{p-170854a5.entry.js → p-9a8a1133.entry.js} +16 -16
  131. package/dist/webcomponents/{p-Cs9RR1ZV.js → p-BbsLJDfp.js} +11 -4
  132. package/dist/webcomponents/p-BbsLJDfp.js.map +1 -0
  133. package/dist/webcomponents/{p-c58125e1.entry.js → p-aafb83bd.entry.js} +6 -6
  134. package/dist/webcomponents/webcomponents.esm.js +46 -23
  135. package/package.json +1 -1
  136. package/dist/cjs/sula-avatar_31.cjs.entry.js.map +0 -1
  137. package/dist/cjs/sula-menu.model-BDxbWyPG.js.map +0 -1
  138. package/dist/esm/sula-avatar_31.entry.js.map +0 -1
  139. package/dist/esm/sula-menu.model-Cs9RR1ZV.js.map +0 -1
  140. package/dist/webcomponents/p-Cs9RR1ZV.js.map +0 -1
  141. package/dist/webcomponents/p-f4ef50ea.entry.js.map +0 -1
  142. /package/dist/webcomponents/{p-170854a5.entry.js.map → p-9a8a1133.entry.js.map} +0 -0
  143. /package/dist/webcomponents/{p-c58125e1.entry.js.map → p-aafb83bd.entry.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sula-calendar.js","sourceRoot":"","sources":["../../../src/components/sula-calendar/sula-calendar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Event, EventEmitter, Host, Listen, Prop, State, Watch, h } from '@stencil/core';\nimport { SulaTextfieldStatus } from '../sula-textfield/model/sula-textfield.model';\nimport { SulaCalendarDay, SulaCalendarMonthChange, SulaCalendarRange, SulaCalendarStatus, SulaCalendarWeekday } from './model/sula-calendar.model';\n\nconst DATE_PATTERN = /^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/;\nconst DAYS_IN_WEEK = 7;\nconst FALLBACK_LOCALE = 'pt-BR';\n\n@Component({\n tag: 'sula-calendar',\n styleUrl: 'sula-calendar.scss',\n shadow: true,\n})\nexport class SulaCalendar {\n /**\n * The calendar field label\n */\n @Prop() label: string;\n\n /**\n * Selected date in the `DD/MM/YYYY` format. In range mode the format is `DD/MM/YYYY - DD/MM/YYYY`\n */\n @Prop({ mutable: true }) value: string = '';\n\n /**\n * The calendar field placeholder\n */\n @Prop() placeholder?: string;\n\n /**\n * The calendar is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * The help text displayed below the field\n */\n @Prop() helpText?: string;\n\n /**\n * The calendar field status\n */\n @Prop() status: SulaCalendarStatus = SulaCalendarStatus.Default;\n\n /**\n * Locale used to format month and weekday names\n */\n @Prop() locale: string = 'pt-BR';\n\n /**\n * Earliest selectable date in the `DD/MM/YYYY` format\n */\n @Prop() minDate?: string;\n\n /**\n * Latest selectable date in the `DD/MM/YYYY` format\n */\n @Prop() maxDate?: string;\n\n /**\n * Enables selecting a date range (start and end dates) instead of a single date\n */\n @Prop() range: boolean = false;\n\n /**\n * Allows typing the date directly in the field. When false, the date can only be picked in the calendar\n */\n @Prop() allowTyping: boolean = true;\n\n /**\n * Renders only the calendar panel, without the input field\n */\n @Prop() inline: boolean = false;\n\n /**\n * First day of the week, where 0 is Sunday and 6 is Saturday\n */\n @Prop() firstDayOfWeek: number = 0;\n\n /**\n * Closes the calendar panel after a date is selected\n */\n @Prop() closeOnSelect: boolean = true;\n\n /**\n * Event emitted when a date is selected, with the date in the `DD/MM/YYYY` format\n */\n @Event() dateSelected: EventEmitter<string>;\n\n /**\n * Event emitted in range mode when both the start and end dates are selected, either by picking or by typing. In range mode `valueChanged` is not emitted\n */\n @Event() rangeSelected: EventEmitter<SulaCalendarRange>;\n\n /**\n * Event emitted when the value changes, either by typing or by selecting a date. Not emitted in range mode, use `rangeSelected` instead\n */\n @Event() valueChanged: EventEmitter<string>;\n\n /**\n * Event emitted when the displayed month changes\n */\n @Event() monthChanged: EventEmitter<SulaCalendarMonthChange>;\n\n /**\n * Event emitted when the calendar panel is opened\n */\n @Event() calendarOpened: EventEmitter<void>;\n\n /**\n * Event emitted when the calendar panel is closed\n */\n @Event() calendarClosed: EventEmitter<void>;\n\n @State() showCalendar: boolean = false;\n\n @State() openUpward: boolean = false;\n\n @State() viewMonth: number;\n\n @State() viewYear: number;\n\n @State() hoverDate: Date | null = null;\n\n node?: HTMLElement;\n\n panelNode?: HTMLElement;\n\n @Watch('value')\n handleValueChange() {\n this.hoverDate = null;\n\n // keeps the view on the current month while an incomplete date is being typed\n if (this.selectedDate) {\n this.syncViewWithValue();\n }\n }\n\n @Listen('click', { target: 'document' })\n handleDocumentClick(event: Event) {\n if (!this.showCalendar || !this.node) return;\n\n if (!event.composedPath().includes(this.node)) {\n this.close();\n }\n }\n\n @Listen('keydown', { target: 'document' })\n handleDocumentKeydown(event: KeyboardEvent) {\n if (this.showCalendar && event.key === 'Escape') {\n this.close();\n }\n }\n\n componentWillLoad() {\n this.syncViewWithValue();\n }\n\n componentDidRender() {\n if (this.showCalendar) {\n this.calculatePanelPosition();\n }\n }\n\n get selectedDate(): Date | null {\n return this.getRange().start;\n }\n\n private getRange(): { start: Date | null; end: Date | null } {\n if (!this.range) {\n return { start: this.parseDate(this.value), end: null };\n }\n\n const [startText, endText] = (this.value ?? '').split('-');\n\n return { start: this.parseDate(startText), end: this.parseDate(endText) };\n }\n\n private syncViewWithValue() {\n const reference = this.selectedDate ?? new Date();\n\n this.viewMonth = reference.getMonth();\n this.viewYear = reference.getFullYear();\n }\n\n private parseDate(value?: string): Date | null {\n const match = DATE_PATTERN.exec((value ?? '').trim());\n if (!match) return null;\n\n const day = Number(match[1]);\n const month = Number(match[2]);\n const year = Number(match[3]);\n const date = new Date(year, month - 1, day, 0, 0, 0, 0);\n\n const isValid = date.getDate() === day && date.getMonth() === month - 1 && date.getFullYear() === year;\n\n return isValid ? date : null;\n }\n\n private formatDate(date: Date): string {\n const day = `${date.getDate()}`.padStart(2, '0');\n const month = `${date.getMonth() + 1}`.padStart(2, '0');\n\n return `${day}/${month}/${date.getFullYear()}`;\n }\n\n private capitalize(text: string): string {\n return text.charAt(0).toUpperCase() + text.slice(1);\n }\n\n private isSameDay(first: Date, second: Date): boolean {\n return first.getDate() === second.getDate() && first.getMonth() === second.getMonth() && first.getFullYear() === second.getFullYear();\n }\n\n private isOutOfRange(date: Date, min: Date | null, max: Date | null): boolean {\n return (!!min && date.getTime() < min.getTime()) || (!!max && date.getTime() > max.getTime());\n }\n\n private get weekStart(): number {\n const value = Math.trunc(Number(this.firstDayOfWeek));\n\n return Number.isFinite(value) ? ((value % DAYS_IN_WEEK) + DAYS_IN_WEEK) % DAYS_IN_WEEK : 0;\n }\n\n // an invalid `locale` would make Intl throw and break the whole render\n private createFormatter(options: Intl.DateTimeFormatOptions): Intl.DateTimeFormat {\n try {\n return new Intl.DateTimeFormat(this.locale, options);\n } catch {\n return new Intl.DateTimeFormat(FALLBACK_LOCALE, options);\n }\n }\n\n getMonthLabel(): string {\n const date = new Date(this.viewYear, this.viewMonth, 1);\n const month = this.createFormatter({ month: 'short' }).format(date).replace(/\\./g, '');\n\n return `${this.capitalize(month)} ${this.viewYear}`;\n }\n\n getWeekdays(): SulaCalendarWeekday[] {\n const shortFormatter = this.createFormatter({ weekday: 'short' });\n const longFormatter = this.createFormatter({ weekday: 'long' });\n\n return Array.from({ length: DAYS_IN_WEEK }, (_, index) => {\n // 2024-01-07 is a Sunday, used as a stable reference to build the weekday sequence\n const date = new Date(2024, 0, 7 + ((index + this.weekStart) % DAYS_IN_WEEK));\n\n return {\n short: this.capitalize(shortFormatter.format(date).replace(/\\./g, '')),\n long: this.capitalize(longFormatter.format(date)),\n };\n });\n }\n\n getWeeks(): SulaCalendarDay[][] {\n const today = new Date();\n const { start, end } = this.getRange();\n const previewEnd = this.range && !!start && !end ? this.hoverDate : null;\n const rangeEnd = end ?? previewEnd;\n const hasRange = this.range && !!start && !!rangeEnd;\n const from = hasRange && start.getTime() > rangeEnd.getTime() ? rangeEnd : start;\n const to = hasRange && start.getTime() > rangeEnd.getTime() ? start : rangeEnd;\n const firstOfMonth = new Date(this.viewYear, this.viewMonth, 1);\n const min = this.parseDate(this.minDate);\n const max = this.parseDate(this.maxDate);\n const offset = (firstOfMonth.getDay() - this.weekStart + DAYS_IN_WEEK) % DAYS_IN_WEEK;\n const daysInMonth = new Date(this.viewYear, this.viewMonth + 1, 0).getDate();\n const totalCells = Math.ceil((offset + daysInMonth) / DAYS_IN_WEEK) * DAYS_IN_WEEK;\n const weeks: SulaCalendarDay[][] = [];\n\n for (let cell = 0; cell < totalCells; cell++) {\n const date = new Date(this.viewYear, this.viewMonth, cell - offset + 1);\n\n const day: SulaCalendarDay = {\n date,\n day: date.getDate(),\n isCurrentMonth: date.getMonth() === this.viewMonth && date.getFullYear() === this.viewYear,\n isSelected: (!!start && this.isSameDay(date, start)) || (this.range && !!end && this.isSameDay(date, end)),\n isRangeStart: hasRange && this.isSameDay(date, from),\n isRangeEnd: hasRange && this.isSameDay(date, to),\n isInRange: hasRange && date.getTime() > from.getTime() && date.getTime() < to.getTime(),\n isRangePreview: !!previewEnd && this.isSameDay(date, previewEnd) && !this.isSameDay(date, start),\n isToday: this.isSameDay(date, today),\n isDisabled: this.isOutOfRange(date, min, max),\n };\n\n if (cell % DAYS_IN_WEEK === 0) weeks.push([]);\n weeks[weeks.length - 1].push(day);\n }\n\n return weeks;\n }\n\n calculatePanelPosition() {\n if (!this.node || this.inline) return;\n\n const rect = this.node.getBoundingClientRect();\n const panelHeight = this.panelNode?.offsetHeight ?? 0;\n const spaceBelow = window.innerHeight - rect.bottom;\n const spaceAbove = rect.top;\n\n this.openUpward = spaceBelow < panelHeight && spaceAbove > spaceBelow;\n }\n\n open() {\n if (this.disabled || this.showCalendar) return;\n\n this.showCalendar = true;\n this.calendarOpened.emit();\n }\n\n close() {\n if (!this.showCalendar) return;\n\n this.showCalendar = false;\n this.hoverDate = null;\n this.calendarClosed.emit();\n }\n\n handleFieldClick = () => {\n this.open();\n };\n\n handleFieldKeydown = (event: KeyboardEvent) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.open();\n }\n };\n\n handleInputChanged = (event: CustomEvent<string>) => {\n event.stopPropagation();\n\n const typedValue = event.detail ?? '';\n\n this.value = typedValue;\n\n if (this.range) {\n const { start, end } = this.getRange();\n\n if (start && end && start.getTime() <= end.getTime()) {\n this.rangeSelected.emit({ start: this.formatDate(start), end: this.formatDate(end) });\n }\n\n return;\n }\n\n this.valueChanged.emit(typedValue);\n };\n\n handlePreviousMonth = (event: MouseEvent) => {\n event.stopPropagation();\n this.changeMonth(-1);\n };\n\n handleNextMonth = (event: MouseEvent) => {\n event.stopPropagation();\n this.changeMonth(1);\n };\n\n changeMonth(step: number) {\n const date = new Date(this.viewYear, this.viewMonth + step, 1);\n\n this.viewMonth = date.getMonth();\n this.viewYear = date.getFullYear();\n\n this.monthChanged.emit({ month: this.viewMonth, year: this.viewYear });\n }\n\n handleSelectDay = (event: MouseEvent, day: SulaCalendarDay) => {\n event.stopPropagation();\n\n if (day.isDisabled || this.disabled) return;\n\n if (this.range) {\n this.selectRangeDay(day.date);\n return;\n }\n\n const formatted = this.formatDate(day.date);\n\n this.value = formatted;\n this.dateSelected.emit(formatted);\n this.valueChanged.emit(formatted);\n\n if (this.closeOnSelect && !this.inline) {\n this.close();\n }\n };\n\n selectRangeDay(date: Date) {\n const { start, end } = this.getRange();\n\n // first click, or a click after a complete range, starts a new range\n if (!start || end) {\n this.value = this.formatDate(date);\n return;\n }\n\n const [from, to] = date.getTime() < start.getTime() ? [date, start] : [start, date];\n const range: SulaCalendarRange = { start: this.formatDate(from), end: this.formatDate(to) };\n\n this.value = `${range.start} - ${range.end}`;\n this.rangeSelected.emit(range);\n\n if (this.closeOnSelect && !this.inline) {\n this.close();\n }\n }\n\n handleDayHover(day: SulaCalendarDay) {\n if (!this.range || day.isDisabled) return;\n\n this.hoverDate = day.date;\n }\n\n handleGridLeave = () => {\n this.hoverDate = null;\n };\n\n getTextfieldStatus(): SulaTextfieldStatus {\n return this.status === SulaCalendarStatus.Error ? SulaTextfieldStatus.Error : SulaTextfieldStatus.Default;\n }\n\n renderHeader() {\n return (\n <div class=\"flex h-28 w-full flex-row items-center justify-between gap-12 px-4\">\n <button\n type=\"button\"\n class=\"flex h-28 w-28 items-center justify-center rounded-xs hover:bg-states-empty-bg-hover\"\n aria-label=\"Mês anterior\"\n onClick={this.handlePreviousMonth}\n >\n <sula-icon icon=\"ph ph-caret-left\" customClass=\"text-base text-text-secondary\"></sula-icon>\n </button>\n\n <span class=\"text-label-medium-regular text-text-primary\" aria-live=\"polite\">\n {this.getMonthLabel()}\n </span>\n\n <button\n type=\"button\"\n class=\"flex h-28 w-28 items-center justify-center rounded-xs hover:bg-states-empty-bg-hover\"\n aria-label=\"Próximo mês\"\n onClick={this.handleNextMonth}\n >\n <sula-icon icon=\"ph ph-caret-right\" customClass=\"text-base text-text-secondary\"></sula-icon>\n </button>\n </div>\n );\n }\n\n renderDay(day: SulaCalendarDay) {\n return (\n <div\n role=\"gridcell\"\n aria-selected={day.isSelected ? 'true' : 'false'}\n aria-disabled={day.isDisabled ? 'true' : null}\n aria-current={day.isToday ? 'date' : null}\n class=\"relative flex w-full items-center justify-center\"\n onMouseEnter={() => this.handleDayHover(day)}\n >\n {(day.isInRange || day.isRangeStart !== day.isRangeEnd) && (\n <span\n data-range-background\n aria-hidden=\"true\"\n class={{\n 'absolute inset-y-0 bg-surface-on-body-brand': true,\n 'inset-x-0': day.isInRange,\n 'right-0 w-1/2': day.isRangeStart && !day.isRangeEnd,\n 'left-0 w-1/2': day.isRangeEnd && !day.isRangeStart,\n }}\n ></span>\n )}\n <button\n type=\"button\"\n disabled={day.isDisabled}\n aria-label={this.formatDate(day.date)}\n onClick={(event: MouseEvent) => this.handleSelectDay(event, day)}\n class={{\n 'relative flex h-36 w-36 items-center justify-center rounded-xxl text-label-small-regular transition-colors': true,\n 'bg-brand-primary text-neutral-neutral-1': day.isSelected,\n 'border border-brand-primary text-text-primary': day.isRangePreview && !day.isSelected,\n 'text-text-primary hover:bg-states-empty-bg-hover': !day.isSelected && day.isCurrentMonth && !day.isDisabled,\n 'text-text-secondary opacity-50 hover:bg-states-empty-bg-hover': !day.isSelected && !day.isCurrentMonth && !day.isDisabled,\n 'cursor-not-allowed text-text-disabled line-through': day.isDisabled,\n }}\n >\n {day.day}\n </button>\n </div>\n );\n }\n\n renderPanel() {\n return (\n <div\n ref={node => (this.panelNode = node)}\n role={this.inline ? 'group' : 'dialog'}\n aria-label=\"Calendário\"\n class={{\n 'calendar-panel flex w-full flex-col items-center rounded-lg border border-line-general bg-surface-body p-24': true,\n 'absolute left-0 z-50': !this.inline,\n 'bottom-full mb-8': !this.inline && this.openUpward,\n 'top-full mt-8': !this.inline && !this.openUpward,\n }}\n >\n <div class=\"flex w-full flex-col items-center gap-24\">\n {this.renderHeader()}\n\n <div class=\"flex w-full flex-col\" role=\"grid\">\n <div class=\"grid grid-cols-7\" role=\"row\">\n {this.getWeekdays().map(weekday => (\n <div role=\"columnheader\" title={weekday.long} class=\"flex h-22 w-full items-center justify-center text-label-small-regular text-text-secondary\">\n {weekday.short}\n </div>\n ))}\n </div>\n\n <div role=\"rowgroup\" class=\"grid gap-y-8 pt-8\" onMouseLeave={this.handleGridLeave}>\n {this.getWeeks().map(week => (\n <div class=\"grid grid-cols-7\" role=\"row\">\n {week.map(day => this.renderDay(day))}\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n render() {\n return (\n <Host ref={node => (this.node = node)}>\n <div class=\"relative w-full\">\n {!this.inline && (\n <div onClick={this.handleFieldClick} onKeyDown={this.handleFieldKeydown}>\n <sula-textfield\n label={this.label}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n helpText={this.helpText}\n status={this.getTextfieldStatus()}\n icon=\"ph ph-calendar-blank\"\n maskPattern={this.range ? '99/99/9999 - 99/99/9999' : '99/99/9999'}\n readOnly={!this.allowTyping}\n onValueChanged={this.handleInputChanged}\n ></sula-textfield>\n </div>\n )}\n\n {(this.inline || this.showCalendar) && this.renderPanel()}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,273 @@
1
+ export default {
2
+ title: 'Components/sula-calendar',
3
+ tags: ['autodocs'],
4
+ argTypes: {
5
+ label: {
6
+ control: 'text',
7
+ defaultValue: 'Data',
8
+ description: 'Label do campo de data',
9
+ type: {
10
+ required: false,
11
+ },
12
+ },
13
+ value: {
14
+ control: 'text',
15
+ defaultValue: '',
16
+ description: 'Data selecionada no formato DD/MM/AAAA',
17
+ type: {
18
+ required: false,
19
+ },
20
+ },
21
+ placeholder: {
22
+ control: 'text',
23
+ defaultValue: '',
24
+ description: 'Placeholder do campo de data',
25
+ type: {
26
+ required: false,
27
+ },
28
+ },
29
+ disabled: {
30
+ control: 'boolean',
31
+ defaultValue: false,
32
+ description: 'Define se o componente está desabilitado',
33
+ type: {
34
+ required: false,
35
+ },
36
+ },
37
+ helpText: {
38
+ control: 'text',
39
+ defaultValue: '',
40
+ description: 'Texto de apoio exibido abaixo do campo',
41
+ type: {
42
+ required: false,
43
+ },
44
+ },
45
+ status: {
46
+ control: 'select',
47
+ options: ['default', 'error'],
48
+ defaultValue: 'default',
49
+ description: 'Status do campo de data',
50
+ type: {
51
+ required: false,
52
+ },
53
+ },
54
+ locale: {
55
+ control: 'text',
56
+ defaultValue: 'pt-BR',
57
+ description: 'Locale utilizado para formatar nomes de mês e dias da semana',
58
+ type: {
59
+ required: false,
60
+ },
61
+ },
62
+ minDate: {
63
+ control: 'text',
64
+ description: 'Menor data selecionável no formato DD/MM/AAAA',
65
+ type: {
66
+ required: false,
67
+ },
68
+ },
69
+ maxDate: {
70
+ control: 'text',
71
+ description: 'Maior data selecionável no formato DD/MM/AAAA',
72
+ type: {
73
+ required: false,
74
+ },
75
+ },
76
+ range: {
77
+ control: 'boolean',
78
+ defaultValue: false,
79
+ description: 'Habilita a seleção de um período (data inicial e final). O valor fica no formato DD/MM/AAAA - DD/MM/AAAA',
80
+ type: {
81
+ required: false,
82
+ },
83
+ },
84
+ allowTyping: {
85
+ control: 'boolean',
86
+ defaultValue: true,
87
+ description: 'Permite digitar a data diretamente no campo. Quando false, a data só pode ser escolhida no calendário',
88
+ type: {
89
+ required: false,
90
+ },
91
+ },
92
+ inline: {
93
+ control: 'boolean',
94
+ defaultValue: false,
95
+ description: 'Renderiza apenas o painel do calendário, sem o campo de entrada',
96
+ type: {
97
+ required: false,
98
+ },
99
+ },
100
+ firstDayOfWeek: {
101
+ control: 'number',
102
+ defaultValue: 0,
103
+ description: 'Primeiro dia da semana, sendo 0 domingo e 6 sábado',
104
+ type: {
105
+ required: false,
106
+ },
107
+ },
108
+ closeOnSelect: {
109
+ control: 'boolean',
110
+ defaultValue: true,
111
+ description: 'Fecha o painel do calendário ao selecionar uma data',
112
+ type: {
113
+ required: false,
114
+ },
115
+ },
116
+ dateSelected: {
117
+ action: 'dateSelected',
118
+ description: 'Evento emitido quando uma data é selecionada',
119
+ },
120
+ rangeSelected: {
121
+ action: 'rangeSelected',
122
+ description: 'Evento emitido no modo range quando as datas inicial e final são selecionadas, por clique ou digitação ({ start, end })',
123
+ },
124
+ valueChanged: {
125
+ action: 'valueChanged',
126
+ description: 'Evento emitido quando o valor muda, por digitação ou seleção. Não é emitido no modo range (use rangeSelected)',
127
+ },
128
+ monthChanged: {
129
+ action: 'monthChanged',
130
+ description: 'Evento emitido quando o mês exibido muda',
131
+ },
132
+ calendarOpened: {
133
+ action: 'calendarOpened',
134
+ description: 'Evento emitido quando o calendário é aberto',
135
+ },
136
+ calendarClosed: {
137
+ action: 'calendarClosed',
138
+ description: 'Evento emitido quando o calendário é fechado',
139
+ },
140
+ },
141
+ parameters: {
142
+ docs: {
143
+ description: {
144
+ component: 'O componente Calendar do Sula Design System é um date picker que combina o sula-textfield (com máscara DD/MM/AAAA) com um painel de calendário. Também pode ser utilizado de forma inline, exibindo somente o painel.',
145
+ },
146
+ },
147
+ },
148
+ };
149
+ const Template = args => {
150
+ const container = document.createElement('div');
151
+ container.style.margin = '20px';
152
+ container.style.width = '450px';
153
+ const el = document.createElement('sula-calendar');
154
+ if (args.label)
155
+ el.setAttribute('label', args.label);
156
+ if (args.value)
157
+ el.setAttribute('value', args.value);
158
+ if (args.placeholder)
159
+ el.setAttribute('placeholder', args.placeholder);
160
+ if (args.helpText)
161
+ el.setAttribute('help-text', args.helpText);
162
+ if (args.status)
163
+ el.setAttribute('status', args.status);
164
+ if (args.locale)
165
+ el.setAttribute('locale', args.locale);
166
+ if (args.minDate)
167
+ el.setAttribute('min-date', args.minDate);
168
+ if (args.maxDate)
169
+ el.setAttribute('max-date', args.maxDate);
170
+ if (args.firstDayOfWeek !== undefined)
171
+ el.setAttribute('first-day-of-week', args.firstDayOfWeek.toString());
172
+ el.setAttribute('disabled', (!!args.disabled).toString());
173
+ el.setAttribute('inline', (!!args.inline).toString());
174
+ el.setAttribute('close-on-select', (args.closeOnSelect !== false).toString());
175
+ el.setAttribute('allow-typing', (args.allowTyping !== false).toString());
176
+ el.setAttribute('range', (!!args.range).toString());
177
+ el.addEventListener('dateSelected', args.dateSelected);
178
+ el.addEventListener('rangeSelected', args.rangeSelected);
179
+ el.addEventListener('valueChanged', args.valueChanged);
180
+ el.addEventListener('monthChanged', args.monthChanged);
181
+ el.addEventListener('calendarOpened', args.calendarOpened);
182
+ el.addEventListener('calendarClosed', args.calendarClosed);
183
+ container.appendChild(el);
184
+ return container;
185
+ };
186
+ export const Default = Template.bind({});
187
+ Default.args = {
188
+ label: 'Data de nascimento',
189
+ };
190
+ export const WithSelectedValue = Template.bind({});
191
+ WithSelectedValue.args = {
192
+ label: 'Data de nascimento',
193
+ value: '19/08/2024',
194
+ };
195
+ export const Inline = Template.bind({});
196
+ Inline.args = {
197
+ label: 'Data',
198
+ value: '19/08/2024',
199
+ inline: true,
200
+ };
201
+ Inline.parameters = {
202
+ docs: {
203
+ description: {
204
+ story: 'Exibe apenas o painel do calendário, sem o campo de entrada, definindo `inline="true"`.',
205
+ },
206
+ },
207
+ };
208
+ export const WithDateRange = Template.bind({});
209
+ WithDateRange.args = {
210
+ label: 'Data do agendamento',
211
+ value: '19/08/2024',
212
+ minDate: '10/08/2024',
213
+ maxDate: '25/08/2024',
214
+ inline: true,
215
+ };
216
+ WithDateRange.parameters = {
217
+ docs: {
218
+ description: {
219
+ story: 'Limita as datas selecionáveis através das propriedades `min-date` e `max-date`.',
220
+ },
221
+ },
222
+ };
223
+ export const WithHelpText = Template.bind({});
224
+ WithHelpText.args = {
225
+ label: 'Data de nascimento',
226
+ helpText: 'Informe a data no formato DD/MM/AAAA',
227
+ };
228
+ export const Range = Template.bind({});
229
+ Range.args = {
230
+ label: 'Período',
231
+ range: true,
232
+ };
233
+ Range.parameters = {
234
+ docs: {
235
+ description: {
236
+ story: 'Habilita a seleção de um período com `range="true"`. O primeiro clique define a data inicial e o segundo a data final. O valor fica no formato `DD/MM/AAAA - DD/MM/AAAA`.',
237
+ },
238
+ },
239
+ };
240
+ export const RangeInline = Template.bind({});
241
+ RangeInline.args = {
242
+ label: 'Período',
243
+ range: true,
244
+ inline: true,
245
+ value: '10/08/2024 - 19/08/2024',
246
+ };
247
+ export const WithoutTyping = Template.bind({});
248
+ WithoutTyping.args = {
249
+ label: 'Data de nascimento',
250
+ value: '19/08/2024',
251
+ allowTyping: false,
252
+ };
253
+ WithoutTyping.parameters = {
254
+ docs: {
255
+ description: {
256
+ story: 'Bloqueia a digitação no campo com `allow-typing="false"`, permitindo escolher a data apenas pelo calendário.',
257
+ },
258
+ },
259
+ };
260
+ export const WithError = Template.bind({});
261
+ WithError.args = {
262
+ label: 'Data de nascimento',
263
+ value: '32/13/2024',
264
+ status: 'error',
265
+ helpText: 'Data inválida',
266
+ };
267
+ export const Disabled = Template.bind({});
268
+ Disabled.args = {
269
+ label: 'Data de nascimento',
270
+ value: '19/08/2024',
271
+ disabled: true,
272
+ };
273
+ //# sourceMappingURL=sula-calendar.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sula-calendar.stories.js","sourceRoot":"","sources":["../../../src/components/sula-calendar/sula-calendar.stories.tsx"],"names":[],"mappings":"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","sourcesContent":["export default {\n title: 'Components/sula-calendar',\n tags: ['autodocs'],\n argTypes: {\n label: {\n control: 'text',\n defaultValue: 'Data',\n description: 'Label do campo de data',\n type: {\n required: false,\n },\n },\n value: {\n control: 'text',\n defaultValue: '',\n description: 'Data selecionada no formato DD/MM/AAAA',\n type: {\n required: false,\n },\n },\n placeholder: {\n control: 'text',\n defaultValue: '',\n description: 'Placeholder do campo de data',\n type: {\n required: false,\n },\n },\n disabled: {\n control: 'boolean',\n defaultValue: false,\n description: 'Define se o componente está desabilitado',\n type: {\n required: false,\n },\n },\n helpText: {\n control: 'text',\n defaultValue: '',\n description: 'Texto de apoio exibido abaixo do campo',\n type: {\n required: false,\n },\n },\n status: {\n control: 'select',\n options: ['default', 'error'],\n defaultValue: 'default',\n description: 'Status do campo de data',\n type: {\n required: false,\n },\n },\n locale: {\n control: 'text',\n defaultValue: 'pt-BR',\n description: 'Locale utilizado para formatar nomes de mês e dias da semana',\n type: {\n required: false,\n },\n },\n minDate: {\n control: 'text',\n description: 'Menor data selecionável no formato DD/MM/AAAA',\n type: {\n required: false,\n },\n },\n maxDate: {\n control: 'text',\n description: 'Maior data selecionável no formato DD/MM/AAAA',\n type: {\n required: false,\n },\n },\n range: {\n control: 'boolean',\n defaultValue: false,\n description: 'Habilita a seleção de um período (data inicial e final). O valor fica no formato DD/MM/AAAA - DD/MM/AAAA',\n type: {\n required: false,\n },\n },\n allowTyping: {\n control: 'boolean',\n defaultValue: true,\n description: 'Permite digitar a data diretamente no campo. Quando false, a data só pode ser escolhida no calendário',\n type: {\n required: false,\n },\n },\n inline: {\n control: 'boolean',\n defaultValue: false,\n description: 'Renderiza apenas o painel do calendário, sem o campo de entrada',\n type: {\n required: false,\n },\n },\n firstDayOfWeek: {\n control: 'number',\n defaultValue: 0,\n description: 'Primeiro dia da semana, sendo 0 domingo e 6 sábado',\n type: {\n required: false,\n },\n },\n closeOnSelect: {\n control: 'boolean',\n defaultValue: true,\n description: 'Fecha o painel do calendário ao selecionar uma data',\n type: {\n required: false,\n },\n },\n dateSelected: {\n action: 'dateSelected',\n description: 'Evento emitido quando uma data é selecionada',\n },\n rangeSelected: {\n action: 'rangeSelected',\n description: 'Evento emitido no modo range quando as datas inicial e final são selecionadas, por clique ou digitação ({ start, end })',\n },\n valueChanged: {\n action: 'valueChanged',\n description: 'Evento emitido quando o valor muda, por digitação ou seleção. Não é emitido no modo range (use rangeSelected)',\n },\n monthChanged: {\n action: 'monthChanged',\n description: 'Evento emitido quando o mês exibido muda',\n },\n calendarOpened: {\n action: 'calendarOpened',\n description: 'Evento emitido quando o calendário é aberto',\n },\n calendarClosed: {\n action: 'calendarClosed',\n description: 'Evento emitido quando o calendário é fechado',\n },\n },\n parameters: {\n docs: {\n description: {\n component:\n 'O componente Calendar do Sula Design System é um date picker que combina o sula-textfield (com máscara DD/MM/AAAA) com um painel de calendário. Também pode ser utilizado de forma inline, exibindo somente o painel.',\n },\n },\n },\n};\n\nconst Template = args => {\n const container = document.createElement('div');\n container.style.margin = '20px';\n container.style.width = '450px';\n\n const el = document.createElement('sula-calendar');\n\n if (args.label) el.setAttribute('label', args.label);\n if (args.value) el.setAttribute('value', args.value);\n if (args.placeholder) el.setAttribute('placeholder', args.placeholder);\n if (args.helpText) el.setAttribute('help-text', args.helpText);\n if (args.status) el.setAttribute('status', args.status);\n if (args.locale) el.setAttribute('locale', args.locale);\n if (args.minDate) el.setAttribute('min-date', args.minDate);\n if (args.maxDate) el.setAttribute('max-date', args.maxDate);\n if (args.firstDayOfWeek !== undefined) el.setAttribute('first-day-of-week', args.firstDayOfWeek.toString());\n el.setAttribute('disabled', (!!args.disabled).toString());\n el.setAttribute('inline', (!!args.inline).toString());\n el.setAttribute('close-on-select', (args.closeOnSelect !== false).toString());\n el.setAttribute('allow-typing', (args.allowTyping !== false).toString());\n el.setAttribute('range', (!!args.range).toString());\n\n el.addEventListener('dateSelected', args.dateSelected);\n el.addEventListener('rangeSelected', args.rangeSelected);\n el.addEventListener('valueChanged', args.valueChanged);\n el.addEventListener('monthChanged', args.monthChanged);\n el.addEventListener('calendarOpened', args.calendarOpened);\n el.addEventListener('calendarClosed', args.calendarClosed);\n\n container.appendChild(el);\n\n return container;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n label: 'Data de nascimento',\n};\n\nexport const WithSelectedValue = Template.bind({});\nWithSelectedValue.args = {\n label: 'Data de nascimento',\n value: '19/08/2024',\n};\n\nexport const Inline = Template.bind({});\nInline.args = {\n label: 'Data',\n value: '19/08/2024',\n inline: true,\n};\nInline.parameters = {\n docs: {\n description: {\n story: 'Exibe apenas o painel do calendário, sem o campo de entrada, definindo `inline=\"true\"`.',\n },\n },\n};\n\nexport const WithDateRange = Template.bind({});\nWithDateRange.args = {\n label: 'Data do agendamento',\n value: '19/08/2024',\n minDate: '10/08/2024',\n maxDate: '25/08/2024',\n inline: true,\n};\nWithDateRange.parameters = {\n docs: {\n description: {\n story: 'Limita as datas selecionáveis através das propriedades `min-date` e `max-date`.',\n },\n },\n};\n\nexport const WithHelpText = Template.bind({});\nWithHelpText.args = {\n label: 'Data de nascimento',\n helpText: 'Informe a data no formato DD/MM/AAAA',\n};\n\nexport const Range = Template.bind({});\nRange.args = {\n label: 'Período',\n range: true,\n};\nRange.parameters = {\n docs: {\n description: {\n story: 'Habilita a seleção de um período com `range=\"true\"`. O primeiro clique define a data inicial e o segundo a data final. O valor fica no formato `DD/MM/AAAA - DD/MM/AAAA`.',\n },\n },\n};\n\nexport const RangeInline = Template.bind({});\nRangeInline.args = {\n label: 'Período',\n range: true,\n inline: true,\n value: '10/08/2024 - 19/08/2024',\n};\n\nexport const WithoutTyping = Template.bind({});\nWithoutTyping.args = {\n label: 'Data de nascimento',\n value: '19/08/2024',\n allowTyping: false,\n};\nWithoutTyping.parameters = {\n docs: {\n description: {\n story: 'Bloqueia a digitação no campo com `allow-typing=\"false\"`, permitindo escolher a data apenas pelo calendário.',\n },\n },\n};\n\nexport const WithError = Template.bind({});\nWithError.args = {\n label: 'Data de nascimento',\n value: '32/13/2024',\n status: 'error',\n helpText: 'Data inválida',\n};\n\nexport const Disabled = Template.bind({});\nDisabled.args = {\n label: 'Data de nascimento',\n value: '19/08/2024',\n disabled: true,\n};\n"]}
@@ -41,20 +41,20 @@ export class SulaCheckbox {
41
41
  return 'text-negative-negative-1';
42
42
  }
43
43
  render() {
44
- return (h(Host, { key: '0fd61b767c3596d432c165dd46ff8d51809322d7' }, h("div", { key: '125d5c775a4555bbad19515a062bb0613a09509c', class: {
44
+ return (h(Host, { key: '4f77b00d6b899f3522058e5a12e75dc8f78e4b88' }, h("div", { key: '3317fdf2630890849080592647f7ccdb1cc61205', class: {
45
45
  'outline-none': true,
46
46
  'flex items-center space-x-12': !!this.label && this.type === SulaCheckboxType.Default,
47
47
  'flex items-center justify-between bg-surface-on-body rounded-md w-[280px] min-h-[85px] px-24 py-16': this.type === SulaCheckboxType.List,
48
48
  'hover:bg-states-empty-bg-hover active:bg-states-empty-bg-pressed cursor-pointer': this.type === SulaCheckboxType.List && !this.disabled,
49
49
  'container-focus': this.isFocus && this.type === SulaCheckboxType.List,
50
- }, onFocus: this.handleFocus, onBlur: this.handleBlur, onClick: this.toggle, tabIndex: 0 }, this.type === SulaCheckboxType.List && (h("div", { key: '0be2b402e083e38e2142574498a33f7cdf3f612a', class: "flex flex-col flex-1 mr-16 overflow-hidden" }, !!this.label && h("label", { key: 'c03f67836a92c3d9a556316fd56691e2dc14efc5', class: "text-text-primary font-bold text-base cursor-pointer break-words" }, this.label), !!this.subTitle && h("span", { key: 'b66906e1cad21d9bf9db411806c9e9f2ffb663f6', class: "text-text-secondary text-base break-words" }, this.subTitle))), h("div", { key: '79fe97660d576e181ef8505c44a0f0f0865df3dc', tabIndex: 0, class: {
50
+ }, onFocus: this.handleFocus, onBlur: this.handleBlur, onClick: this.toggle, tabIndex: 0 }, this.type === SulaCheckboxType.List && (h("div", { key: '55cea9b5cda3730157689fdd76436522e21aabad', class: "flex flex-col flex-1 mr-16 overflow-hidden" }, !!this.label && h("label", { key: 'f28fe3e431513a849c0c7681ea4276032cf9064d', class: "text-text-primary font-bold text-base cursor-pointer break-words" }, this.label), !!this.subTitle && h("span", { key: '7cd21c254c9a980406293d6aa25254d6970a4956', class: "text-text-secondary text-base break-words" }, this.subTitle))), h("div", { key: '1ea3dff9029404e1048b5b31bcf3c825f8ccb751', tabIndex: 0, class: {
51
51
  'flex justify-center items-center rounded-xs w-[27px] h-[27px] border outline-none flex-shrink-0': true,
52
52
  'checkbox-focus': this.isFocus && this.type === SulaCheckboxType.Default,
53
53
  'cursor-pointer active:bg-states-empty-bg-pressed': !this.disabled,
54
54
  'bg-states-bg-disabled border-states-bg-disabled': this.disabled,
55
55
  'bg-brand-primary border-brand-primary': this.checked,
56
56
  'bg-surface-body border-line-input': !this.checked,
57
- }, onFocus: this.handleFocus, onBlur: this.handleBlur }, this.checked && (h("div", { key: '660a8055e046769e99ff0aad2f0456fa7cbfbd3d', class: "flex justify-center items-center" }, h("sula-icon", { key: 'd38c416debc187f68d8a2f5a3eb2646917661c31', icon: "ph-bold ph-check", customClass: `${this.getIconColor()} text-xl` })))), !!this.label && this.type === SulaCheckboxType.Default && h("label", { key: '3e916f2afef3b9fa5ccd2ed77a7d7283056fade4', class: "text-text-secondary text-base cursor-pointer break-words" }, this.label))));
57
+ }, onFocus: this.handleFocus, onBlur: this.handleBlur }, this.checked && (h("div", { key: 'c1d3dbeeea39e1b02b45c0f1865d8ade0f3828f3', class: "flex justify-center items-center" }, h("sula-icon", { key: 'd9715bf7c4626e002ea3cb605ba1d3350aec74bc', icon: "ph-bold ph-check", customClass: `${this.getIconColor()} text-xl` })))), !!this.label && this.type === SulaCheckboxType.Default && h("label", { key: '8b2ddff7928b3b2b334dd12408db9ca26edbd9ea', class: "text-text-secondary text-base cursor-pointer break-words" }, this.label))));
58
58
  }
59
59
  static get is() { return "sula-checkbox"; }
60
60
  static get encapsulation() { return "shadow"; }
@@ -67,7 +67,7 @@ export class SulaChip {
67
67
  }
68
68
  }
69
69
  render() {
70
- return (h(Host, { key: '4ce6ddbbacc4244deb57208be164f388476f96b6', ref: node => (this.node = node) }, h("div", { key: '09f9a30a050938dae1a783de76367bd0bd96f50c', class: "w-fit relative" }, h("div", { key: '53d65bf23d328ee7c5893097e2a31ab36ef2e97c', class: {
70
+ return (h(Host, { key: '6365fc393123b069d9ebbc5d172286f2ba71ec8b', ref: node => (this.node = node) }, h("div", { key: '5f76bd23bd40fff870948219f9362e308d64e6a3', class: "w-fit relative" }, h("div", { key: '36dce9482f272108bf79e19e6ff5739c2ffb4ad8', class: {
71
71
  'flex justify-center items-center px-16 py-2 rounded-xxl min-h-40 w-fit outline-none': true,
72
72
  'bg-surface-on-body hover:bg-states-empty-bg-hover active:bg-states-empty-bg-pressed': this.appearance === SulaChipAppearance.Default && !this.disabled && !this.selected,
73
73
  'bg-brand-primary': this.selected && !this.disabled,
@@ -76,13 +76,13 @@ export class SulaChip {
76
76
  'cursor-pointer': !this.disabled,
77
77
  'border border-line-input chip-opened': !this.disabled && this.showItems,
78
78
  'chip-focus': this.isFocused,
79
- }, tabIndex: 0, onClick: this.handleClick, onFocus: this.handleFocus, onBlur: this.handleBlur }, h("span", { key: 'ab94ad10eef369aca2dc62fb41345a3bd25ac15c', class: {
79
+ }, tabIndex: 0, onClick: this.handleClick, onFocus: this.handleFocus, onBlur: this.handleBlur }, h("span", { key: '8b9fdccc67e4dbbb24a2a3e01851909bc3f62fc7', class: {
80
80
  'text-base font-bold leading-4': true,
81
81
  'text-text-primary': this.appearance === SulaChipAppearance.Default && !this.disabled && !this.selected,
82
82
  'text-negative-negative-2': this.appearance === SulaChipAppearance.Negative && !this.disabled && !this.selected,
83
83
  'text-negative-negative-1': this.selected && !this.disabled,
84
84
  'text-text-disabled': this.disabled,
85
- } }, this.text), this.items.length > 0 && (h("div", { key: '71e7f0156e20c26c0d7ff382fbcebd64cfee9c2d', class: "flex items-center justify-center ml-8 leading-4" }, h("sula-icon", { key: '5f2ae8918360c3272f747321db7c6f18439a365f', icon: `ph-bold ph-caret-${this.showItems ? 'up' : 'down'}`, customClass: this.getIconClass() })))), this.showItems && (h("div", { key: 'ac7f4d93375825d1a8fb8e1b065dabc71978ee29', class: "absolute z-50 top-40 left-0" }, h("sula-menu-select-list", { key: '21a55a038bae34507667610e5c2288a8467a3345', items: this.items, onItemSelected: this.handleItemSelected }))))));
85
+ } }, this.text), this.items.length > 0 && (h("div", { key: 'e299a436e91fa8f824d82c0f3a4b4c4a4ba4c1ac', class: "flex items-center justify-center ml-8 leading-4" }, h("sula-icon", { key: 'c423065928a17bba7dcfc87e0007ee063e58f229', icon: `ph-bold ph-caret-${this.showItems ? 'up' : 'down'}`, customClass: this.getIconClass() })))), this.showItems && (h("div", { key: '9fc25a58fc1e524bf52801c79b697b0c2b04c33f', class: "absolute z-50 top-40 left-0" }, h("sula-menu-select-list", { key: '48ae0ea8db6a651bb552b940d92212726cd51244', items: this.items, onItemSelected: this.handleItemSelected }))))));
86
86
  }
87
87
  static get is() { return "sula-chip"; }
88
88
  static get encapsulation() { return "shadow"; }
@@ -135,13 +135,13 @@ export class SulaDropdown {
135
135
  }
136
136
  render() {
137
137
  var _a;
138
- return (h(Host, { key: '03a324dca5975d571427c7779e1d1c921e37607b', ref: node => (this.node = node) }, h("div", { key: 'a7d6094fa6af48bdd3797a1facef4a44778478ca', class: {
138
+ return (h(Host, { key: '9da83d1a331f6b5b3e7c9c36656b3828911cad27', ref: node => (this.node = node) }, h("div", { key: '5b977c492a1a1cca6f9a1477cd34cb305c785586', class: {
139
139
  'flex justify-between items-center border border-line-input h-[72px] px-16 rounded-xl relative': true,
140
140
  'bg-surface-body cursor-pointer': !this.disabled,
141
141
  'bg-states-bg-disabled': this.disabled,
142
142
  'dropdown-focus': this.isFocused && !this.hasError,
143
143
  'dropdown-error': this.hasError && !this.disabled,
144
- }, onClick: this.handleClick, tabIndex: 0, onFocus: this.handleFocus, onBlur: this.handleBlur }, h("div", { key: 'a7a0d5cad0606c31bc6afdfb8d68b64b8cc49cce', class: "flex flex-col w-full" }, h("label", { key: 'f927f2807c93a452e429c9555f67f3ef58686d9a', class: {
144
+ }, onClick: this.handleClick, tabIndex: 0, onFocus: this.handleFocus, onBlur: this.handleBlur }, h("div", { key: '82ebd74c2d5a19ff38a541a0732c5b8bc85e9c4f', class: "flex flex-col w-full" }, h("label", { key: '0f72ee4508a36f26b247dc9ecb4c5e05702308f0', class: {
145
145
  'text-base leading-4': !this.selectedItem && !(this.searchable && this.showContent),
146
146
  'text-sm leading-4 font-bold': !!this.selectedItem || (this.searchable && this.showContent),
147
147
  'text-text-primary': !this.disabled,
@@ -150,7 +150,7 @@ export class SulaDropdown {
150
150
  'flex items-center gap-8 text-base leading-4 pt-4': true,
151
151
  'text-text-primary': !this.disabled,
152
152
  'text-text-disabled': this.disabled,
153
- } }, this.selectedItem.icon && h("sula-icon", { icon: this.selectedItem.icon, customClass: "text-lg" }), this.selectedItem.title)))), h("div", { key: 'c7f75c74e5434db5993497a85d9df636a72f4963', class: "flex items-center justify-center ml-8 leading-6 text-2xl" }, h("sula-icon", { key: '0919bae716a624b8b78722a15a4517085fd5b8a6', icon: `ph ph-caret-${this.showContent ? 'up' : 'down'}`, customClass: `${this.getIconClass()} text-2xl` })), this.showContent && (h("div", { key: '43a89e773a329e7c258b92216bc551a32008b503', class: {
153
+ } }, this.selectedItem.icon && h("sula-icon", { icon: this.selectedItem.icon, customClass: "text-lg" }), this.selectedItem.title)))), h("div", { key: '8a20c67149f2b9dfe4bf653912c04d669030117d', class: "flex items-center justify-center ml-8 leading-6 text-2xl" }, h("sula-icon", { key: '8717153a21dc35f9e6408ac0c93869c263354a8b', icon: `ph ph-caret-${this.showContent ? 'up' : 'down'}`, customClass: `${this.getIconClass()} text-2xl` })), this.showContent && (h("div", { key: '3333c25c53c748579f3095da6fc9d704796ad1d2', class: {
154
154
  'absolute z-50 left-0 w-full transition-all duration-200 ease-in-out': true,
155
155
  'bottom-[72px]': this.openUpward,
156
156
  'top-[72px]': !this.openUpward,